この実験について
ニューラルネットワークの学習とは、損失曲面を下っていくことです。勾配降下法は、勾配と反対の方向へ、学習率に応じた大きさの一歩を踏み出します。この単純なルールには、さまざまな挙動が隠れています。歩幅が小さすぎると進みが遅く、大きすぎると振動したり発散したりします。細長い谷ではジグザグに進み、局所最小値から抜け出せなくなることもあります。曲面を選び、開始点をクリックして、通常の勾配降下法、モーメンタム、Adamを、マップと損失曲線上で一歩ずつ比較してみましょう。
学習目標
- 勾配降下法の更新式を書き、学習率の役割を説明する
- 二次損失に対する安定限界 η < 2/λ_max を導出し、検証する
- 悪条件の谷で勾配降下法がジグザグに進む理由と、モーメンタムがどう役立つかを説明する
- Adamが勾配の移動平均を使って各座標のスケールをどのように調整するかを説明する
- 大域最小値ではなく局所最小値に収束していることを見分ける
使い方
- 1勾配降下法で「丸い谷」を選びます。学習率を 0.1、1、2.1 にして試し、3つの経路を説明してください。
- 2「狭い谷」を選びます。収束する最大の学習率を見つけ、スライダーの下に表示されている安定限界と比較してください。
- 3「狭い谷」で η を 0.05 に設定します。損失が 1e-6 に達するまでに勾配降下法が必要とするステップ数を数え、次に Momentum に切り替えて β = 0.9 にし、もう一度数えてください。
- 4「バナナ谷」(Rosenbrock 関数)を選びます。300ステップ後の勾配降下法、Momentum、Adam を比較してください。
- 5「2つの極小値」を選びます。デフォルトの開始点から勾配降下法を実行すると、右側の浅い谷で止まります。尾根の両側に開始点を置いて、どの点から深い谷に到達するか確認してください。
- 6デフォルトの開始点に戻り、Momentum に切り替えて β = 0.9、η = 0.1 に設定します。経路が尾根を越えるのはなぜでしょうか?
モデル
前提条件
- 勾配は正確なものです。実際の学習ではミニバッチから勾配を推定するため、ノイズが加わります(確率的勾配降下法)。
- 損失曲面は、固定された2変数関数です。丸いボウル ½(x² + y²)、細い谷 ½(0.5x² + 5y²)、Rosenbrock 関数 (1 − x)² + 10(y − x²)²、そして傾いた二重井戸型です。
- すべての実行は、学習率を固定して300ステップ後に停止します。学習率スケジュールはありません。
- 実行は決定論的です。同じ初期値と設定なら、常に同じ経路になります。
授業で試してみましょう
- Q1細い谷では、安定性の限界は急な方向によって決まりますが、進み具合は緩やかな方向によって制限されます。係数 1 − ηλ を使って説明してください。
- Q2各ステップで同じ勾配を使うのに、なぜモメンタムはより速く収束できるのでしょうか?
- Q3Adam は、曲面の急峻さにかかわらず、およそ η の大きさのステップを取ります。これはどのような場合に利点となり、どのような場合に問題となるでしょうか?
- Q4ニューラルネットワークの損失関数は数百万もの次元を持ちます。局所最小値と鞍点のうち、どちらがより大きな障害になると思いますか?その理由は何ですか?
- Q5初期の速い進歩と精度の高い収束を両立できる学習率スケジュールを提案してください。
よくある質問
学習率が大きすぎると、なぜ損失が増加するのですか?
各ステップで谷底を通り越し、反対側の斜面のより高い位置に着地します。二次関数では、オーバーシュートのたびに距離が |1 − ηλ| 倍になります。η が 2/λ より大きいと、この倍率は 1 を超えます。
狭い谷でモメンタムはどのような働きをしますか?
谷を横切るジグザグ方向の勾配は互いに逆向きなので、蓄積される速度の中で打ち消し合います。一方、谷に沿う小さな勾配はすべて同じ方向を向いているため、加算されます。その結果、進路はまっすぐになり、谷底に沿って速く進むようになります。
Adam は常に勾配降下法より優れているのでしょうか?
いいえ。Adamは堅牢で調整の手間が少ないため、ネットワークの学習によく使われます。ただし、単純で条件の良い問題では、通常の勾配降下法やモメンタム法のほうが速く収束したり、より良い解に到達したりすることがあります。
