Chapter 2.1-2.2: 教師あり学習への招待

機械学習の中核である「教師あり学習」の基本概念を紹介します。

データから未来を予測したい

あなたは毎朝、無意識に「予測」をしています。

傘を持っていくかどうか、電車が混むかどうか、今日のランチで何を食べるか...。これらすべてに共通しているのは「手元にある情報」から「まだ見えていない結果」を推測しようとしていることです。

では、コンピュータにこの「予測」をさせることはできるでしょうか?

人間の直感を超えて、大量のデータから隠れたパターンを見つけ出せるとしたら?

ここで重要なのは、過去のデータには答えが含まれているという事実です。過去に「この入力のとき、こういう出力だった」という記録があれば、新しい入力に対しても同じようなパターンで出力を予測できるかもしれません。

例えば、新しい患者の血液検査データ(入力)を受け取り、過去の患者のデータを参考にして、病気の可能性(出力)を予測する。このように、過去の「答え」を参考にして、新しい問題を解くのです。

教師あり学習の概念を示すアニメーション

このアプローチを教師あり学習(Supervised Learning)と呼びます。

「教師」とは何でしょうか?それは、正解を教えてくれるデータのことです。まるで答え付きの問題集で勉強するように、正解付きのデータでコンピュータを訓練するのです。

ポイント: 教師あり学習とは、「過去の正解を頼りに、未来を予測する方法」です。

入力と出力の世界

教師あり学習では、2種類の変数が登場します。

入力(Input) は、予測に使う情報です。統計学では「予測変数(predictor)」や「独立変数」、機械学習では「特徴量(feature)」とも呼ばれます。

出力(Output) は、予測したい結果です。統計学では「応答変数(response)」や「従属変数」と呼ばれます。

例えば:

入力が1つとは限りません。例えば血液検査で5つの数値を測定したら、それをひとまとまりで扱いたいですよね。数学では、複数の数値をまとめて扱うために「ベクトル」という概念を使います。$(数値1, 数値2, 数値3, 数値4, 数値5)$ というように、カッコで囲んで並べます。

記法として、入力を $X$、出力を $Y$ または $G$ で表します。

入力から出力への対応関係を示すアニメーション
$$X = (X_1, X_2, \ldots, X_p) \rightarrow Y \text{ または } G$$

入力 $X$ は $p$ 個の成分を持つベクトル。$p$ は入力の数(特徴量の数)を表します。例えば血液検査で5項目を測定するなら $p = 5$ です。量的な出力は $Y$、質的な出力は $G$ で表します。

ポイント: 教師あり学習は「入力から出力を予測する対応関係」を学ぶことです。

量的変数と質的変数

ここで重要な区別があります。出力変数には2つのタイプがあるのです。

量的変数(Quantitative Variable) は、数値で表され、大小関係や差に意味があります。

質的変数(Qualitative Variable / Categorical Variable) は、有限個のカテゴリから1つを選ぶものです。

量的変数と質的変数の違いを示すアニメーション

この区別はなぜ重要なのでしょうか?

それは、出力が量的か質的かで、問題の性質がまったく異なるからです。量的変数なら「どれくらいの値か」を予測し、質的変数なら「どのカテゴリか」を予測します。

ポイント: 量的変数は連続的な数値、質的変数は離散的なカテゴリ。この違いが予測問題の性質を決めます。

回帰と分類

出力変数のタイプによって、予測問題は2つに分かれます。

回帰(Regression) は、量的な出力を予測する問題です。

分類(Classification) は、質的な出力を予測する問題です。

回帰と分類の違いを示すアニメーション

面白いことに、回帰と分類は表面上は異なる問題に見えますが、実は同じ枠組みで捉えることができます。

どちらも関数近似(Function Approximation)という視点で見られるのです。ここで「関数」とは、入力を受け取って出力を返す「対応ルール」のこと。中学で習った $y = 2x + 3$ も関数です。

つまり、入力 $X$ を受け取り、出力 $Y$(または $G$)を返す関数 $f$ を、データから学習するという点では同じなのです。

