LogoMark.png

MachineLearning

機械学習

Machine Learning

機械学習(Machine Learning:ML) とは、データサイエンス、あるいは人工知能研究における手法の一つで、大量のデータを利用した反復的な学習(人間が行っている学習と同様のプロセス)によって、コンピュータ上にパターン認知や推論・生成のためのモデルを構築する技術です。

生成系AI(Generative AI)に利用されている Transformer もディープラーニングの一種で、非常に大規模な機械学習モデルを利用します。

機械学習においてコンピュータに与えるのは、学習ルールと、学習素材のデータセットで、コンピュータ自身が大量のデータから推論のルールを自動的に学習します。例えば、ヒト、犬、猫の大量の画像と、その画像がヒトか、犬か、猫かの「答え」です。この画像はヒト、この画像は犬・・と大量に与えていくことで、識別する能力が学習され、その「経験」が豊富になることで、識別能力が上がっていくのです。小さな子供に「これは犬です」、「これは猫です」・・と教えていくのと同じ手順です。

このときコンピュータの中に自動的に出来上がる「入力と出力の関係づけ」のことを「モデル」というのですが、与えるデータが画像であれば、画像認識モデルができあがり、音声を与えつづければ、音声認識モデルができあがります。

従来、物事の判別は人手によるプログラミング( if 条件文)で実装していましたが、現在の AI 、例えば自動運転における画像解析、買い物行動の動作解析、オンラインショップのレコメンド機能、スパムメールの検知など、いわゆるパターン認知機能と呼ばれるものの大半は、この機械学習によって実装されています。

機械学習で可能になるのは大きく3つ、「予測」「発見」「生成」です。


CONTENTS


はじめに

機械学習の位置づけ

「機械学習」の周辺には、データサイエンス、データマイニング、AIなど、様々な用語があり、それぞれの領域が交錯するため、位置付けが理解しづらいものになっています。基本的には「機械学習」はデータサイエンスの一手法で、その応用先として AI がある・・という感じです。

機械学習とデータマイニングの関係ですが、機械学習の立場からは、データマイニングは「教師なし学習」に位置付けれられる手法であり、データマイニングの立場からは機械学習はその一手法・・となります。

両者の目的の違いから言うと、機械学習の主目的(昨今の話題の中心)が、パターン認知のためのモデルをつくること、すなわち入力データを「既知」の特徴と照合させる(「教師あり」で訓練)ことにあるのに対し、データマイニングの目的は、データから「未知」の特徴を発見する(「教師なし」)ことにある・・と説明することができます。応用先という視点で言えば、機械学習の(今話題の)応用先は AIシステム。データマイニングの応用先は新たなビジネス・・ということができます。

機械学習のイメージ

従来のAI(エキスパートシステム)と何が違うのか、そのイメージをざっくりと掴んでもらうための図解です。

ML.jpg


機械学習の応用先

機械学習のタイプ

機械学習には、大きく4つのタイプがあります。

教師あり学習|Supervised learning

教師あり学習とは、学習のときに正解のラベルを使う手法で、既知の情報を用いて未来を予測する予測器を作ることを目指します。一般に問題(説明変数)と答え(目的変数)のセットからなる大量のデータを必要とします。主にカテゴリを予測する「分類」と、実数値を予測する「回帰」があります。手法としては、ニューラルネットワーク、線形回帰などがあります。

今最も実用化が進んでいるのがこの分野です。要するに、大量の過去のデータから現象を記述するモデルを作成し、それを用いて未来に起こることを予測する・・。これは基本的には、私たちの脳が「経験を積むことで、未来予測ができるようになる」という話と同じですが、コンピュータの記憶容量と処理の高速化が進んだことで、それが人知を超えたレベルで実現できるようになったのです。


教師なし学習|Unsupervised Learning

教師なし学習とは、学習のときに正解のラベルを使わずに、機械学習モデルに自力でデータの法則性を見つけさせる手法で、サンプルをグループ分けする「クラスタリング」や、高次元の変数(多変数)を低次元に減らす「次元削減(次元圧縮)」などがあります。k-means法、PCA などの手法があります。

半教師あり学習|Semi-supervised learning

半教師あり学習とは、学習の際に少量の正解ラベルつきデータとラベルのない大量のデータを使う手法を指します。正解ラベルつきのデータを用意するのにコストが掛かりすぎる場合などに有効です。


強化学習|Reinforcement learning

強化学習とは、正解ラベルの代わりに「報酬」を使う手法です。とるべき「行動」に無数の選択肢があり、明確な「答え」をあらかじめ与えることが難しい場合、「報酬」の大きな行動に高いスコア、「報酬」の少ない行動に低いスコアを与えていくことで、どう振る舞えば最大の報酬が得られるかを学習する・・というタイプのもので、囲碁や将棋などの AI に利用されています。Q-Learning や DQN(Deep Q Network)といった手法があります。




