【がくしゅうりつ】
学習率 とは?
最終更新:
💡 更新の歩幅を調節するつまみ
勾配降下法などで、パラメーターの更新量を調節する設定値。基本的な勾配降下法では、勾配に学習率を掛けて更新します。大き過ぎると不安定になり、小さ過ぎると進みが遅くなる場合があり、モデルやデータに合わせて選びます。
学習率は、1回で動かす距離そのもの?
基本的な勾配降下法では、学習率を勾配に掛けて更新量を決めるよ。勾配は損失が増える方向と変化の大きさを表すので、その反対へ進む。学習率が同じでも勾配が変われば更新量は変わるんだ。
大きくすれば、早く学習できる?
大き過ぎると谷を飛び越えるように、損失が上下したり増え続けたりすることがある。反対に小さ過ぎると、改善に多くの更新が必要になることもあるよ。小さい値なら必ず最適解に着く、という保証もないんだ。
よい値は、どうやって選ぶの?
モデル、データ、最適化の方法、バッチサイズによって違うよ。候補を変えて試し、学習中の損失だけでなく、学習に使っていないデータでの結果も比較する。全部に使える正解の値があるわけではないんだ。
Adamなら、自分で決めなくてよい?
学習中に、値を変えることもある?
あるよ。スケジューラーで決めた進み方に沿って変える。最初は小さく始めて上げるウォームアップや、コサインの曲線に沿って下げる区間を作る方法などがあるんだ。必要性や変え方は学習の条件に合わせて選ぼう。
まとめ:ざっくりこれだけ覚えればOK!
「学習率」って出てきたら「学習でパラメーターを動かす歩幅を調節する値」と思えばだいたいOK!
📖 おまけ:英語の意味
「Learning Rate」 = 学習率
💬 Learningは学習、Rateは率。学習でパラメーターを更新するとき、その変化の大きさを調節する値だよ。