← 機械学習テキスト 一覧

🎓 レベル:基礎 | 重要度:A(必須)

📎 前提:特になし(確率・統計の基礎があると理解が早い → 統計検定サイト

要点(BLUF)

1. 機械学習とは何か

従来のプログラミングは「ルールを人が書き、データを入れて答えを出す」流れです。機械学習はこれを逆転させ、「データと答えを入れて、ルール(モデル)を出す」アプローチを取ります。

flowchart LR
  subgraph 従来のプログラミング
    R1["ルール(人が記述)"] --> P1["プログラム"]
    D1["データ"] --> P1
    P1 --> A1["答え"]
  end
  subgraph 機械学習
    D2["データ"] --> M["学習アルゴリズム"]
    A2["答え(正解ラベル)"] --> M
    M --> R2["モデル(学習されたルール)"]
  end

得られた「モデル」は、未知の入力に対して予測・判断を返す関数 ff です。良いモデルとは、学習に使っていない新しいデータでもうまく働くもの(=汎化する。詳しくは 汎化と過学習・バイアスバリアンス分解)。

2. 3つの類型

類型目的データ代表的な問題代表手法
教師あり学習入力から出力を予測入力 xx + 正解 yy回帰・分類線形回帰・SVM・NN
教師なし学習データの構造・パターン発見入力 xx のみクラスタリング・次元削減k-means・PCA
強化学習報酬を最大化する行動方針の獲得環境との試行錯誤(状態・行動・報酬)制御・ゲームQ学習・方策勾配
graph TD
  ML["機械学習"] --> SL["教師あり学習<br/>(正解ラベルあり)"]
  ML --> UL["教師なし学習<br/>(ラベルなし)"]
  ML --> RL["強化学習<br/>(報酬で学ぶ)"]
  SL --> REG["回帰:連続値を予測"]
  SL --> CLF["分類:カテゴリを予測"]
  UL --> CLU["クラスタリング:似たもの同士をまとめる"]
  UL --> DR["次元削減:本質的な軸を取り出す"]
  RL --> POL["方策:状態→行動の対応を学ぶ"]

3. どう使い分けるか

最初の分岐は「正解ラベル yy があるか」。あれば教師あり。なければ、構造を知りたいなら教師なし、行動を最適化したいなら強化学習、という順で考えると整理できます。

flowchart TD
  Q1{"正解ラベル y がある?"}
  Q1 -- "ある" --> SL["教師あり学習"]
  Q1 -- "ない" --> Q2{"何を得たい?"}
  Q2 -- "データの構造・要約" --> UL["教師なし学習"]
  Q2 -- "行動の最適化(報酬あり)" --> RL["強化学習"]

⚠️ よくある誤解

対応するシミュレーション

simulations/three_types_of_ml.py:機械学習の3類型を最小の例で横並びに可視化します。教師あり(正解ラベルから2クラスの境界を学ぶ)・教師なし(ラベルなしで k-means がクラスタを見つける)・強化学習(小さなグリッドワールドで報酬から最適方策の矢印を学ぶ)。「何が与えられ、何を最適化するか」が違うだけで、汎化・過学習・最適化の土台は共通であることを示します。

教師あり/なし/強化の3類型

関連ノート