勾配降下法は、 重みとバイアスを繰り返し求める数学的手法によって、 損失の最も低いモデルを返します。勾配降下法で最適な重みとバイアスを見つける ユーザー定義のイテレーションの数で次のプロセスを繰り返す。
ランダムな重みとバイアスがゼロに近い状態でモデルのトレーニングが開始されます。 その後、次の手順を繰り返します。
現在の重みとバイアスで損失を計算します。
損失を減らす重みとバイアスの方向を決定します。
重みとバイアスの値を小さくする方向に少しだけ動かします。 損失です。
ステップ 1 に戻り、モデルが 損失を回避できます。
下の図は、勾配降下法によって検出される反復ステップの概要 損失を最小限に抑えるモデルの重みとバイアスです。
図 12. 勾配降下法とは、重みを求める反復処理 損失が最小になるモデルが生成されます。
勾配降下法の背後にある計算の詳細を確認するには、プラスアイコンをクリックします。
具体的には、勾配降下法の手順を 自動車の重さをポンド単位で 7 つの例を含む小さなデータセットを使用 およびその 1 ガロンあたりのマイル(マイル)評価:
ポンド(1,000 ポンド)(機能) | マイル/ガロン(ラベル) |
---|---|
3.5 | 18 |
3.69 | 15 |
3.44 | 18 |
3.43 | 16 |
4:34 | 15 |
442 | 14 |
2.37 | 24 |
- モデルのトレーニングを開始するには、重みとバイアスを 0 に設定します。
- 現在のモデル パラメータで MSE 損失を計算する:
- 重みごとに損失関数の正接の傾きを計算する バイアス:
- 負の傾きの方向に少しだけ動かして、 重みとバイアスが変化しますここでは、自由に定義して、 「少量」0.01 として:
プラスアイコンをクリックすると、傾きの計算の詳細が表示されます。
重みに接する線の傾きを求めるには、 損失関数の微分を 重みとバイアスの関係を学習し、 方程式。
予測を行うための方程式は、次のように記述します。
$ f_{w,b}(x) = (w*x)+b $ です。
実際の値は「$ y $」と記述します。
MSE は次のように計算されます。
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
ここで、$i$ は $ith$ のトレーニング例、$M$ は
例の数によって決まります
重みに対する損失関数の微分は、次のように記述します。
$ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
次のように評価されます。
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $
まず、それぞれの予測値から実際の値を差し引く 特徴値を 2 倍掛けます その合計をサンプル数で除算します。 結果として、値に接する線の傾きが 表します。
この方程式を重みとバイアスが 直線の傾きは -119.7 になります。
バイアス微分
損失関数の微分係数と損失関数の
バイアスは次のように記述します。
$ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
次のように評価されます。
$ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $
まず、それぞれの予測値から実際の値を差し引く 2 を掛けます次に、その合計を 例の数になります。結果として、直線の傾きが バイアスの値に正接します
この方程式を重みとバイアスが 直線の傾きは -34.3 になります。
新しい重みとバイアスを使用して損失を計算し、同じ手順を繰り返します。完了 反復処理を 6 回繰り返すと、重み、バイアス、 損失があります。
繰り返し | 重量 | バイアス | 損失(MSE) |
---|---|---|---|
1 | 0 | 0 | 303.71 |
2 | 1.2 | 0.34 | 170.67 |
3 | 2.75 | 0.59 | 67.3 |
4 | 3.17 | 0.72 | 5,063 |
5 | 3.47 | 0.82 | 42.1 |
6 | 3.68 | 0.9 | 37.74 |
重みとバイアスを更新するたびに損失が小さくなっていることがわかります。 この例では、6 回の反復処理の後に停止しています。実際には、モデルは 次の状態になるまでトレーニング 収束します。 モデルが収束しても、イテレーションを追加しても損失は減少しない 勾配降下法で近似的に想定される重みとバイアスが 損失を最小限に抑えることができます。
収束を過ぎてもモデルのトレーニングが続くと、損失が モデルが継続的に更新されるため、少量で変動します。 その最小値を中心として計算されますこれにより、 モデルが実際に収束したことを確認します。モデルの確認 収束したので、損失が収束するまでトレーニングを 示します。
モデルの収束曲線と損失曲線
モデルをトレーニングするときに、モデルの損失 グラフを使用して、モデルが 収束。損失曲線は モデルの学習に伴う損失の変化などです一般的な損失は次のとおりです。 示しています損失は Y 軸、反復処理は X 軸で示されています。
図 13. モデルが収束していることを示す損失曲線 1,000 回目の反復マーク。
最初の数回のイテレーションで損失が急激に減少していることがわかります。 その後徐々に減少し、その後 1,000 回目の反復処理でフラット化します マークします。1,000 回の反復処理後、ほぼ確実に、モデルの 収束します
次の図では、トレーニング中の 3 つのポイントでモデルを描画します。 始まり、中間、終わりです。モデルの状態を可視化する 更新プロセスの間のつながりを強固にすることで、 重みとバイアスの調整、損失の低減、モデルの収束
図では、特定の反復処理で導出された重みとバイアスを使用して、 モデルを表します。データポイントとモデルスナップショットのグラフでは モデルからデータポイントまでの青色の損失線は損失の大きさを示しています。「 線が長くなるほど損失が大きくなります。
次の図では、2 回目の反復処理でモデルが 損失の量が多いため、予測に適していません。
図 14. 初期のモデルの損失曲線とスナップショット 説明します。
反復処理が 400 回頃になると、勾配降下法によって 重みとバイアスを表します。
図 15. トレーニングの途中の時点のモデルのスナップショットと損失曲線。
1,000 回目の反復処理でモデルが収束したことがわかります。 損失を最小限に抑えるモデルを作成できます。
図 16. トレーニング終了前のモデルの損失曲線とスナップショット プロセスです
演習:理解度をチェックする
収束関数と凸関数
線形モデルの損失関数は常に 凸表面。結果: 線形回帰モデルが収束すると 損失を最小限に抑える重みとバイアスを見つけました。
1 つの特徴を持つモデルの損失表面をグラフ化すると、 使用できます。1 ガロンあたりのマイル数データセットの損失表面は次のとおりです。 必要があります。X 軸に重み、Y 軸にバイアス、 損失は Z 軸です。
図 17. 凸形状を示す損失表面。
この例では、重みが -5.44、バイアスが 35.94 の場合に損失が最も小さくなります。 at 5.54:
図 18. 生成される重みとバイアスの値を示す損失表面 損失を最小限に抑えます。
線形モデルは、最小の損失が見つかると収束します。したがって、追加の 反復処理では、勾配降下法によってモデルの重みとバイアス値が ほぼごく少量です重みとバイアスのポイントを 勾配降下法では、点が丘を滑り落ちるボールのように見えますが、 最後の傾斜がなくなるところで終わります
図 19.勾配降下点が最低で停止していることを示す損失グラフ グラフ上の点になります。
黒い損失点によって損失曲線の正確な形状が作成されています。 急激に下降した後、最小値になるまで徐々に下がる 損失表面上の点です。
注意すべき点として、モデルは正しい答えを見つけることはほとんど 各重みとバイアスの最小値を見つけ、それに非常に近い値を求めるようにします。 注意すべき点として 重みとバイアスの最小値は つまり、その値に対して損失が最も低い値のみが パラメータを指定します。
損失が最も小さい重みとバイアスの値を使用(この場合は) 重みが -5.44、バイアスが 35.94 の場合、モデルをグラフ化して、 データに適合する:
図 20. 重みとバイアスの値を使用してグラフ化されたモデル 損失を最小限に抑えます。
他の重みやバイアスがないため、このデータセットに最適なモデルです。 損失の少ないモデルを生成できます。