機械学習とは?詳しく解説

機械学習という言葉をご存知でしょうか?

機械学習とは、コンピューターが大量のデータを分析して学習する技術のことをさします。

近年はAI(人工知能)の研究が盛んで、私たちのスマートフォンや家電にも使われているくらいなじみ深いものになっています。

そのAIの進化・発展において機械学習は大きな影響を与えたのですが、その仕組みやディープラーニングとの違いについて詳しく理解していない方がたくさんいらっしゃいます。

この記事では、ディープラーニングを含む複数のモデルの解説もしています。

目次

  1. 1. 機械学習とは
  2. 2. 機械学習の仕組み
  3. 3. 機械学習の手法
  4. 4. 機械学習のアルゴリズム
  5. 5. 機械学習でどのようなことが可能になったのか
  6. 6. 機械学習の今後はどうなるのか

上記について解説していきます。

極力専門用語を使わずわかりやすく解説していきますので、AIやIT業界に興味のある方の参考になれば幸いです。

機械学習とは

脳をモデルとする機械学習
機械学習とは、コンピューターがデータを分析する方法の1つで「ML(Machine Learning)」とも呼ばれています。

大量のデータを学習する際に、一定のルールやパターンを見つけ出し、次回同じような課題に直面した際に以前学習したルールやパターンを用いることでより良い予測や判断をすることができます。

人間も過去の経験や傾向から次を予測することができますが、コンピューターが処理する情報量は人間の比ではありません。

そして一度記憶したルールやパターンは忘れることがありませんので、過去何十年分のデータ分析や予測は私たちの生活を助けてくれています。

そんな機械学習の仕組みや種類について次項で詳しく解説していきます。

機械学習の仕組み

機械学習の説明
機械学習は人間が1から組み立てるプログラミングとは違い、一度学習さえしてしまえば次回からは自動で対応してくれますので人間の手間やコスト面でも非常に優秀で重宝されています。

そんな機械学習の仕組みについて解説していきます。

動物の画像から犬を分類する機械学習の流れの例(教師あり学習)

STEP1.画像とその正解のセットのデータを大量に用意します

STEP2.モデルを作成し、STEP1.で用意した大量のデータを使って分類精度が高くなるようなパターンを学習させます

STEP3.学習で使わなかった未知のデータに対してもうまく判別できるかどうかをテストします。

中には犬と狼など、紛らわしいものを誤って抽出することもあります。
その際には、機械に犬と狼との違いを学習させ、次回は正確に判断できるように修正していきます。

このような流れで大量に学習させ、ルールやパターンを蓄えていくことで様々な場面でも対応できたり応用することが可能になります。

応用の例:犬の画像の中からチワワだけを選ぶ。

この機械学習の優秀なところは、画像だけではなく数字やデータ予測にも応用が効くということです。

過去数十年の数字から特定の数字を抽出することで今後の売り上げ予測に使われたり、過去の気圧や雲の動きを抽出した天気予報にも使われています。

Pythonについて

機械学習の開発で最も使われている言語はPythonです。Pythonとはどのような言語で、なぜ機械学習の開発によく使われているのでしょうか。Pythonの特徴2つを踏まえながら解説していきます。

1.文法がシンプルで簡単

Pythonの特徴としてまず挙げられるのが文法のシンプルさです。そのシンプルさ故、初心者から職業プログラマーまで広くに使用されており、Pythonの使用人口がとても多いことが大前提としてあります。そして、多くの機械学習エンジニアやデータサイエンティストは、数学や統計などを専門としていた人が多くプログラムが全く分からないことも珍しくありません。そんな機械学習のスペシャリストたちにもとっつきやすい言語であるというのもPythonが使われている大きな理由の一つです。またYoutubeやInstagramなどの大企業が、サービスの根幹となる部分にPythonを使用していることから、その信頼性も担保されています。

2.ライブラリが豊富

開発中こんな機能が使いたいとなった時、Pythonならばその殆どが既にライブラリとして公開されています。すなわち、他人が作成したプログラムを勝手に利用することが出来るのです。もちろん機械学習向けのライブラリやフレームワークも豊富にあり、このライブラリの豊富さが、Pythonが機械学習の開発で最も使われる所以と言えるでしょう。

機械学習の手法

コンピュータと人
強化学習の手法を大きく分けると「教師あり学習」と「教師なし学習」、「強化学習」の3種類があります。

さらには「教師あり学習」と「教師なし学習」の中間に位置する「半教師あり学習」という手法も活用されています。

これらは目的や扱うデータ、効率良く学習させるためにも適切に使い分ける必要があります。

