線形回帰 — 一本の直線がデータに吸い付くまで

「勉強時間からテストの点数を予測する」— 機械学習でいちばん最初に学ぶモデルが線形回帰です。どの直線が「いちばん良い」かを数字で決め、機械が自動でそこへたどり着く様子を、3つの動くデモで確かめます。

1. いちばん良い直線を手で探す — 残差とMSE

予測モデルは直線 ŷ = wx + b です。w(傾き)は「勉強1時間で何点上がるか」、b(切片)は「勉強0時間のときの予測点数」を表します。

ŷ = w x + b ŷ(ワイハット)は「予測値」の印。w: 傾き、b: 切片。この2つの数字を決めることが「学習」

では「良い直線」とは何でしょう。各データ点と直線のタテのずれを残差と呼びます。残差を2乗して平均したものがMSE(平均二乗誤差)。この数字が小さいほど良い直線です。スライダーで w と b を動かして、MSE をどこまで小さくできるか挑戦してください。最良値に近づくと表示が緑になります。

手動フィット — MSE 最小化ゲーム
水色の点=データ(勉強時間と点数)。赤い縦線=各点の残差。MSE はその2乗の平均で、リアルタイムに更新されます。最良の直線に近づくと MSE 表示が緑に変わります。
MSE = (1/n) Σ ( yi − ŷi )² 残差(実際の値 − 予測値)を2乗して n 個ぶん平均する。単位は「点²」

2. 自動で最良の直線へ — 勾配降下でフィットさせる

手で探すのは大変でした。機械はどうやって最良の w, b を見つけるのでしょうか。代表的な方法が勾配降下法:「いまの直線で MSE が減る方向に、w と b を少しずつずらす」を何百回も繰り返します。

「学習開始」を押すと、直線がデータに吸い付いていくと同時に、右側に損失(MSE)がみるみる下がるカーブが描かれます。学習率(1回にずらす量)を変えて再実行してみてください。大きすぎると何が起きるでしょう?

最小二乗の自動フィット — 直線の動きと損失カーブ
左=データと現在の直線(学習中は緑)。右=学習ステップごとの MSE。点線は理論上の最小値です。学習率を上げると速く収束しますが、上げすぎると MSE が爆発して発散します(枠が赤くなります)。
注意 — 学習率はさじ加減 学習率が小さすぎると収束が遅く、大きすぎると谷を飛び越えて発散する。このさじ加減は線形回帰に限らず、ディープラーニングまで含めた機械学習全体で最重要のチューニング項目。くわしくは次のレッスン「勾配降下法」で。

3. なぜ「2乗」するのか — 面積で見る最小二乗法

残差をそのまま足すとプラスとマイナスが打ち消し合ってしまうため、2乗してから足します。じつは「残差の2乗」には目で見える形があります — 残差を一辺とする正方形の面積です。

つまり最良の直線とは、全部の正方形の合計面積が最小になる直線のこと。これが最小二乗法という名前の由来です。スライダーで直線を動かして面積の変化を見たあと、「最適な直線へ」ボタンで正解と見比べてください。

二乗誤差の見える化 — 正方形の合計面積を最小にせよ
オレンジの正方形=各残差を一辺とする「二乗誤差」。直線を動かすと面積が伸び縮みします。合計面積が最小になる置き方が最小二乗解。大きく外れた点の正方形が異様に大きくなることにも注目(2乗のせいで、外れ値は直線を強く引っ張ります)。
POINT — 最小二乗法 線形回帰の学習とは、残差の2乗和(=正方形の合計面積)が最小になる w と b を選ぶこと。「誤差の測り方を決める → それを最小化する」という流れは、ほぼすべての機械学習に共通する型。

4. まとめ

一歩先へ — 実は一発で解ける、それでも勾配降下を学ぶ理由 線形回帰には正規方程式という公式があり、計算一発で最適な w, b が求まる。それでも勾配降下法を学ぶのは、パラメータが何億個あるニューラルネットワークでは公式が使えず、「少しずつ下る」だけが頼りになるから。次のレッスンでその勾配降下法を徹底的に動かす。