機械学習

「機械学習」

データ活用やDX成功に必要な考え方を、各種キーワードの解説で理解できる用語解説集です。
今回は、昨今大変に注目されている「機械学習」について考えてみましょう。

機械学習とは

機械学習(Machine learning)とは、与えられたサンプルデータからそのデータに潜むパターンを自動的に学習するアプリケーションのことです。
人が手動でプログラミングやパラメータの設定をしなくとも、与えられたデータから自律的に判断などのタスクを実施可能にする各種技術のことをそう呼びます。

現在、世間で「AI」という言葉が使われるときには、ほとんどの場合には機械学習のことを指します。機械学習はいわゆるデータ活用の取り組みにおいても、データを利用して成果をあげるための重要な要素となっています。

世間で言う「AI」とは(ほとんどの場合)機械学習のこと

現在世間では「AI」という言葉が大変な話題になっています。一方で、機械学習という言葉は良くわからない人もいるかもしれません。しかし(執筆現在)「AI」が世間で話題になっているとき、ほとんどの場合実質的には「機械学習のこと」が話になっています。つまり「機械学習」が解れば、世間で話題になっているAIとはどういうもので、今後どうなりそうかを理解することができます。

世間で話題の「AI」とは、実質的に「機械学習」のこと
(機械学習がわかると、いわゆる「AI」のこともわかる)

機械学習とはどんなもの?

では、機械学習とは何でしょうか。どうしてそんなに話題なのでしょうか。

これまでのIT活用においては、「コンピュータに何かをしてほしい」と思ったときには、プログラミングをしてアプリケーションを開発することが必要でした。自分自身でExcelを作りこんで必要な機能を実現することもそういう一例です。基本的に、人がコンピュータどのように動作すべきか論理的に考えて設定をし、その通りに動作させて利用するものでした。

しかし機械学習では、違うスタイルでコンピュータを利用します。「データ」を用意し、そのデータをコンピュータに「学習」させることで、望んだ動作をさせます。プログラミングによらないところが大きな違いです。

  • 通常のアプリケーション
    • プログラマがプログラムを書いて、プログラミングでコンピュータがどういう動作をするかを定義し、望んだ機能を持つアプリケーションができる
  • 機械学習
    • データを用意し、データを機械学習のエンジンに「学習」させることで、望んだ動作をさせる
    • 人がコンピュータに具体的な動作を指示して作りこまない。コンピュータの動作は、プログラミングではなくデータから学習した結果から生み出される

これからはデータの時代と言われます。「用意したデータ」を活用することで「何かをしてくれるITシステム」を生み出すことができる機械学習は「データから価値を引き出すことができる手段」で、データの時代において重要な要素であると言えます。

機械学習は具体的にどういうものか?

では、「データを用意」し、データを「学習」させてコンピュータを利用するとは、具体的にどういう感じでしょうか。

機械学習はいくつかのタイプに分類されることがあります。分類のされ方はさまざまにあるようですが、以下のように三種類に大まかに分類されることが多いように思うので、その区分で例を挙げて説明をしましょう。

教師あり学習

学習データを「サンプルデータ(入力例)」と「正解(入力に対応して望まれる出力例)」のセットで与えるタイプの機械学習です。

例えば、画像に映っている果物が「リンゴ」か「みかん」か判断させたいのなら、入力データとして「画像データ」と、その入力に対応する出力結果である「リンゴか、ミカンか」をセットで用意します。それらデータから判断ルールを学習させ、画像から「りんご」と「みかん」を自動判断できるようにします。

  • 例:与えられた画像データが「リンゴかみかんか分類できる」ようにしたい
    • 訓練データ
      • 入力データ:「画像データ」
      • 出力してほしいデータ(教師データ):その入力画像に対して出力して欲しい
        「これはリンゴです」「これはみかんです」の判断結果
    • 機械学習のエンジンに、それらデータを与えて学習させる
    • 画像データを与えると、リンゴかミカンかを回答する学習済みモデルができる。

このように、「入力データ」と、その入力に対する出力して欲しい「出力データ(教師データ)」をセットで用意して学習させて利用します。

みかんとリンゴを区別するような「分類をするタスク」だけではなく、「数値を出力するタイプのタスク」でも同じように教師あり学習が利用できます。「不動産の物件情報」を入力データとして与え、「予想される家賃」を出力させるようなタスクでの利用です。その場合には、「物件情報」とその物件の「実際の家賃」をセットで与えて学習させます。

  • 例:与えられた物件情報から「予想家賃を出力」できるようにしたい
    • 訓練データ
      • 入力データ:物件の各種情報(間取り・築年数など)
      • 出力してほしいデータ(教師データ):その物件の実際の家賃
    • 機械学習のエンジンに、それらデータを与えて学習させる
    • 物件情報を入力すると、予想される家賃を回答する学習済みモデルができる