以下、代表的な3つの手法について解説します。

①教師あり学習

3つある学習手法の中で最も代表的なものが「教師あり学習」になります。

教師あり学習は、人間が事前に正解のデータを入力し、その正解のデータと比較して正しいかどうかを判断させます。

「教師=人間が与えた答え」が名前の由来となっています。

その特性上、コンピューターにとって判断基準が明確であるため、「正しいか、間違っているか」の問題を解決するのに適しています。

教師あり学習のアルゴリズムとしては、「回帰」と「分類」が代表的なものになります。

回帰

回帰の主な目的は「値の予測」です。

教師あり学習により正解のパターンを与え、そのパターンに基づき過去の大量のデータから予測して今後の値を算出します。

これらは売上予測や気温の予測などに活用されています。

分類

分類は、その名の通り、入力したデータをあるルールによって分類することをさします。

大量のデータを「Aか、それ以外か」や、「○○以上か、○○以下か」といったルールを設けることで分類させる、シンプルながらよく使われているアルゴリズムです。

用途としては、膨大な量のデータの仕分けや、一定以上になると反応するセンサーなどに使われています。

従来はコンピューターのスペックや技術面の問題もあり、1つのルールしか覚えさせることができませんでしたが、教師あり学習で複雑な正解を覚えさせることで多くのデータを監視することが可能になり、精度も向上していきました。

②教師なし学習

教師あり学習と対をなすのが「教師なし学習」です。

明確な答えがあった教師あり学習に対して、教師なし学習には答えがありませんので「教師なし」といわれています。

そのため、AI自身で答えを見つける必要がありますが、AIが答えを見つけるという高度な処理はできません。

そこでAIは与えられたデータに対して規則性や法則性を見つけようとします。

明確な答えがないデータ群に対し、規則性や法則性を探すときに教師なし学習を使います。

教師なし学習が規則や法則によってカテゴライズする際のアルゴリズムの代表的なものとして「次元削減」と「クラスタリング」があります。

次元削減

教師なし学習のアルゴリズムで最も使われているのが次元削減です。

文字通り次元を削減することで余計な要素を排除し、シンプルにすることでグループ化しやすくなります。
有名なアルゴリズムとしては以下のようなものがあります。

  • 主成分分析(PCA)
  • 特異値分解(SVD)
  • t-SNE
  • UMAP

本来、データは多次元に展開しており複雑なため可視化できるものではありません。

このままでは視認できませんので、次元を削減することで簡略化しデータとして扱えるようになります。

例えば、身近な例で言うと、体重と身長から計算されるBMI(体重(m)÷身長(kg)^2)もなるべく情報量を落とさずに次元削減していると言えます。

その次元削減されたデータを再度グループ化したり、教師あり学習に再度学習させることで精度向上に役立てるといった使い方があります。

クラスタリング

クラスタリング
クラスタリングとは、AIが与えられたデータの特徴や類似性を探し、同じようなカテゴリーのグループに分けることを指します。

グループに分けると聞くと教師あり学習の分類と混同されがちです。

しかし、分類は答えや指定したルールに沿って分けられますが、クラスタリングに正解はありません。

AIが傾向や規則性から判断するので、中には誤ったものが混じっている可能性もあります。

AIが独自で判断してグループに分けるので、どういった基準でクラスタリングしたのかを考察する必要がありますので注意が必要です。

例えば、大量の名簿から共通項を持つグループを抜き出したり、ある程度AIの裁量に任せてカテゴライズしたい時にクラスタリングを使用します。

また、クラスタリングは、データをグループ分けする際に「階層的クラスタリング」と「非階層的クラスタリング」という方法に分けられます。

◆階層的クラスタリング

階層的クラスタリングは、データを比較した際に類似度が近いものからまとめていく分け方です。

クラスタを1つの単位とし、10個のデータがあれば、1と2、1と3、1と4……2と3、2と4……とそれぞれの類似度を計測してグループ化していき、階層を作成します。

1と2の共通点を見つけて小さなクラスタ(1+2)とし、さらに(1+2)と似ているクラスタを見つけることでそれを((1+2)+3)とどんどん大きなクラスタにしていきます。

小さなクラスタが最終的に全てグループ化された1つの大きなクラスタとなればクラスタリング完了となります。

反対に類似度が遠いものからまとめていく分け方もあります。

階層を確認することで関係性や類似度が視覚化される、最終のクラスタの数を決めることができるというメリットがありますが、全てのクラスタの組み合わせを計算していくために、相当な時間がかかってしまうことがデメリットになっています。

