6 機械学習の初歩 ── 「予測」というもうひとつの目標
発展的な話題 この章は講義の中心から一歩進んだ内容です。1回生のうちは細部にこだわらず「考え方の地図」をつかむことを目標に、必要になったら戻ってきてください。
これまでの章で扱ってきた統計学は、データの背後にある構造を知ること ― 係数の値、その有意性、信頼区間 ― を主な目標にしてきました。これを 推論(inference) といいます。機械学習はもうひとつの目標を前面に出します。新しいデータに対する出力をできるだけ正確に当てること、すなわち 予測(prediction) です。この章では、両者の目的の違いを出発点に、予測の良し悪しを測る考え方 ― バイアス・バリアンス分解、過学習、クロスバリデーション ― を整理します。
第2節の「誤差=バイアス²+バリアンス+ノイズ」がこの章の心臓部です。第3節でそこから「少しのバイアスを許す」という機械学習らしい発想が出てきます。第6節で、前章までの BIC とならぶ AIC が顔を出します。
1. 「推論」と「予測」── 同じ y=\beta x でも問いが違う
単回帰 y=\beta x を例にとります。同じ式を見ても、二つの立場は別のことを知りたがっています。
- 推論(統計学):主役は 係数 \beta。「x が1増えると y は平均してどれだけ変わるか」「その効果は偶然では説明できないか(p 値)」「どれくらいの幅で信用できるか(標準誤差・信頼区間)」。世界の仕組みを語ることが目的。
- 予測(機械学習):主役は 出力 \hat y。新しい x を入れたとき \hat y が本当の y にどれだけ近いか だけ を気にする。\beta の値そのものや有意性には、必ずしも関心がない。
この違いが、後で見る「バイアスを少し犠牲にしてでも誤差を下げる」という機械学習特有の割り切りにつながります。推論ではバイアス(偏り)はあってはならないものですが、予測では「当たればよい」のです。
機械学習のモデルには、どんなものがあるか
本章の例は単回帰 y=\beta x ですが、「予測」を目指す機械学習のモデルには、単純なものから複雑なものまで幅があります。イメージのために代表例を挙げておきます。
- 正則化つきの線形モデル(縮小推定) ― リッジ回帰 や Lasso(ラッソ)。線形モデルのまま、係数を0の方向へ縮める罰則を加えて予測を安定させます(第3節で再登場します)。Lasso は不要な変数の係数をちょうど0にするので、変数選択も同時に行えます。
- 決定木とその寄せ集め ― 「もし x_1>3 なら右へ…」という分岐の連なりで予測する決定木。1本では不安定でも、たくさん束ねて平均する ランダムフォレスト や 勾配ブースティング は、表形式データの予測の定番です。
- k 近傍法 ― 新しい点の近くにある k 個のデータの平均(分類なら多数決)をそのまま予測にする、いちばん素朴なモデル。
- ニューラルネットワーク(NN) ― 「線形モデル+非線形変換」を1つの部品とし、それを並べ、重ねたモデル。層を深く重ねたものが 深層ニューラルネットワーク(DNN、深層学習) で、画像認識や生成 AI の土台です。パラメータ数は数百万〜数十億にもなります。
これらはどれも「新しいデータを正確に当てる」ことを目指す機械学習モデルの一員で、モデルによって表現力(複雑さ)は大きく異なります。複雑になれば当てはめる力は上がりますが、そのぶんばらつき(バリアンス)も増えます。自由に形を変えられるモデルは、たまたま手元に来た訓練データの偶然の凸凹まで律儀になぞってしまうので、訓練データを取り直すたびに出来上がる予測が大きく変わってしまう ― これが「ばらつきが増える」ということです。だから次節の誤差の分解と、第4〜5節の「学習に使っていないデータで評価する」仕組みが、どのモデルにも共通の背骨になります。
2. 予測誤差の分解 ── バイアスとバリアンス
まずノイズなしで ── 的当てのイメージ
当てたい真の値を f、手元の訓練データから推定した予測器の出力を \hat f とします。訓練データは偶然に左右されるので、データを取り直すたびに \hat f は違う値になります ― 的当てにたとえると、的の中心が f、1本1本の矢が \hat f です。このとき矢の「外れ方」は、2種類に分けられます。
- 狙いのずれ(バイアス):矢の平均的な着地点 E[\hat f] が、中心 f から系統的にずれている。
- ばらつき(バリアンス):1本1本の矢が、平均 E[\hat f] のまわりで散らばっている。
そして平均二乗誤差は、ちょうどこの2つの和に分かれます(図 1)。 E\big[(\hat f-f)^2\big] =\underbrace{\big(E[\hat f]-f\big)^2}_{\textsf{バイアス}^2} +\underbrace{E\big[(\hat f-E[\hat f])^2\big]}_{\textsf{バリアンス}}. 仕掛けは「公式の導き方」第8節と同じ式変形です。\hat f-f に -E[\hat f]+E[\hat f] を差し込んで2乗を展開すると、交差項が E[\hat f-E[\hat f]]=0 でちょうど消えて、この足し算だけが残ります。
ノイズも入れた完全版
現実のデータには、どんな予測器でも取り除けない偶然のノイズが乗っています。ある点 x での 期待二乗誤差 を考えましょう。真の関係を y=f(x)+\varepsilon(\varepsilon は平均0・分散 \sigma^2 のノイズ)とすると、\hat f のばらつきに加えてこのノイズも誤差に加わり、次の関係が成り立ちます。 \boxed{\; E\big[(y-\hat f(x))^2\big] =\underbrace{\big(E[\hat f(x)]-f(x)\big)^2}_{\textsf{バイアス}^2} +\underbrace{E\big[(\hat f(x)-E[\hat f(x)])^2\big]}_{\textsf{バリアンス}} +\underbrace{\sigma^2}_{\textsf{除去できないノイズ}} \;}
導出は短く、y=f+\varepsilon を代入して \varepsilon が独立であることを使うだけです。 E[(f+\varepsilon-\hat f)^2]=E[(f-\hat f)^2]+\sigma^2. 残った E[(f-\hat f)^2] は、先ほどの的当ての分解そのもの ― バイアス^2+バリアンスです。
三つの項の意味は次のとおりです。
- バイアス:予測器の平均 E[\hat f] が真の値 f からどれだけずれているか。モデルが単純すぎる(表現力が足りない)と大きくなる ― 過少適合(underfitting)。
- バリアンス:訓練データが変わると \hat f がどれだけブレるか。モデルが複雑すぎるとデータの偶然の凸凹まで拾い、大きくなる ― 過学習(overfitting)。
- ノイズ \sigma^2:データ本来の偶然性。どんな予測器でも取り除けない下限。
モデルの複雑さを横軸にとると、この3項の綱引きが1枚の図になります(図 2)。
発展:分類の場合 本章の誤差は二乗誤差(回帰)で書いていますが、k 近傍法の「多数決」や画像認識のようにカテゴリを当てる問題(分類)では、誤差は「外した割合」(0-1誤差)や交差エントロピーで測ります。損失の式が変わっても、「単純すぎるモデルは系統的に外す(バイアス)」「複雑すぎるモデルは訓練データごとにぶれる(バリアンス)」という構図と、「学習に使っていないデータで評価する」という原則(第4〜5節)は、まったく同じように成り立ちます。
3. バイアス・バリアンス・トレードオフ
ここが推論と予測の分かれ目です。
統計学では 不偏性(バイアス=0)を理想としてきました(「公式の導き方」第8節、なぜ標本分散は n-1 で割るか、を思い出してください)。しかし第2節の式が教えるのは、合計誤差を決めるのはバイアスだけではないということです。バイアスをゼロに保とうとして複雑なモデルを使うと、バリアンスが膨らんで合計はかえって大きくなることがあります。
そこで機械学習はこう考えます。
少しのバイアスを受け入れてでも、それ以上にバリアンスを減らせるなら、合計誤差は小さくなる。
これが バイアス・バリアンス・トレードオフ です。たとえば リッジ回帰(係数 \beta をやや0へ縮める正則化)は、推定にわざとバイアスを入れますが、そのぶん係数の暴れ(バリアンス)を抑え、新しいデータでの予測を改善します。「不偏だが暴れる推定」より「少し偏るが安定した推定」を選ぶ ― これは推定量の平均二乗誤差 \text{MSE}=\textsf{バイアス}^2+\textsf{バリアンス} を最小化する、という一貫した方針の表れです。
4. 過学習と「新しいデータで試す」
モデルを複雑にすればするほど、訓練データへの当てはまり(訓練誤差)はいくらでも良くできます。極端には、全データ点をぴったり通る曲線さえ引けます。しかしそれは、データの偶然の凸凹まで暗記しただけで、新しいデータでは大きく外す ― これが過学習です。
私たちが本当に知りたいのは、訓練誤差ではなく、まだ見ぬデータに対する誤差、すなわち 汎化誤差(generalization error) です。訓練誤差は汎化誤差を楽観的に見積もってしまうので、当てになりません。
解決の原則はシンプルです。
モデルの評価には、学習に使っていないデータを使う。
いちばん素朴には、データを 訓練用 と テスト用 に分け(ホールドアウト)、訓練用だけで学習し、テスト用で誤差を測ります。
5. クロスバリデーション
ホールドアウトには弱点があります。データの一部をテスト用に取り分けるぶん学習に使えるデータが減り、しかも「どう分けたか」で結果が揺れます。これを克服するのが クロスバリデーション(交差検証, cross-validation, CV) です。
- k-分割CV(k-fold CV):データを k 個のかたまりに分け、1つをテスト・残り k-1 で学習、を全 k 通りで繰り返して誤差を平均する。すべてのデータが一度ずつテストに回るので無駄がない。
- leave-one-out CV(LOOCV、一個抜き交差検証):k=n の極限。1個だけを抜いて残り n-1 個で学習し、抜いた1個で予測する、を n 回くり返して平均する。 \text{CV}_{\text{LOO}}=\frac{1}{n}\sum_{i=1}^{n}\big(y_i-\hat f_{-i}(x_i)\big)^2, ここで \hat f_{-i} は「i 番目を除いて学習した予測器」です。
CV が与えるのは、汎化誤差(予測誤差)の推定値です。これを使って「どのモデルが、どのハイパーパラメータが、新しいデータでいちばん当たりそうか」を選びます。
ひとつ注意があります。CV の誤差を見て選んだ瞬間に、その CV 誤差はもう「新しいデータでの誤差」の公平な見積もりではなくなります。たくさんの候補の中から、たまたま CV 成績のよいものを選んだ ― 多重比較(「統計の重要ポイント」ポイント13)と同じ構図だからです。だから本格的な機械学習では、モデル選びに使う検証データと、最後に一度だけ性能を測るテストデータを分けておくのが標準の作法です。
6. LOOCV と AIC ── 別ルートで同じ予測精度へ
予測のためのモデル選択には、CV のほかに 罰則つき尤度 を使う道もあります。その代表が AIC(赤池情報量規準, Akaike Information Criterion) です。最大化した尤度 L(\hat\theta) とパラメータ数 k から \text{AIC}=-2\ln L(\hat\theta)+2k. 前章のベイズの式に出てきた BIC =-2\ln L(\hat\theta)+k\ln n(n は標本サイズ)とよく似ていますが、罰則が 2k(BIC の k\ln n より軽い)である点が違います。そして出自も違います ― AIC は「将来のデータをどれだけうまく予測できるか」を測る規準 として導かれました(情報量にもとづく予測精度の最大化)。
ここで気持ちのよい事実があります。一定の条件(線形回帰+正規誤差など)のもとで、 \text{LOOCV}\ \approx\ \text{AIC} が漸近的に一致します(Stone, 1977)。つまり、「データを1個ずつ抜いて予測誤差を実測する(LOOCV)」という地道なやり方と、「罰則つき尤度を計算する(AIC)」という解析的なやり方は、別ルートをたどって同じ予測精度の推定にたどり着くのです。
こうして AIC は予測のための規準として位置づきます。では前章の BIC とは何が同じで何が違うのか ― 次節で整理します。
7. AIC と BIC を整理する ── 予測(事後)か、証拠(事前)か
AIC と BIC は、どちらも「-2\ln L(\hat\theta)+(\textsf{罰則})」という同じ形をしています。違いは罰則の重さ(AIC は 2k、BIC は k\ln n)だけに見えますが、その背後には 「どちらの予測分布に注目しているか」 という、もっと本質的な差があります。
ベイズには2種類の「予測」があります。
- 事前予測分布(prior predictive):データを見る 前 の、事前分布だけにもとづく予測。これを1つの数にまとめたものが、前章の 周辺尤度 にほかなりません。 p(D)=\int p(D\mid\theta)\,p(\theta)\,d\theta\qquad(\textsf{尤度を}\ \textbf{事前分布}\ \textsf{で平均}).
- 事後予測分布(posterior predictive):データで学習した 後 の予測。 p(\tilde y\mid D)=\int p(\tilde y\mid\theta)\,p(\theta\mid D)\,d\theta\qquad(\textsf{尤度を}\ \textbf{事後分布}\ \textsf{で平均}).
この区別が、2つの規準の性格をきれいに分けます。
- BIC は事前予測(証拠)の側。\text{BIC}\approx-2\ln p(D) で、p(D) は 事前分布で平均した「見る前の予測力」=証拠(エビデンス)です。この p(D) は 事前分布の取り方に敏感(事前を広げるほど下がる ― 「ベイズ統計の数理」§4.3 のオッカムの剃刀)。BIC はその大標本近似で、事前の細部は大標本の近似の過程で落ちてしまいますが、見ているのは 事前で平均した証拠 の側です。
- AIC は事後予測(汎化)の側。AIC が見積もるのは、学習した後に、推定したモデルで将来データをどれだけ当てられるか=学習後の予測の良さで、第6節のとおり LOOCV に一致します。だから AIC は 学習結果(得られたモデル)による予測に注目した量であり、データが増えれば事前の影響は薄れていきます。
ひとことでいえば ― 「AIC は学習後の予測(事後予測)を、BIC は学習前の証拠(事前予測=周辺尤度)を見ている」。同じ罰則つき尤度の形でも、目指すものが正反対なのです(厳密にベイズの事後分布そのものを使うのは、次に挙げる WAIC です)。
発展:WAIC と WBIC(渡辺澄夫)。AIC・BIC は「正則なモデル」での近似でした。ニューラルネットや混合モデルのように 特異なモデル(パラメータが一意に定まらない)では、その前提が崩れます。これを乗り越えるのが渡辺によるベイズ版です。WAIC は 事後予測分布から汎化誤差(out-of-sample の予測精度)を推定する AIC のベイズ拡張(ベイズ流の LOO-CV に漸近一致)、WBIC は 周辺尤度(ベイズ自由エネルギー)を、温度を調整した特殊な事後分布での1回の計算で近似する BIC のベイズ拡張です。系統はそのまま受け継がれ ― WAIC=事後予測の系統、WBIC=事前予測(証拠)の系統 となります。
整理すると次のとおりです。
| 予測(事後)の系統 | 証拠(事前)の系統 | |
|---|---|---|
| 注目する予測分布 | 事後予測(AIC は \hat\theta を代入した近似、WAIC は p(\tilde y\mid D) そのもの) | 事前予測=周辺尤度 p(D) |
| 問い | 学習後、将来データを当てられるか | 見る前にデータを当てられたか |
| 罰則つき尤度(正則モデル) | AIC:罰則 2k | BIC:罰則 k\ln n |
| ベイズ拡張(特異モデルでも) | WAIC | WBIC |
| 対応する操作 | LOOCV に一致 | ベイズファクター・自由エネルギー \text{BF}_{10}\approx e^{(\text{BIC}_0-\text{BIC}_1)/2} |
| 事前分布への感度 | 低い(データが増えると薄れる) | 高い(事前で平均するため) |
(より進んだ整理は Gelman らの解説 Understanding predictive information criteria for Bayesian models や、WAIC の Wikipedia 記事 が読みやすいです。)
まとめ:この章の幹
- 推論(係数 \beta の意味・有意性)と 予測(出力 \hat y の精度)は別の目標。機械学習は後者を重視する。
- 予測誤差は E[(y-\hat f)^2]=\textsf{バイアス}^2+\textsf{バリアンス}+\sigma^2 に分解できる。単純すぎ=高バイアス、複雑すぎ=高バリアンス。
- バイアス・バリアンス・トレードオフ:少しのバイアスを許してでもバリアンスを下げれば、合計誤差は小さくなる(例:リッジ回帰)。不偏性より MSE 最小。
- 訓練誤差は汎化誤差を楽観視する。だから学習に使っていないデータで評価する(過学習の回避)。
- クロスバリデーション(とくに LOOCV)で汎化誤差を推定し、モデルを選ぶ。
- LOOCV ≈ AIC。さらに AIC は事後予測(予測)、BIC は事前予測=周辺尤度(証拠) に注目した量 ― 「AIC は事後予測、BIC は事前予測を見る」。特異モデルではそれぞれ WAIC・WBIC に拡張される。