注意して欲しいことは、教師あり学習では「単にデータだけ用意しても学習できない」ことが往々にして問題になることです。人間が判断するなどして、出力して欲しい「正解データ」を用意しないと学習できないことがあり、データの準備が大変になることがあります。

教師なし学習

データだけを与えて、データそのものから自律的にデータの性質を学習させるタイプの機械学習です。望ましい出力は用意しません。学習に用いるデータの用意が簡単になり、大量のデータを用いた学習も行いやすくなりますが、教師あり学習とは実施できるタスクが異なります。

与えられたデータを類似性などでいくつかのグループに自律的に分類するタスクや、データ全体でみられる傾向を自律的に見つけるタスクなどで利用されます。

  • 例:「顧客の購買データ」から、顧客をグループに分類したい
    • 顧客の購買データを用意する
    • 機械学習のエンジンにデータを与えて学習させる
      • その結果、3グループに自動分類された
    • その結果を人が見て「このグループは下校途中に買いに来る学生だな」「このグループは近隣の主婦だろう」「最後のグループは、近隣で働いている人のランチ利用のようだ」とか判断できた
    • 顧客データを自動分類し、どのグループか自動判定可能になった
  • 例:「顧客の購買データ」から、顧客の購買パターンを見つけたい
    • 顧客の購買データを用意する
    • 機械学習のエンジンにデータを与えて学習させる
      • 大阪観光した人のうち、新幹線で来た人の7割は京都観光もしています
      • 大阪北部を観光した人の3割が再訪問していますが、そのうち大阪南部も観光した人の8割は再訪問しています
    • 観光客の次の行動を予測し、適切なサポートや自動セールスができるシステムができる

強化学習

自律的に試行錯誤を行い、その結果から学習を進めるタイプの機械学習です。人間が正解を与えるのではなく、コンピュータが自律的に行動してみて、その結果が良かったか悪かったかで学習を進めます。

例えば将棋を学習するなら、とりあえずコンピュータ同士で(ひどい指し方でも良いので)将棋を指して勝敗をつけます。すると、具体的に指された将棋での「一連の行動」と、その行動による「結果」(勝敗)、つまり一回分の「実際に試してみたデータ」が得られます。

ポイントは「とりあえず勝敗はついている」ことで、それを判断材料にできることです。勝利している側の指し手について、具体的にどこがどのように良かったのかは不明でも「何かしら正解に近い打ち方を含むに違いない」と判断して「一連の打ち手全体」にプラスの学習を、敗北した側の指し手全体にマイナスの学習を行って学習させることができます。このような試行を繰り返して自律的に学習を進めます。

  • 将棋での例
    • コンピュータ同士で将棋を指せる環境を用意する
    • でたらめにでもいいのでとりあえず将棋を指せるボットを用意し、コンピュータ同士で対局させる
    • 勝った方の指し手には、良い打ち方が何かしら含まれていると考え、指し手全体の行動を導いた要因を「強化」してプラスに学習する
    • 負けた方の指し手には、具体的には解らないがどこか悪い打ち方が含まれていると考えて、行動を強化しないか、あるいはマイナスの学習を行って抑制する
    • 莫大な回数の自己対局を経るうちに、次第に将棋が強いAIが出現する
  • 物理的なロボットでの例
    • ロボットが試行錯誤して行動できる環境を作る(繰り返し行動でき、その試行錯誤でロボットが壊れたりしないような環境を用意する)
    • 最初はロボットはでたらめに動くだけ
    • そのうち偶然に何らかの望ましい結果を出し、その結果に至った行動が同じように「強化」される
    • 試行錯誤を何回も繰り返した結果、動くことすらできなかったロボットが歩行できるようになったり、サッカーロボットが連携戦術を覚えて点を取るようになったりする

人間が正解を用意する必要がなく、望ましい結果を引き出せるよう学習させることができます。その代わりに自律的に試行錯誤を行って学習することができる動的な環境を用意する必要があります。また、学習に非常に多くの試行が必要になり、学習効率が悪いことがあります。

Googleが囲碁で世界チャンピオンを負かした事件がありましたが(AlphaGo)、強化学習を用いた快挙でした。天文学的な自己対戦をさせることで、人間を打ち負かす囲碁AIを作り上げました。

上記以外のタイプもある

上記以外のタイプもあります。例えば「教師あり学習」と「教師なし学習」が組み合わせて利用されることもあります。

