機械学習の全体地図(1)全体像と「学び方」
機械学習を「学び方・タスク・モデル・手順」の4つの軸で整理する連載の第1回。やりたいことからの探し方、最初に押さえる言葉、課題に合う手法がわかる手法ナビ、教師あり・教師なし・強化学習などの学び方の違いと用語集をまとめます。
連載 機械学習の全体地図 第1回/全8回
機械学習は「データから規則やパターンを自動で見つけ、予測や判断に使う技術」です。やりたいことが決まっているなら下の入口から、基礎から学びたいなら「全体の地図」から読み進めてください。
やりたいことから探す
全体の地図:4つの軸
手法の名前を暗記する前に、次の4つの軸で分けて考えると、どんな手法も地図のどこかに位置づけられます。
①〜③は、手法を見る別々の観点です。1つの手法は、この3つの組み合わせで表せます。たとえば「勾配ブースティング」(決定木を組み合わせたモデル。③で説明)は③モデルの名前で、①教師ありの②回帰にも分類にも使えます。④はどの手法にも共通する作り方です。
例:迷惑メール判定 = ①教師あり × ②二値分類 × ③ロジスティック回帰など
「動かしてみる」の図は、スライダーやボタンで操作できます。各章の最後には理解度チェックがあります。
最初に押さえる言葉
例として「携帯電話の顧客が解約するかを予測する」場合で説明します。
- 特徴量
- 予測の手がかりにする項目。例:契約月数、月額料金、問い合わせ回数
- 正解(ラベル)
- 当てたい答え。例:その顧客が解約したかどうか
- モデル
- 特徴量から答えを出す計算の仕組み
- 学習
- 過去のデータを使い、モデルの中の数値(パラメータ)を、答えが当たるように調整すること
- 予測(推論)
- 学習したモデルで、まだ答えのわからない新しい顧客の答えを出すこと
- 学習用・検証用・テスト用データ
- 手元のデータを3つに分けて使う。学習用でモデルを作り、検証用で設定の良し悪しを比べ、テスト用で最後に1回だけ実力を確かめる
- クラス
- 分類で答えになるカテゴリのこと。例:「解約する」「解約しない」の2クラス
- 陽性・陰性
- 分類で、見つけたい側(解約する)が陽性、そうでない側(解約しない)が陰性
- ベースライン
- 比べる基準にする単純な方法。例:全員「解約しない」と予測する。これを超えられないモデルは役に立たない
- 精度
- このページでは「予測の良さ」全般を指す。指標としての Accuracy は「正解率」と呼んで区別する
そのほかの言葉は用語集にまとめています。
① 学び方:何を手がかりに学ぶか
学習に使える「手がかり(教師信号)」の種類で5つに分かれます。色はこのページ全体で共通です。
正解が「A」 正解が「B」 正解なし
教師あり正解付きデータから対応を学ぶ Supervised learning
入力(特徴量)x と正解 y の組を大量に見せ、x から y を当てる対応関係を学ぶ。最も実務で使われる形。
例:メール本文 →「迷惑/通常」、物件の条件 → 家賃
教師なし正解なしで構造を見つける Unsupervised learning
正解ラベルがないデータから、似たもののまとまり、データの主な傾向、珍しいものなどの構造を見つける。
例:購買履歴から顧客をグループ分けする
半教師あり少しの正解+大量の正解なし Semi-supervised learning
ラベル付けが高価なときに、少量のラベル付きデータと大量のラベルなしデータを併用する。
代表手法:自己訓練(自信のある予測を仮の正解として追加していく)、一貫性正則化(少し加工したデータでも同じ予測になるように学ぶ)、ラベル伝播(正解を近いデータへ広げていく)
自己教師ありデータ自身から正解を作る Self-supervised learning
人手のラベルを使わず、データの一部を隠して当てる等の「作った問題」で学ぶ。主に大規模な事前学習(最初に大量のデータで一般的な知識を身につけさせておくこと)に使い、後で少量の教師ありデータで調整する。
例:次の単語を予測(GPT系)、隠した単語を予測(BERT)、同じ画像の別加工を近づける対照学習(SimCLR)
強化学習行動の結果(報酬)から学ぶ Reinforcement learning
学ぶ主体(エージェント)が環境の中で行動し、その結果として報酬を受け取る。これを繰り返し、報酬の合計が最大になる行動の決め方(方策)を試行錯誤で学ぶ。まだ試していない行動を試す「探索」と、良いとわかっている行動を選ぶ「活用」のバランスが課題になる。
代表的な手法の種類:
- 価値ベース:各行動の良さを点数で見積もり、点数の高い行動を選ぶ(Q学習、DQN)
- 方策ベース:行動の決め方そのものを直接学ぶ(方策勾配法、PPO)
- Actor-Critic:価値ベースと方策ベースを組み合わせる
- モデルベース:環境の仕組みも学び、先を読んで行動を選ぶ
関連する形として、いくつかの選択肢から当たりの多いものを探す「多腕バンディット」、熟練者の手本から学ぶ「模倣学習」がある。
学び方とは別に選ぶ「進め方」
上の5つのどれとも組み合わせられる、別の軸です。やや発展的な内容なので、初めて読む人は飛ばしても構いません。
| 観点 | 選択肢 | 内容 |
|---|---|---|
| データの与え方 | バッチ学習/オンライン学習 | 全データでまとめて学ぶか、届いたデータで逐次更新するか |
| ラベルの集め方 | 受動/能動学習 | 能動学習ではモデルが「ラベルを付けてほしいデータ」を選び、ラベル付け費用を減らす |
| 知識の再利用 | ゼロから/転移学習・ファインチューニング/知識蒸留/マルチタスク学習/メタ学習/継続学習 | 別の課題で学んだことを流用する、大きなモデルの知識を小さなモデルに移す、複数課題を同時に学ぶ、「学び方」を学ぶ、過去を忘れずに学び続ける。LLMでは学習し直さず、指示や例を与えて解かせる方法(インコンテキスト学習)も使われる |
| データの置き場所 | 集中型/連合学習 | 連合学習ではデータを手元から出さず、モデルの更新情報だけを集める |
| 強化学習のデータ | オンライン/オフライン強化学習 | 環境と実際にやりとりするか、過去の記録だけで学ぶか |
理解度チェック
用語集
| 特徴量 Feature | モデルに入力する変数(説明変数) |
|---|---|
| ラベル・目的変数 Label / Target | 予測したい正解の値 |
| パラメータ Parameter | 学習によって決まる値(重みなど) |
| ハイパーパラメータ Hyperparameter | 人が学習前に決める設定(木の深さ、学習率など) |
| 汎化性能 Generalization | 未知のデータに対する精度。機械学習の本当の目標 |
| 正則化 Regularization | モデルが複雑になりすぎないよう罰則を加える工夫 |
| 学習率 Learning rate | 勾配降下法で1回にパラメータを動かす大きさ |
| エポック Epoch | 学習データ全体を1周すること |
| 推論 Inference | 学習済みモデルで予測すること |
| 埋め込み Embedding | 単語や商品などを意味を反映した数値ベクトルで表したもの |
| ベースライン Baseline | 比較基準となる単純な方法の成績 |
| 陽性・陰性 Positive / Negative | 分類で、見つけたい側(解約する、病気がある など)が陽性、そうでない側が陰性 |
| 閾値 Threshold | 確率がいくつ以上なら陽性と判定するかの境目(例:0.5) |
| 損失関数 Loss function | 予測がどれだけ外れたかを表す数値。学習はこれを小さくすること |
| 勾配 Gradient | パラメータを少し動かしたとき、損失がどちらへどれだけ変わるか(坂の傾き) |
| 交差検証 Cross-validation | データを分け、検証役を入れ替えながら何度か評価して平均する方法 |
| パイプライン Pipeline | 前処理とモデルを1つにまとめたもの。リーク防止と本番での再利用に役立つ |
| トークン Token | LLMが文章を扱う単位。単語や文字の断片 |
この記事について
ご利用にあたって
このページは機械学習を学ぶための資料です。内容の正確さには注意を払っていますが、完全性や最新性を保証するものではありません。業務や重要な判断に使う場合は、各ライブラリの公式ドキュメントや専門家の確認をあわせて行ってください。掲載しているコードは、ご自身の責任で利用してください。
「網羅」の範囲
機械学習の手法は今も増え続けているため、個々の手法名をすべて並べることはできません。このページでは、手法を①学び方・②タスク・③モデルの3つの観点で分け、各軸の中を重複や抜けがない区分にしています。④手順は全手法に共通する作り方です。手法名は各区分の代表例で、境界にまたがる手法はその旨を注記しています。新しい手法も、①〜③でどこに当たるかを確かめれば位置づけられます。
Spark