教師あり学習の手法

大きく2種類、主にカテゴリを予測する「分類(クラス分類)」と、実数値を予測する「回帰」があります。

分類

分類(クラス分類)とは、あるサンプルが与えられたときに、そのサンプルが所属するカテゴリを予測するものです。以下のような手法があります。

回帰

回帰とは、あるサンプルが与えられたときに、そのサンプルに関する何らかの数値を予測するものです。例えば、複数の都市サンプルの情報、例えば「人口」、「面積」、「税収」といった特徴と「犯罪率」をセットにしたデータで学習を行い、未知の都市の特徴からその犯罪率(実数値)を予測する・・といったものが回帰の問題です。以下のような手法があります。

教師なし学習の手法

クラスタリング

クラスタリングはサンプルを自動的にグループ分けする手法ですが、事前にカテゴリーを定義するのではなく、データの特徴のみを使って、それらをいくつかのグループに分ける・・というものです。よく似た言葉に「クラス分類」がありますが、クラス分類はカテゴリーが事前に決まっている「教師あり学習」に属するものです*1

クラスタリングでは「いくつに分けるか」という「分類数」のみを分析者が事前に決定して、結果として見えてくる個々のグループに対しては、事後的に命名がなされます。「このデータは◯◯カテゴリーに属する」というような教師データ(事前データ)が存在しないのが、クラスタリングの特徴で、以下のような手法があります。

次元削減(次元圧縮)

次元削減とは文字通り「データの次元数を減らす」ことですが、例えば「生徒」の学力特性を説明するのに「国語・数学・理科・社会」という4つのデータ(これを4次元データと言います)を使うところを、「理系得点・文系得点」という2つのデータ(2次元)に落とし込んで説明するような操作を意味します。

一般に、説明変数(特徴量)が多いと、対象を捉えて識別することが難しくなりますが、例えば数学と理科の点数のように「連動する(相関が高い)」もの同士をまとめて「理系得点」として一つの数字で表現すれば、対象を捉えやすくなります。次元削減はこのような処理を大量のサンプルを使って自動的に行うものです。以下のような手法があります。




用語解説

説明変数と目的変数

関数モデルを y = f(X) と書いた場合の、X が説明変数で、y が目的変数です*2

学習用データとテストデータ

機械学習(教師あり)では、手持ちのデータを「学習用データ」と「テストデータ」で分けるのが一般的です。
 手持ちのデータを全て学習用データとして使うと、そのデータに過度に適合したモデルができてしまい(過学習)、現実の予測に使おうとした場合に逆に精度が低くなってしまいます。そこで、一般には学習用データとテストデータに分割して、学習状況をテストデータでチェックしながら、テストデータに対して最も良い性能が出るように調整を繰り返します。
 データの分割には、以下のような方法があります。


目的関数と損失関数

教師あり学習では、入力 x に対して成分 w を用いて目的関数 y = f ( w , x ) を構築するとともに、正解 y に対する損失 L ( y , f ( w , x ) )を定義して、これが最小となるように成分を調整していきます。
 目的関数の最適化問題を解くことは、すなわち、損失関数(誤差関数)を最小化すること・・と言えます。
 例えば回帰問題では、一般に以下のような「二乗損失」を用います。

参考:損失関数、評価関数、誤差関数、コスト関数、目的関数
https://zenn.dev/nekoallergy/articles/machinelearning-func

活性化関数

ニューラルネットワークにおいて線形変換(重み付き入力の総和)後に最終的な出力を決める関数のことを「活性化関数(Activation Function)」と言います。中間層と出力層では用いる関数が異なるのが一般的で、以下のように分類できます。

最適化アルゴリズム(オプティマイザ)

ニューラルネットの文脈では、最適化とは「出力の誤差が最小になるように調整すること」を意味します。誤差を表す関数は何らかのカーブを示しますが、このカーブをたどって、最下点に至るように、パラメータを調整するわけです。その方法には様々あります。以下リンクで紹介します。

APPENDIX

関連ページ

PAGES

GUIDE

TOOL

DATA


*1 付記:クラス分類とクラスタリング
この2つは、言葉は似ていますが、全く異なることを目指しています。
・クラス分類:対象を既存のグループに振り分ける問題(正解がある)
 例:手書きの数字を認識させる|「教師あり」の学習
・クラスタリング:特徴の違うグループを見出す問題(絶対的な正解はない)
 例:顧客のグルーピング|「教師なし」の学習

*2 一般に入力の方が数(次元)が多いので y は小文字、X は大文字で書いたりします。y が値とすれば、X(大文字のエックス)はベクトル、 y がベクトルとすれば、Xは行列・・というイメージです。
添付ファイル: fileML.jpg 280件 [詳細]
Last-modified: 2023-12-12 (火) 11:17:35