学習率(Learning Rate)とは、勾配降下法においてパラメータを更新する際の「歩幅」を決定するハイパーパラメータです。機械学習モデルの訓練における最も重要なハイパーパラメータの一つであり、学習の成否に大きく影響します。
学習率が大きい場合と小さい場合
学習率が大きすぎると、パラメータの更新幅が大きくなりすぎて最適解を飛び越えてしまい、学習が発散する可能性があります。逆に学習率が小さすぎると、収束に非常に時間がかかり、局所最適解に陥りやすくなります。
| ひとことで言うと | パラメータを1回でどれだけ動かすかを決める「歩幅」の設定値。 |
|---|---|
| どう決めるか | 0.001前後から試し、損失の下がり方を見て調整するのが定石。 |
| 注意点 | 大きすぎると発散し、小さすぎると終わらない。最も影響の大きい設定の一つ。 |
学習率スケジューリング
学習率を訓練中に動的に変化させる「学習率スケジューリング」も広く用いられています。ステップ減衰、指数減衰、コサインアニーリング、ウォームアップなどの手法があり、学習初期は大きな学習率で探索し、後半で小さくして精密に収束させるアプローチが一般的です。
1大きすぎる谷を飛び越えて発散
▶
2ちょうど良い速く谷底へ到達
▶
3小さすぎる進まず時間切れ
▶
4途中で下げる最初は大きく、後で細かく
適切な学習率の探索
最適な学習率を見つけるための手法として、学習率レンジテスト(LR Range Test)や、グリッドサーチ、ベイズ最適化などのハイパーパラメータチューニング手法が利用されます。一般的には0.001〜0.01程度の値が初期値として使われることが多いです。