$$\hat{Y} = f(X) \quad \text{(回帰)}$$
$$\hat{G} = f(X) \quad \text{(分類)}$$

$\hat{Y}$(yハット)や $\hat{G}$(gハット)は予測値を表します。分類の場合、$\hat{G}$ は $K$ 個のカテゴリ {\{G_1, G_2, \ldots, G_K\}} のどれかになります。

ポイント: 回帰も分類も、「入力から出力への対応ルール」を学習するという点で共通しています。

質的変数のコーディング

ところで、分類問題を数学的に扱うには、「スパム/スパムでない」のような言葉をどうやって数値化すればよいでしょうか?

最もシンプルなのは 2クラスの場合 です。「成功/失敗」「生存/死亡」のような2値は、0と1(または-1と1)でコーディングできます。

では、3クラス以上の場合はどうでしょうか?

ここで登場するのが ダミー変数(Dummy Variables) です。

$K$ 個のクラスがある場合、$K$ 個の数字を並べたベクトルを使います。各クラスに対応する位置だけが1で、他は0です。

例えば、3種類のアイリス(Setosa, Versicolor, Virginica)は:

ダミー変数のエンコーディングを示すアニメーション

このように表現することで、質的変数も数学的に扱えるようになります。

$$G_k \rightarrow t_k = (0, \ldots, 0, \underbrace{1}_{k\text{番目}}, 0, \ldots, 0)$$

クラス $G_k$ は、$k$ 番目の成分だけが1のベクトル $t_k$ で表現されます。

ポイント: 質的変数は「1つだけが1で残りが0」のベクトルに変換できます。これがダミー変数です。

訓練データの重要性

予測モデルを作るには、訓練データ(Training Data) が必要です。

訓練データとは、入力と出力のペアの集合です。「この入力のとき、正解はこれだった」という記録をたくさん集めたものです。

$$\mathcal{T} = \{(x_1, y_1), (x_2, y_2), \ldots, (x_N, y_N)\}$$

ここで $\mathcal{T}$(カリグラフィのT、Training の頭文字)は訓練データセット全体を表し、$N$ はデータの数です。各ペア $(x_i, y_i)$ は「$i$ 番目の入力 $x_i$ に対する正解は $y_i$ だった」という1つの事例です。

訓練データのペアを示すアニメーション

ここで重要な点があります。訓練データの量と質が、予測モデルの性能を左右するということです。

データが少なすぎると、パターンを十分に学習できません。データに偏りがあると、偏った予測をしてしまいます。

$$\mathcal{T} = \{(x_i, y_i)\}_{i=1}^N$$

$i=1$ から $N$ まで、$N$ 個の訓練サンプルからなるデータセット。各サンプルは入力 $x_i$ と出力 $y_i$ のペア。

ポイント: 訓練データは「正解付きの例題集」。この例題から、コンピュータは予測ルールを学びます。

まとめ

ここまでお疲れさまでした。駆け足でしたが、教師あり学習の基本的な枠組みを一通り見てきました。

このチャプターで学んだこと:

  1. 教師あり学習: 正解付きデータから予測モデルを学習する。「過去の正解を頼りに、未来を予測する方法」
  2. 入力と出力: 入力(特徴量)から出力(応答)を予測する対応関係を学ぶ
  3. 量的変数 vs 質的変数: 連続的な数値か、離散的なカテゴリか
  4. 回帰 vs 分類: 出力のタイプで問題が分かれるが、どちらも「関数を学習する」という点では同じ
  5. ダミー変数: 質的変数を数値ベクトルに変換する方法
  6. 訓練データ: モデル学習の材料となる「正解付きの例題集」

ここまでで、教師あり学習の「問題設定」が完了しました。入力と出力、回帰と分類、そして訓練データ。これらの概念は、この先ずっと使い続けます。

次のセクション(2.3以降)では、いよいよ具体的な「解き方」を見ていきます。最小二乗法(データに一番フィットする直線を引く方法)と、k-近傍法(似ているデータから予測する方法)という、2つの基本的なアプローチを紹介します。