機械学習(machine learning)とは

データを分析する方法の1つで、学習者(エージェント。例えばコンピュータやAI)に大量のデータを読み込ませることによってパターンや規則性を学習させ、その経験をもとに「予測」や「判断」を行うことをいう。

機械学習の分類

機械学習は、大きく分けて以下の3つに分類される。

  • 教師あり学習
  • 教師なし学習
  • 強化学習

教師あり学習(Supervised learning)

学習データに「正解ラベル」が付与された状態でAIや機械学習モデルを訓練する手法。

正解ラベル(Ground Truth、Label)とは、画像やテキスト・数値データなど一つ一つのデータに、事前に人間が判定した「これは何か」という正解を示す情報のこと。

たとえば、猫の画像には「猫」、犬の画像には「犬」、異常の検知では「正常」や「異常」といったラベルが正解ラベルが付される。

教師あり学習では、入力データ(例題)とその正解(ラベル)がセットになった「教師データ」を用いる。

モデルは、これらのデータのルールやパターンを学習する。そして、未知のデータが与えられた際に、正解を予測・判定できるようになる。

教師あり学習の種類

教師あり学習の種類(タスク)には「分類」と「回帰」がある。

■分類(Classification)

正解が「カテゴリー(ラベル)」で与えられている場合のタスク。

出力は、「どのクラスに属するか」という離散的な結果、つまり「はい」か「いいえ」、「合格」か「不合格」という排他的な結果に分類される。

「分類」の目的は、未知のデータに対して「決められた正解ラベル」を予測すること。

例えば、医師が「この患者はがん」、「この患者は健康」とラベルを付けた過去データを学習し、新しい患者の検査結果から「がんか健康か」を予測する。

■回帰(Regression)

正解が「数値」で与えられている場合のタスク。

出力は、連続的に変化する数値(整数や小数)である。つまり、「はい」か「いいえ」という離散的な結果を出力する「分類」とは異なり、値と値との間に無限に数値を取り得る。

「回帰」の目的は、売上、気温などの値を予測すること。

例えば、気温から「アイスの売上本数」を予測するという目的があるとする。

そこで、過去の月別平均気温データとその期間のアイス売上本数(または売上金額)データから回帰モデルを作成し、「気温が25度の日のアイス売上は〇〇本」という具体的な予測を行う。

教師なし学習(Unsupervised Learning)

学習データに「正解」を与えずに学習させる手法。

その正解なしの学習データそのものから、コンピュータが自動的に頻出パターンや構造を発見する。

「正解」が存在しないため、教師あり学習とは異なり「回帰」や「分類」の問題には対応していないが、新商品の製品のターゲットを決定するといった、結果につながるデータがない場合に用いられる。

教師なし学習のタスクとしては「クラスタリング」と「次元削減」が挙げられる。

教師なし学習の種類

■クラスタリング(Clustering)

データの「似ているもの同士」を自動的にまとめる方法。

正解ラベルがない状況で、データの中の「自然なグループ構造」を探すのが目的。

例えば、「Aさんは節約志向」「Bさんは贅沢志向」といった顧客データの正解ラベルがなくても、購買パターンで似ている顧客をグループ化すると、まとめ買いをよくする人、節約志向の人、健康志向の人、高級志向の人など、異なる消費傾向を持つ複数のグループ(クラスター)が見えてくる。

このグループ分けをすることで、それぞれのグループに合ったマーケティング戦略を立てたり、商品の提案内容を変えたりすることができ、効率的に顧客対応や販売促進を行うことができる。

■次元削減(Dimensionality Reduction)

特徴量」を、より少ない軸にまとめること。

特徴量(features)」とは、データの特徴を数値や記号などで表したもの。特徴量の数を「次元(dimension)」という(3つの特徴量は「3次元」)。

例えば、ある生徒について、以下の5教科を評価するとする。

  • 国語
  • 数学
  • 理科
  • 社会
  • 英語

上記において、「国語」、「数学」などの5科目それぞれが「特徴量」である。このデータをそのまま使うと「特徴量が5つある5次元のデータ」である。

