Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ グラディエントディセント | 数理解析
Pythonによるデータサイエンスのための数学

bookグラディエントディセント

メニューを表示するにはスワイプしてください

Note
定義

勾配降下法は、関数のパラメータを最も急激に減少する方向に反復的に調整することで関数を最小化する最適化アルゴリズム。 機械学習において、モデルがデータから効率的に学習するための基礎的手法。

勾配の理解

関数の勾配は、ある点における方向と急勾配度を表す。 これは、関数を最小化するためにどちらの方向に進むべきかを示す。

単純な関数の場合:

J(θ)=θ2J(\theta) = \theta^2

導関数(勾配)は:

J(θ)=ddθ(θ2)=2θ\nabla J(\theta) = \frac{d}{d \theta}\left(\theta^2\right)= 2\theta

つまり、任意のθθの値に対して、勾配はθθをどのように調整すれば最小値に向かって降下できるかを示す。

勾配降下法の公式

重み更新則は次の通り:

θθαJ(θ)\theta \larr \theta - \alpha \nabla J(\theta)

ここで:

  • θ\theta - モデルパラメータ;
  • α\alpha - 学習率(ステップサイズ);
  • J(θ)\nabla J(\theta) - 最小化を目指す関数の勾配。

この関数の場合:

θnew=θoldα(2θold)\theta_{\text{new}} = \theta_{\text{old}} - \alpha\left(2\theta_{old}\right)

つまり、θθ反復的に、スケーリングされた勾配を引くことで更新する。

段階的な移動 – 視覚的な例

開始値: θ=3\theta = 3, α=0.3\alpha = 0.3

  1. θ1=30.3(2×3)=31.8=1.2;\theta_1 = 3 - 0.3(2 \times 3) = 3 - 1.8 = 1.2;
  2. θ2=1.20.3(2×1.2)=1.20.72=0.48;\theta_2 = 1.2 - 0.3(2 \times 1.2) = 1.2 - 0.72 = 0.48;
  3. θ3=0.480.3(2×0.48)=0.480.288=0.192;\theta_3 = 0.48 - 0.3(2\times0.48) = 0.48 - 0.288 = 0.192;
  4. θ4=0.1920.3(2×0.192)=0.1920.115=0.077.\theta_4 = 0.192 - 0.3(2 \times 0.192) = 0.192 - 0.115 = 0.077.

数回の反復後、θ=0θ=0最小値)に近づく。

学習率 – αの賢い選択

  • 大きすぎる  α\ \alpha - 行き過ぎて収束しない;
  • 小さすぎる  α\ \alpha - 収束が遅すぎる;
  • 最適な  α\ \alpha - 速度と精度のバランス。

勾配降下法はいつ停止するか?

勾配降下法は次の場合に停止する:

J(θ)0\nabla J (\theta) \approx 0

これは、さらなる更新がごくわずかとなり、最小値が見つかったことを意味する。

question mark

勾配 J(θ)∇J(θ) がゼロの場合、これは何を意味しますか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  9

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  9
some-alt