また、クラスタを計算する手法も複数あり、最適な計算方法を採用しないと意味のないものになってしまう可能性もあります。

◆非階層的クラスタリング

非階層的クラスタリングとは、階層を作る階層的クラスタリングに対し、その名の通り階層を作らずにグループ化することです。

全てを計算してから最終のクラスタ数が明らかになる階層的クラスタリングに対し、非階層クラスタリングでは事前に最終クラスタの数を指定し、その数に合わせて類似性を判断してグループとしてまとめていきます。

階層的クラスタリングと比較して計算量が少ないため、膨大なデータをグループ化するのに向いていますが、事前に適切な最終クラスタ数を判断する方法がまだ見つかっていないのが欠点です。

③強化学習

強化学習はコンピューター自身が試行錯誤を繰り返し、最適なシステムを見つけ実現する手法です。

教師あり学習、教師なし学習は基本的に人間がデータの入力や一定の指示を出していました。

それに対し、強化学習は人間が報酬(目標)を指定すると、コンピューター自身が最大限の報酬を得られるよう自律して判断・試行錯誤を繰り返します。

強化学習の流れ

STEP1.コンピューターが動作する環境を用意します。

STEP2.報酬(目標)を設定します。

STEP3.どのアルゴリズムで検証をおこなうかを設定します。

STEP4.コンピューターが検証を開始します。

かなり大まかな流れになりますが、教師あり学習、教師なし学習と比べると人間が介入する工程が少ないことがわかります。

この検証によって明らかになった結果や、試行錯誤した経験はコンピューターの中で蓄積されていきますので、次回似たような課題に直面した場合は前回の経験を活かした検証をおこないます。

これらを繰り返していくことで検証の速さや精度が向上していき、様々な場面で活躍することができます。

この強化学習自体は元々あった手法ですが、後述するディープラーニングと併用することで性能も精度も飛躍的に上昇したため、再度注目を集めている手法です。

機械学習のアルゴリズム

プログラミングの画面
ここでは、代表的な機械学習のアルゴリズムについて紹介していきます。

機械学習は無数のアルゴリズムが提案されています
が、現在主流になっているのは

  • ニューラルネットワーク
  • ディープラーニング

この2つです。

その他にも、以下のようなアルゴリズムがあり、モデルが軽量で解釈しやすいことから、ケースによって使い分けられています。

  • k近傍法
  • 決定木
  • ランダムフォレスト
  • XGBoost
  • サポートベクトルマシン

これらの代表的なアルゴリズムについて簡単に解説していきます。

k近傍法

k近傍法は、ほぼあらゆる機械学習アルゴリズムの中でも最も単純と言われているシンプルなアルゴリズムです。

考え方としては、ある点をクラス分類する時にその周りの点のクラスの多数決で判断しようというものです。この時、一番近くのk個が所属するクラスで多数決を取ります。

KNNの説明

上の例の場合、真ん中の星が所属するグループは、k=3の場合は青、k=5の場合は赤といった具合です。

この動画は、k近傍法が具体的にどのように動いているのかをアニメーションにしたものです。学習を繰り返すにつれてデータが4つに分類されていく様子がわかると思います。

決定木

決定木は、木構造を用いた予測モデルです。木構造とは、木が幹から枝、葉と順々に枝分かれしていくような構造です。

木構造を使って、特徴量ごとに次の枝へ振り分けていくことで上手く分類できるモデルを作成します。フローチャートを想像していただけると分かりやすいかと思います。

例えば、動物を鷹、ペンギン、イルカ、熊に分けようと思ったら、以下のような決定木で上手く分けることができます。

決定木の説明

このように決定木は、解釈しやすいのが特徴ですが、過学習(訓練データに過剰適合してしまい、応用が効かない状態)に陥りやすいなどの欠点もあります。

ランダムフォレスト

ランダムフォレストの説明
ランダムフォレストは、先程紹介した決定木をランダムに複数作成し、その多数決や平均を取ることで精度を向上させたモデルです。
決定木を複数作成する方法としては、学習データから何度も復元抽出することで、少しずつ異なる決定木を作る方法で、バギングと呼ばれています。

昔から「三人寄れば文殊の知恵」というように、一つ一つは精度の低い決定木でも、多数決をとることで精度の高いモデルを作ろうという試みです。

ただし、多数決を取ることで、決定木の過剰適合しやすいという問題点を解決することができますが、解釈性は失われてしまいます。

XGBoost

XGBoostの説明
XGBoostもランダムフォレストと同様に、決定木を用いたモデルです。ただし、XGBoostでは、前の決定木の誤差を次の決定木に引き継いで新しい決定木を作ることを繰り返すことで段々と精度の高い決定木を作っていきます。