だが、次元削減をすると…

  • 「文系の能力(国語+社会+英語)」
  • 「理系の能力(数学+理科)」

といった、「特徴量が2つある2次元のデータ」にまとめられる。

つまり、5科目をバラバラに扱う代わりに「文系理系か」という少数の要素に削減して特徴を表現している。

次元削減によって、多次元のデータをより分かりやすいデータにして重要な情報を際立たせることができる。

強化学習(Reinforcement Learning)

試行錯誤を繰り返しながら、「どの行動が良い結果を生むか」を学習する方法。

具体的には、ある「環境」に置かれた学習者(エージェント。例えばコンピュータやAI)が、その環境において「行動」し、それに対して「報酬」を得ることによって、「どの行動をとると、どのような報酬が得られるか」を学習し、それによって報酬を最大にするための最適な行動を学習する。

重要ワード

■環境(Environment)
エージェントが行動を起こして結果を受け取る場所のこと。エージェントの行動に反応して「状況を変化させ、報酬を返す役割」を持つ。

■状態(State)
環境の状況を表す。エージェントは状態を観測して次の行動を決定する。

■行動(Action, a)
エージェントが選択できる操作。行動によって次の状態や報酬が変わる。

■報酬(Reward, r)
ある行動の結果として環境から与えられる数値であり、行動を評価する指標となるもの。

例:自動運転車の強化学習

■環境(Environment)
自動運転車が走る周囲の道路、信号、他の車・歩行者、障害物などすべて。シミュレーターや実際の道路での状態も含み、時間的に常に変化する複雑な場所。

①状態(State)の観察
エージェント(自動運転車)が、環境中の自身の位置、速度、周囲の障害物の有無、信号の色など、環境の「現在の状況(部分的な情報)」を観測する。

②行動(Action)の選択
現在の状態に基づき、「加速する」「減速する」「右に曲がる」などの具体的な行動を選ぶ。

③報酬(Reward)の獲得
安全に運転できたり目的地に近づいたりすると報酬がプラスされ、事故や交通違反など悪い結果になるとマイナス報酬が与えられる。報酬の価値は「Q値」で表される。

これにより、良い行動を評価し悪い行動を避ける学習を行う。

④方策(Policy)の更新・学習
今までの経験を踏まえどの行動が効果的かを分析し、行動選択のルール(方策)を改善する。

⑤繰り返し
環境から状態を観察し、行動を選び、報酬を得て、方策を更新するという過程を何度も繰り返し、安全で効率的な運転スキルを獲得する。

機械学習におけるアルゴリズム

アルゴリズム(algorithm)とは

アルゴリズムは、データを入力として受け取り、そのデータから規則やパターンを見つけ、予測や分類などの問題を解くための「計算の方法」や「手法」のことをいう。

アルゴリズムの例

例えば、「どの行動を選べば将来の報酬が最大になるか?」という強化学習において、アルゴリズムの1つに「Q学習」がある。

エージェントは、現在の状態sで、「Q値(報酬の価値)」が高い(良い結果が期待できる)行動を選ぶ。行動した結果の報酬rと次の状態s’を観測する。

そして、次の式でQ値を更新する。

αは学習率(どれだけ新情報を重視するか)
γは割引率(将来の報酬をどれだけ重要視するか)
は次の状態s’で得られる最大のQ値

状態s’でまた行動を選び同じ更新を繰り返し、Q値の精度が上がるまで学習を続ける。

この計算の方法が「強化学習のアルゴリズム」であり、これによりエージェントは試行錯誤を通じて最適な行動を学習する。

まとめると、

様々な行動を試して、良い結果をもらったらその行動のQ値を少しずつ上げる。悪い結果ならQ値を下げる。新しいQ値をもとに、次はさらに良い行動を選べるようにする

という、一連の計算のルールが、強化学習アルゴリズムである。

アルゴリズムの分類

機械学習アルゴリズムには主なものとして以下がある。これらについては別途ブログ記事にする予定。

  • k近傍法
  • 決定木
  • ランダムフォレスト
  • サポートベクターマシン(SVM)
  • ロジスティック回帰
  • 線形回帰
  • ニューラルネットワーク