勾配降下法でデータに最もフィットする直線を見つける、機械学習の最も基本的なアルゴリズム
線形回帰は、過去のデータをもとにまだ見ぬ数値を予測する手法です。 たとえば「広告費を30万円かけたら、売上はいくらになるか?」という問いに対して、 過去の広告費と売上のデータからŷ = w·x + b という直線を学習し、「売上は約105万円になりそう」と予測します。
ロジスティック回帰が「合格か不合格か」の分類をするのに対し、 線形回帰は「売上は◯◯万円」「気温は◯◯度」のように具体的な数値を予測します。 この「数値を予測する」タスクのことを機械学習では回帰と呼びます。
直線の良さは「予測と実際の誤差がどれだけ小さいか」で測ります。この誤差をコスト関数(MSE)と呼び、 これを最小にする傾き w と切片 b を見つけるのが目標です。
最適な w と b の求め方には2つの方法があります。解析解(正規方程式)は数式で一発で正解を出す方法で、データが少なければこれで十分です。 もう1つが勾配降下法で、少しずつ誤差を減らしながら正解に近づけていく方法です。 データが大量にあるときや、ニューラルネットワークなど複雑なモデルでは勾配降下法が使われます。 このツールでは両方を体験できます。
8社の広告費と売上のデータから、y = w·x + b の最適な w と b を勾配降下法で求める流れを見ていきましょう。
勾配降下法は、予測の誤差(コスト)を最小にするパラメータ w と b を見つけるためのアルゴリズムです。 「霧の中で山の谷底を探す」ことに似ています。
あなたは霧の中で山の斜面に立っています。周りが見えないので、谷底がどこにあるかわかりません。 でも、足元の傾き(勾配)だけは感じ取れます。 「足元が左に傾いている → 左に進む」「右に傾いている → 右に進む」を繰り返せば、いつか谷底にたどり着きます。
上のツールの等高線図がまさにこの「山」です。色が薄い場所が谷底、ピンクの軌跡があなたの歩いた道。学習率を大きくしすぎると歩幅が大きすぎて谷底を飛び越えてしまい、小さすぎると谷底にたどり着くまでに時間がかかります。試してみてください。
解析解(正規方程式)は、数式を使って一発で最適な答えを出す方法です。 「地図を見て谷底の座標を計算する」ことに似ています。
霧なんて関係ありません。山全体の地図(=データ全体)を手に入れて、数学の公式で「谷底はここ」と一発で求めます。 歩き回る必要がないので、学習率もエポック数も不要です。
ただし、地図を作るのにも計算コストがかかります。データが大量(100万件〜)になると地図を作ること自体が大変になるため、 そういう場合は霧の中を歩く方法(勾配降下法)のほうが現実的です。