勾配降下法計算機

目次

線形回帰モデル \(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 } \]

計算機の使用方法

この計算機の目的は、学習率 \( r \) や係数 \( a \) と \( b \) の初期値が、勾配降下法の反復プロセスの収束に与える影響を調査することです。
点数 \( n \) を入力し、「Generate Points」をクリックすると、ランダムに \( n \) 点が生成されます。異なる \( r \)、\( a_0 \)、および \( b_0 \) の値で調査します。
偏導関数 \( \dfrac{\partial J}{\partial a} \) および \( \dfrac{\partial J}{\partial b} \) がゼロに近づくと、反復プロセスは解に収束します。
必要に応じて、反復の最大数(エポック数)を増やすこともできますが、計算に時間がかかることがあります。
散布図(赤)はデータポイントを表し、青線は勾配降下法の線形モデル、緑線は線形最小二乗法のモデルを表します。

点数を入力してください: \( n = \)

エポック(最大反復数) :
学習率 \( r \):
\( a \) の初期値:\(a_0 = \)
\( b \) の初期値:\(b_0 = \)

結果

\( \dfrac{\partial J}{\partial a} \) =

\( \dfrac{\partial J}{\partial b} \) =

勾配降下法による結果:

\(a = \)

\(b = \)

線形最小二乗法による結果(上記の公式を使用):

\(a = \)

\(b = \)

コスト関数 \( J(a, b) \) の最小値:

凡例: は勾配降下法、 は線形最小二乗法。