一部のデータにだけ正解をつけて教師あり学習を行い、その後に教師なし学習で残りの多くのデータから学習を進める「半教師あり学習」や、用意したデータから学習データと正解データを自動生成して学習する「自己教師あり学習」などがあります。今話題の大規模言語モデル(LLM)は「自己教師あり学習」を用いて構築されています。簡単に紹介します。

  • 半教師あり学習による例:
    大量の画像データ+一部のデータだけに「これはリンゴ」「これはみかん」
    • 大量の画像データを教師なし学習を行い、画像全体から画像の共通特徴を抽出して、各画像にその特徴のあるなしで特徴ラベルをつける
    • 正解がついている画像データ+特徴ラベルを用いて、教師あり学習を行う
      • 特徴ラベルを使ったより効果的なな学習ができる
  • 自己教師あり学習の例:
    非常に大量のテキストデータを用意する(大規模言語モデル での例)
    • テキストデータの一部をマスクして「この次に出現する単語は何でしょうか」とか「この虫食い部分にどんな単語が入るでしょうか」とすることで、正解(教師データ)のある学習データを自動生成することができる
    • 正解を用意せずとも、大量のデータを使った教師あり学習をさせることが可能になる

ChatGPTの説明で「次に来る単語を予測している」という話がありますが、そのような動作をしている理由には、このような自己教師あり学習を用いることができる事情もあります。

なぜ「AI=機械学習ではない」のか

機械学習とは「世間で言うところのAI」であると書きました。それならばAIと呼べばみんなが解りやすいのに、なぜ機械学習とわざわざ呼んでいるのでしょうか。それには、いくつか理由があります。

「AI」の言葉の定義がはっきりしないため

AIとは何か、あるいはAI(人工知能)以前に、そもそも知能とは何のことであるか、が難しい問いであり、様々な定義や議論があって明確に定義ができていません。専門家であるほど言葉は慎重に使いますから、意味がはっきりしないAIという言い方はあまりしません。

機械学習ではない「AI」が存在するため

機械学習以外の方法でも、知的なふるまいをするアプリケーションを実現する取り組みがあります。

  • 論理ベースの取り組み:
    例えば「人間はみな死ぬ human(x) -> mortal(x).」と「ソクラテスは人間である human(Socrates).」のような論理的な記述で知識を与えておくと、コンピュータが自動推論して「ソクラテスは死ぬ mortal(Socrates).」を自分で導くことができるようなシステムです。最初期のAI研究はほとんどこのタイプでした。
  • ルールベースの取り組み:
    専門家のスキルを判断に用いている多数のルール(IF文のようなもの)として記述するもので、エキスパートシステムと呼ばれていたものも該当します。例えば、「炎の色がほぼ透明なら炉内は1800度を超えている可能性が高い」とか「パチパチと音がしている間は材料がまだ融けていない可能性がある」などです。これらルール群を観測されたデータと照合して判断結果を出すシステムです。

例えば業務ルールを書き出しておいて、それに基づいて業務上の判断を自動化できるのなら、実用的な知的判断ができています。機械学習ではありませんが、これらも一種のAIだとみなすことができます。

このような事情があるため、皆さんにおいても、「機械学習」という言葉を使った方が「きちんとわかっている人」だと思ってもらいやすいと思います。

実際のビジネスでの機械学習の活用は、「その周辺」に難しいことが多くて大変

次に、ビジネスで実際に機械学習を利用する場合について考えてみましょう。

データを用意すれば、学習させてAI(機械学習)を業務で使える、それくらいに考えられていることがあります。その認識なら活用はそんなに難しくないように思えたりもします。しかし現実に取り組んでみると、「機械学習そのもの以外」で大変なことが多くあります。

「データの用意」が大変

機械学習を活用するためには、まず「データ」を用意する必要があります。予想外にも、ここで「かなりの工数」がかかることが珍しくありません。後述する「データ連携基盤」を活用すれば、大変さを緩和できることがあります。

  • 学習に必要なデータは多くの場合社内に散在しており、集めるだけで大変
  • データの内容や形式はバラバラになっていることがよくあり、学習前に前処理をしてデータを整える必要がある
  • 教師データをどうやって用意するかの問題

学習させて学習済みモデルを作ることが大変

データを使って学習済みモデルを作るところも当然に大変です。ハイスキルなエンジニアや強力な計算能力を持ったコンピューティング基盤が必要になることがあります。

