損失の低減: 勾配降下法

反復アプローチの図(図 1)には、「Compute parameter updates」というタイトルの緑色の波線付きのボックスがありました。アルゴリズムによるフェアリー ダストを、より実質的なものに置き換えます。

\(w_1\)のすべての値について損失を計算するための時間とコンピューティング リソースがあるとします。これまで検討してきた回帰問題では、損失と \(w_1\) のプロットは常に凸になります。つまり、プロットは常に次のようなボウル型になります。

U 字型曲線のプロット。縦軸に「損失」、横軸に重み w i の値が表示されている。

図 2. 回帰問題により、コンベックス損失と重みのプロットが得られます。

 

凸問題は最小値が 1 つしかありません。つまり、傾きがちょうど 0 になる場所は 1 つだけです。損失関数が収束するのは、この最小値です。

データセット全体で想定される \(w_1\)の値ごとに損失関数を計算することは、収束点を見つけるのに非効率な方法です。ML で非常に一般的な、勾配降下法という、より優れたメカニズムを見てみましょう。

勾配降下法の最初のステージは、 \(w_1\)の開始値(始点)を選択します。開始点はそれほど重要ではありません。そのため、多くのアルゴリズムでは、単に \(w_1\) を 0 に設定するか、ランダムな値を選択します。次の図は、0 より少し大きい開始点を選択していることを示しています。

U 字型曲線のプロット。曲線の左側の中間点にあるポイントは「開始点」と呼ばれます。

図 3. 勾配降下法の出発点。

勾配降下法アルゴリズムは、開始点における損失曲線の勾配を計算します。この図 3 では、損失の勾配は曲線の導関数(傾き)に等しく、どちらの方向が「暖かい」か「寒い」かを示しています。複数の重みがある場合、勾配は重みに関する偏導関数のベクトルです。

グラデーションはベクトルなので、次の両方の特性があります。

  • ルート

勾配は常に損失関数が最も急激に増加する方向を指しています。勾配降下法アルゴリズムは、可能な限り迅速に損失を低減するために、負の勾配の方向にステップを実行します。

U 字型曲線のプロット。曲線の左側にある点は「始点」というラベルが付けられます。「負のグラデーション」とラベル付けされた矢印がこの地点から右を指している。

図 4. 勾配降下法は負の勾配に依存します。

損失関数曲線に沿って次の点を判定するために、勾配降下法アルゴリズムは、次の図に示すように、勾配の大きさの一部を始点に追加します。

U 字型曲線のプロット。曲線の左側にある点は「始点」というラベルが付けられます。「負のグラデーション」とラベル付けされた矢印がこの地点から右を指している。別の矢印は、1 つ目の矢印の先端から曲線上の 2 つ目の点を指しています。2 つ目の地点には「次の地点」というラベルが付きます。

図 5. 勾配のステップにより、損失曲線の次の点に進みます。

勾配降下法はこのプロセスを繰り返し、最小に近づきます。