このようなサンプリング方法をブースティングといいます。このモデルは、特徴量エンジニアリングをしなくても精度の高い結果をだすことから、機械学習のコンペとして有名なKaggleで多用されています。

サポートベクトルマシン

サポートベクトルマシンの説明
サポートベクトルマシンは、クラス分類において、クラスを最も上手く分割する超平面を引くことで識別します。

ここでいう超平面とは、高次元における平面のようなものをいいます。下の図のように、赤と青の二種類の星を上手く分けたいと考えた時に、サポートベクトルと呼ばれる点からの距離(マージン)を最も大きくできる超平面を引くことを考えます。

なお、直線で分割(線形分離)できない場合ももちろんあるため、ある程度の許容を許したり、非線形に応用できるカーネルトリックと呼ばれる手法が用いられています。

この動画は、サポートベクトルマシンの原理をアニメーションにして解説したものです。データの間に線が引かれ、データが分類されていく様子がわかると思います。

このモデルは識別精度が高く、ディープラーニング登場前までは特に多用されていました。

ニューラルネットワーク

お待たせしました。ニューラルネットワークについて説明いたします。ニューラルネットワークとは、人間の脳神経系であるニューロンを参考にモデル化したものです。

人間の脳はニューロンを相互接続して電気信号を交換したり、複雑な思考を可能にしています。

この時、何でもかんでも情報を流すわけではなく、ある閾値以上の電気信号を次のニューロンに渡しています。

こうした情報処理の方法をコンピューターで応用できないかと考え、ニューロンの構造を手本にしたパーセプトロンという単純なモデルを重ね合わせて以下のようなニューラルネットワークとしました。
ニューラルネットワークの説明

このように、入力層、隠れ層、出力層の3種類から構成されるモデルをニューラルネットワークといいます。

もちろん人間の脳のように複雑なものは作れないため、一方にしか信号を送れないなどの制限はありますが、それでもニューラルネットワークの登場により技術は各段に向上していったのです。

ディープラーニング

ディープニューラルネットワークの説明
ディープラーニングとは、前述したニューラルネットワークの隠れ層を多層に重ねることで学習能力をさらに高めた機械学習の手法です。

中間層を数十〜数百層重ねたり、結合方法を工夫することで、より処理性能や複雑な問題に対処できるようになりました。

ディープニューラルネットワークは、ジェフリー・ヒントン教授とカナダのトロント大学が考案しました。2012年の「ILSVRC(Imagenet Large Scale Visual Recognition Challenge)」という画像認識の精度を競うコンペでは、それまで26-28%台で競われていたのをディープラーニングを用いることで15.3%という驚異的な精度を出したことで瞬く間に世界中に広まりました。

4層以上にしても精度が上がらず煮詰まり違う方法を試す科学者が多い中、この朗報はAIの技術の革命ともいえるものでした。

ディープラーニングは、あくまで機械学習の中の1つに過ぎませんが、今やAIの技術向上のためには不可欠なものになっています。
深層学習については以下の記事もご参照下さい。
深層学習について説明します! | クリスタルメソッド株式会社はR&Dに特化したAI受託研究開発

ここで機械学習をまとめると……

▼機械学習のアルゴリズム

  1. 教師あり学習
    • 回帰
    • 分類
  2. 教師なし学習
    • 次元削減
    • クラスタリング
      • 階層的クラスタリング
      • 非階層的クラスタリング
  3. 強化学習

▼機械学習の種類
AIの概要
ディープラーニングは、機械学習・それもニューラルネットワークの一部に過ぎませんが、近年の台頭で「AI・機械学習=ニューラルネットワーク」というふうに扱われているのも事実です。

機械学習で一括りにされがちですが、手法や種類によって様々な専門用語が出てきますので、最初は混乱してしまうかもしれません。

しかし、この違いを知っておくことで、より機械学習についての理解が深まりますのでしっかり確認しておきましょう。

機械学習で可能になったこと

脳
ここまでは機械学習の種類やアルゴリズムについて解説してきました。

専門用語や難しい話が多かったかもしれませんが、ここからは「機械学習によって何が変わったのか」についてお話していきます。

私たちの身近なところに機械学習が使われていたりと新たな発見に繋がるかもしれません。

実用例①売り上げ予測

コンビニや販売店など、多くの業者は売り上げ予測をし予算や目標を掲げています。

その際に活躍するのが機械学習です。

強化あり学習で登場した回帰は値を予測するのに適しています。