ゼロから学習を行って自分たちに必要な学習済みモデルを用意することは難しいことも多いので、「機械学習を手軽に使えるようにしているクラウドサービス」の活用や、「既存の学習済みモデルをうまく再利用する」工夫が必要になることがあります。

  • AutoML
  • ファインチューニング
  • 転移学習
  • In-Context Learning
  • RAG(Retrieval-Augmented Generation)

学習済みモデルを業務に組み込まないと役に立たないので大変

何とかデータを集めてきて、学習済みモデルを作りました。しかし、まだ大変なことがあります。気がつけば当たり前ですが、学習済みモデルを業務に組み込まないと成果にはつながらないのです。

  • 判断させるために、「入力データ」が必要
    • 機械学習に業務の判断させるためのデータを、業務システムから取得し連携する仕組みを作る必要がある
    • 「判断に必要なデータ自体がない」場合には、新たにデータを取得する仕組みから作る必要がある
  • 判断結果(出力データ)で成果を生むためには、業務で活用する仕組みが必要
    • 有益な判断ができるようになったとして、それを業務で生かすためには、「業務システムに判断結果を自動連携する仕組み」や、「業務担当者へ判断結果を連携する仕組み」を整備することが必要

これはつまり、機械学習(学習済みモデル)を業務で活躍させるためには、既存業務システムと連携させる「システム開発」が必要になるということです。

「繰り返し改良」が必要になることが良くある

さらには、作ったものを「繰り返し改良する」取り組みが必要になることがよくあります。

  • 作ってみたものの、最初から十分に成果が出ないことはよくある
  • データを集めて学習するところからやり直しが必要になることもある
  • 業務のどこでどのように機械学習を活用すればいい感じに成果がでるのか、実業務で運用して試行錯誤しないと「成果の出る使い方」が解らないことが良くある

つまり、ここまで行ってきた手間のかかること全部を、「何度も何度もやり直さなければならない」かもしれないということです。

「データを集めなおす」というのは、試してみてから性能を出すために必要だと解ったデータを、集めなおして学習からやり直す手間です。必要なデータが存在しておらず、データ収集システムを開発するところから着手するような大変なケースも含みます。

「業務との組み合わせ方」を試行錯誤する必要があるということは、「機械学習と業務システムを連携させるシステム開発」を、成果が出るまで何度も試行錯誤を繰り返して開発をやり直す必要があるかもしれないということになります。こちらも手間がかかります。

データの時代の機械学習を現実に活用するために必要な、「つなぐ」技術

データから成果を生み出せる機械学習とはまさに「データの時代」において重要な技術です。DXやデータ活用に取り組みたいと考えるのであれば、機械学習の活用はぜひ検討すべきテーマです。

その一方で機械学習の活用は、なかなか手間のかかることを紹介しました。データを集め、学習を行い、社内外のITシステムと組み合わせる必要があり、どうやったら成果が出るか繰り返し試行錯誤を続ける必要もあります。

必要なことは「連携」できること

このようなことから、安直に機械学習の活用に取り組んでも、成果が出ないことがあります。例えばPoCをやってみて成果らしきものが出たものの、実展開できずにそのままになっているようなケースが散見されるのは、まさにそういうことだろうと思います。それくらいに「機械学習そのもの以外」の手間と面倒は大きいのです。

では、自社にはハイスキルなエンジニアも居ないし機械学習の活用は無理だ、と考えるべきなのでしょうか?実は、「それでも機械学習に取り組む」方法があります。

まず機械学習そのものについて。専門知識がなくても機械学習を利用できるクラウドサービス(AutoMLなど)が整備されつつあります。それを活用することが考えられるでしょう。機械学習そのもの以外の手間については、「縦横無尽にデータやITシステムを連携させる手段」があれば、実はかなりのことが何とかなります。

社内から学習データを取ってくるのは「データ連携」、データを前処理して学習させるのは「データの加工」、学習済みモデルを社内システムと連携させるのは「システム連携」です。つまり「データやシステム」を「つなぐ」ことができれば、多くのニーズは何とかできるのです。

「つなぐ」技術を活用ください

このような各種の「連携処理」を、「GUIだけ」で効率的に開発できる手段が存在します。EAI」や「ETL」、「iPaaS」と呼ばれる、「DataSpider」や「HULFT Square」などの「つなぐ」技術です。これらを活用することで、新旧システムをスムーズかつ効率的に連携させることができます。

GUIだけで利用できる

通常のプログラミングのようにコードを書く必要がありません。GUI上でアイコンを配置し設定をすることで、多種多様なシステムやデータ、クラウドサービスへの連携処理を実現できます。

「GUIで開発できる」ことは長所でもある

