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 でちょうど消えて、この足し算だけが残ります。

図 1: 的当てで見るバイアスとバリアンス。的の中心が真の値 f、各点が訓練データを取り替えるたびの予測 \hat f。矢のずれは「狙いのずれ(バイアス)」と「平均まわりのばらつき(バリアンス)」に分解でき、2乗して平均をとると交差項が消えて、この2つの和になる。

ノイズも入れた完全版

現実のデータには、どんな予測器でも取り除けない偶然のノイズが乗っています。ある点 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)。

図 2: モデルを複雑にするほどバイアス²は減るがバリアンスは増える。合計誤差(黒)は両者の和(+取り除けないノイズ \sigma^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 nn は標本サイズ)とよく似ていますが、罰則が 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 記事 が読みやすいです。)


まとめ:この章の幹

  1. 推論(係数 \beta の意味・有意性)と 予測(出力 \hat y の精度)は別の目標。機械学習は後者を重視する。
  2. 予測誤差は E[(y-\hat f)^2]=\textsf{バイアス}^2+\textsf{バリアンス}+\sigma^2 に分解できる。単純すぎ=高バイアス、複雑すぎ=高バリアンス。
  3. バイアス・バリアンス・トレードオフ:少しのバイアスを許してでもバリアンスを下げれば、合計誤差は小さくなる(例:リッジ回帰)。不偏性より MSE 最小。
  4. 訓練誤差は汎化誤差を楽観視する。だから学習に使っていないデータで評価する(過学習の回避)。
  5. クロスバリデーション(とくに LOOCV)で汎化誤差を推定し、モデルを選ぶ。
  6. LOOCV ≈ AIC。さらに AIC は事後予測(予測)BIC は事前予測=周辺尤度(証拠) に注目した量 ― 「AIC は事後予測、BIC は事前予測を見る」。特異モデルではそれぞれ WAIC・WBIC に拡張される。