機械学習まとめ
機械学習(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)
- ロジスティック回帰
- 線形回帰
- ニューラルネットワーク