GUIだけでのノーコード開発は、本格的なプログラミングに対して簡易で妥協的な印象を受けるかもしれません。しかしながら、GUIだけで開発できることは「業務の現場の担当者が自分たち自身で主体的にクラウド連携に取り組む」ことを可能にします。

ビジネスのことを一番良くわかっているのは現場の担当者です。その「一番わかっている人たち」が自分たち自身で、学習済みモデルをどのように活用すべきか、どんなデータが足りないのかを考え、実現が必要なことをどんどん作りこめるのは、何かあるたびにエンジニアに説明してお願いしないと開発できない状況よりも、格段に優れているとも言えます。

本格的処理を実装できる

「GUIだけで開発できる」ことを謳っている製品は沢山ありますが、そういう製品に簡易で悪い印象を持っている人もおられるかもしれません。

確かに、「簡単に作れるが簡易なことしかできない」「本格的処理を実行しようとしたら処理できずに落ちてしまった」「業務を支えられるだけの高い信頼性や安定稼働能力がなくて大変なことになってしまった」ようなことは起こりがちです。

「DataSpider」や「HULFT Square」は、簡単に使うこともできますが本格的プログラミングと同等のレベルの処理の作りこみもできます。内部的にJavaに変換されて実行されるなど本格的プログラミングと同様の高い処理能力があり、長年にわたって企業ITを支えてきた実績もあります。「GUIだけ」の良さと、本格的能力の両方を兼ね備えています。

iPaaSなので自社運用不要

DataSpiderなら自社管理下のシステムでしっかりと運用できます。クラウドサービス(iPaaS)のHULFT Squareなら、このような「つなぐ」技術そのもの自体もクラウドサービスとして自社運用不要で利用でき、自社での導入やシステム運用の手間がなく利用できます。

関係するキーワード(さらに理解するために)

機械学習に関連したキーワード

生成AI/ChatGPTに関係するキーワード

データ連携やシステム連携に関係するキーワード

  • EAI
    • システム間をデータ連携して「つなぐ」考え方で、様々なデータやシステムを自在につなぐ手段です。IT利活用をうまく進める考え方として、クラウド時代になるずっと前から、活躍してきた考え方です。
  • ETL
    • 昨今盛んに取り組まれているデータ活用の取り組みでは、データの分析作業そのものではなく、オンプレミスからクラウドまで、あちこちに散在するデータを集めてくる作業や前処理が実作業の大半を占めます。そのような処理を効率的に実現する手段です。
  • iPaaS
    • 様々なクラウドを外部のシステムやデータと、GUI上での操作だけで「つなぐ」クラウドサービスのことをiPaaSと呼びます。

「iPaaS」や「つなぐ」技術に興味がありますか?

オンプレミスにあるITシステムからクラウドサービスまで、様々なデータやシステムを自在に連携し、IT利活用をうまく成功させる製品を実際に試してみてください。

「つなぐ」ツールの決定版、データ連携ソフトウェア「DataSpider<」および、データ連携プラットフォーム「HULFT Square」

当社で開発販売しているデータ連携ツール「DataSpider」は長年の実績がある「つなぐ」ツールです。データ連携プラットフォーム「HULFT Square」はDataSpiderの技術を用いて開発された「つなぐ」クラウドサービスです。

通常のプログラミングのようにコードを書くこと無くGUIだけ(ノーコード)で開発できるので、自社のビジネスをよく理解している業務の現場が自ら活用に取り組めることも特徴です。

DataSpider / HULFT Squareの「つなぐ」技術を試してみてください:

簡易な連携ツールならば世の中に多くありますが、GUIだけで利用でき、プログラマではなくても十分に使える使いやすさをもちつつ、「高い開発生産性」「業務の基盤(プロフェッショナルユース)を担えるだけの本格的な性能」を備えています。

IT利活用の成功を妨げている「バラバラになったシステムやデータをつなぐ」問題をスムーズに解決することができます。無料体験版や、無償で実際使ってみることができるハンズオンも定期開催しておりますので、ぜひ一度お試しいただけますと幸いです。


「HULFT Square」で貴社のビジネスが変えられるか「PoC」をしてみませんか:

貴社のビジネスで「つなぐ」がどう活用できるのか、データ連携を用いた課題解決の実現可能性や得られる効果検証を行ってみませんか?

  • SaaSとのデータ連携を自動化したいが、その実現可能性を確認したい
  • データ利活用に向けて進めたいがシステム連携に課題がある
  • DXの実現に向けてデータ連携基盤の検討をしたい

用語集 コラム一覧

英数字・記号

あ行

か行

さ行

た行

な行

は行

ま行

や行

ら行

わ行

» データ活用コラム一覧

Recommended Content

Related Content

Return to column list