過去数十年の同月を比較し計算することでおおよその売り上げを予測し、それを参考にして仕入れや販売促進活動をおこなっていきます。

これまでは店長や販売責任者の経験や勘に頼ることが多かったのですが、具体的な数字で視覚化されたことにより売り上げを伸ばすことが期待できます。

さらにAIを活用した商品管理やマーケティング活動など、機械学習は多くの小売店や飲食店に導入されています。

実用例②点検の自動化

教師あり学習で正しい商品や成形を学習させることで、歪みやひび割れ・異物混入したものを検知するといった検品・点検に使わています。

これまでは人の目で1つ1つ確認していましたが、個人差や経験に左右され時間もかかっていました。

強化学習で一律の基準でブレがなく、一度に大量に検品できるようになったため工場や生産業界は各段に効率が良くなりました。

※弊社の取り組みは以下の記事でも解説しています。
2D画像での異常検知システム(2DのAI・深層学習)

近年はドローンを用いて、ビルの外壁や橋の裏側など人間の目視が難しいところでも点検が可能になり、活躍の幅を広げています。

実用例③おすすめ機能

インターネットで調べ物をしたり、通販サイトで買い物をしていると関連商品がおすすめとして表示された経験は誰しもあるかと思います。

これらはユーザーの検索履歴や入力された情報をもとに、AIが似たような特徴を持つデータを集めて表示させています。

これも教師あり学習・教師なし学習を応用させたものであり、これによって消費者の購買意欲を刺激して売り上げの向上に貢献しています。

特にGoogleは世界中のユーザーのデータを解析し、検索履歴から次のキーワードを予測して表示させたり、多少の誤字があってもAIが補完して検索結果を表示させたりと、ユーザーの皆様はその優秀さを身を持って体感されているかと思います。

実用例④自動運転

自動運転
近年で注目を集めているのは車の自動運転でしょう。

これまではSF映画の中の夢物語でしたが、機械学習の技術を駆使し着実に実現しつつあります。

カメラで捉えた映像をディープラーニングで判断し、異物を検知した際にはブレーキをかけたり、適切な車間距離を判断して減速したりと、ドライバーをサポートする機能が続々と導入されています。

すでに1990年代にGPS機能を利用したカーナビは登場していましたが、ここに強化学習を搭載して、目的地を入力すれば自動で最短距離のルートを計算したり、混雑状況を考慮してルートを変更したりと、機械学習は活躍しています。

ここからさらに機械学習が進化すれば、車のAIが自律して全てを判断して走らせる夢の自動運転が実現する日も近いでしょう。

実用例⑤医療現場

日本の課題となっている少子高齢化社会や医療費の問題。

これらをAIで解決しようと日本政府も力を入れており、多額の予算をつぎ込み研究が進められています。

教師あり学習の異物検知で患者の病気を事前に発見したり、過去のカルテから患者の病気を判断する材料になったりと、機械学習は非常に役に立っています。

新薬の開発や業務の効率化など、様々な診療所や病院で採用されています。

さらに、コロナウイルスの影響もあり人との接触を控えるように言われている中で、AIは非常に有効であると考えれています。

介護ロボットなどのAIは機械学習の技術の結晶です。

カメラでの画像認識や異物検知、スピーカーからの音声認識や異音検知など、様々な技術が搭載されています。

今は、AI自身が自律し思考して会話をする技術なども開発されていますが、これもディープラーニングで何千何万通りの会話パターンを学習して得られた結果をもとにしており、ディープラーニングなくしては実現できなかったものです。

詳しくは以下の記事でも解説しています。
AIが医師の診断支援と病気予測を行う日

当面の課題である医療従事者の人手不足や負担軽減に機械学習は効果があると考えられており、今後も研究開発が進められていきます。

機械学習の今後はどうなるのか

ここまで機械学習の種類やアルゴリズム、実用例などについて解説してきました。

機械学習やディープラーニングの登場により、IT業界は一変し飛躍的な進化を遂げていきました。

スマホや電化製品、カーナビなど身近なものに当たり前のように搭載されるようになり、私たちの生活はより豊かになっていくでしょう。

一方で、ディープラーニングを繰り返していった結果、AIが人間の脳を超えるという意見も上がっています。

AIが全て計算・対応できるようになってしまえば、プログラマーやエンジニアといった職種だけでなく、事務作業や受付も全てAIで事足りてしまいます。

機械学習は便利で非常に優秀ですが、AIに仕事を奪われてしまう未来もありうるということを忘れないように、今後のAIや機械学習の動向に注目していただけばと思います。

この記事を読んで、機械学習やAIに興味を持っていただければ幸いです。