線形回帰モデル \(y = ax + b\) の 勾配降下法 計算機を紹介します。係数 \(a\) と \(b\) の値は、線形最小二乗法 に基づく解析的手法で計算されたものと比較されます。結果の比較も教育目的で示されます。
ここでは、データ点 \( (x_i , y_i) \) のセットが \( n \) 個あり、次の和を最小化することで \(y = ax + b\) という線形モデルを見つけると仮定します。
\[ \Sigma^{n}_{i=1}(y_i - (a \cdot x_i + b))^2 \]
これは、データ点と線形モデル上の点との距離の和です。下図に示されるように。
注意:偏導関数や他の解析的計算を行う際に実用上の理由から、絶対値ではなく二乗和が使用されます。
次に、線形モデルに含まれる係数 \( a \) と \( b \) を計算する2つの方法を紹介します。
勾配降下法 は、コスト関数を最小化することでパラメータ \(a\) と \(b\) を見つける反復最適化アルゴリズムです。
\[ J(a, b) = (1/2n) \Sigma^{n}_{i=1}(y_i - (a \cdot x_i + b))^2 \] 偏導関数は、更新式に必要であり、次のように与えられます。 \[ \dfrac{\partial J}{\partial a} = (1/n) \Sigma^{n}_{i=1}(- x_i (y_i - (a x_i + b))) \] \[ \dfrac{\partial J}{\partial b} = (1/n) \Sigma^{n}_{i=1}(-(y_i - (a x_i + b ))) \]パラメータ \( a \) と \( b \) の更新式は次の通りです:
\[ a_{k+1} = a_k - r \dfrac{\partial J}{\partial a}|_{a=a_k,b=b_k} = a_k - r (1/n) \Sigma^{n}_{i=1}(-x_i (y_i - (a_k * x_i + b_k))) \] \[ b_{k+1} = b_k - r \dfrac{\partial J}{\partial b}|_{a=a_k,b=b_k} = b_k - r (1/n) \Sigma^{n}_{i=1}(-(y_i - (a_k x_i + b_k))) \] ここで、線形最小二乗法 に基づく解析的手法では、二乗誤差和を最小化することで導き出された閉形式の公式を使用します。パラメータ \(a\) と \(b\) の公式は次の通りです:
\[ a = \dfrac{(n \cdot \displaystyle \Sigma^{n}_{i=1} (x_i \cdot y_i) - \Sigma^{n}_{i=1} x_i \cdot \Sigma^{n}_{i=1} y_i)}{ (n \cdot \Sigma^{n}_{i=1} (x_i^2) - (\Sigma^{n}_{i=1}x_i)^2) } \] \[ b = \dfrac{(\Sigma^{n}_{i=1}y_i - a \cdot \Sigma^{n}_{i=1}x_i) }{ n } \]点数を入力してください:
\( n = \)
\( \dfrac{\partial J}{\partial a} \) =
\( \dfrac{\partial J}{\partial b} \) =
勾配降下法による結果:\(a = \)
\(b = \)
線形最小二乗法による結果(上記の公式を使用):\(a = \)
\(b = \)
コスト関数 \( J(a, b) \) の最小値:
凡例: 青 は勾配降下法、緑 は線形最小二乗法。