機械学習および統計学において、学習率(learning rate)は、最適化アルゴリズムにおける調整パラメータであり、損失関数の最小値に向かって移動する際の各反復でのステップサイズを決定する。これは、新しく得られた情報が古い情報をどの程度上書きするかに影響を与えるため、機械学習モデルが「学習する」速度を比喩的に表している。適応制御の文献では、学習率は一般にゲイン(gain)と呼ばれる。
学習率を設定する際には、収束速度とオーバーシュートの間にトレードオフが存在する。降下方向は通常、損失関数の勾配から決定されるが、学習率はその方向にどれだけ大きなステップを踏むかを決定する。学習率が高すぎると学習が最小値を飛び越えてしまうが、低すぎると収束に時間がかかりすぎるか、望ましくない局所最小値に陥ってしまう。
より速い収束を達成し、振動や望ましくない局所最小値への陥りを防ぐために、学習率はトレーニング中に、学習率スケジュールに従って、または適応的学習率を用いて、しばしば変化させられる。学習率とその調整はパラメータごとに異なる場合もあり、その場合、これは対角行列となり、ニュートン法におけるヘッセ行列の逆行列の近似として解釈できる。学習率は、準ニュートン法や関連する最適化アルゴリズムにおける不正確な直線探索によって決定されるステップ長に関連している。
学習率スケジュール
学習率スケジュールは、学習中に学習率を変更し、最も頻繁にはエポックまたは反復の間で変更される。これは主に、減衰(decay)とモーメンタム(momentum)という2つのパラメータで行われる。多くの異なる学習率スケジュールが存在するが、最も一般的なものは、時間ベース、ステップベース、指数ベースである。
減衰は、学習を適切な場所に落ち着かせ、振動を避けるために役立つ。これは、高すぎる一定の学習率が最小値を前後に飛び越える学習を引き起こす場合に生じる状況である。減衰はハイパーパラメータによって制御される。
モーメンタムは、丘を転がり落ちるボールに例えられる。ボールが丘の最下点(最小誤差に対応)に落ち着くことを望む。モーメンタムは、誤差コストの勾配が長い間同じ方向を向いているときに学習を加速(学習率を増加)させ、また小さな隆起を「乗り越える」ことで局所最小値を回避する。モーメンタムは、ボールの質量に類似したハイパーパラメータによって制御され、これは手動で選択する必要がある。高すぎると見つけたい最小値を乗り越えてしまい、低すぎるとその目的を果たせない。モーメンタムを考慮に入れる公式は減衰よりも複雑であるが、多くの場合、深層学習ライブラリ(Kerasなど)に組み込まれている。
時間ベースのスケジュール
時間ベースの学習スケジュールは、前の時間反復の学習率に応じて学習率を変更する。減衰を考慮に入れると、学習率の数学的公式は次のようになる:
η_{n+1} = η₀ / (1 + d n)
ここで、ηは学習率、η₀は初期学習率、dは減衰パラメータ、nは反復ステップである。
ステップベースのスケジュール
ステップベースの学習スケジュールは、事前に定義されたいくつかのステップに従って学習率を変更する。減衰適用の公式はここでは次のように定義される:
η_n = η₀ d^(⌊(1+n)/r⌋)
ここで、η_nは反復nでの学習率、η₀は初期学習率、dは各ドロップで学習率がどれだけ変化するか(0.5は半減に対応)、rはドロップ率、つまりレートがドロップされる頻度(10は10反復ごとのドロップに対応)である。床関数(⌊…⌋)はここで、入力の値を1より小さいすべての値に対して0に切り捨てる。
指数ベースのスケジュール
指数ベースの学習スケジュールはステップベースに類似しているが、ステップの代わりに減少する指数関数が使用される。減衰を考慮に入れるための数学的公式は次の通りである:
η_n = η₀ e^(−d n)
ここで、dは減衰パラメータである。
適応的学習率
学習率スケジュールの問題点は、それらがすべて、各学習セッションごとに手動で選択しなければならず、問題や使用されるモデルによって大きく異なる可能性があるハイパーパラメータに依存していることである。これに対処するために、Adagrad、Adadelta、RMSprop、Adamなど、多くの異なるタイプの適応的勾配降下アルゴリズムが存在し、これらは一般にKerasなどの深層学習ライブラリに組み込まれている。
ウォームアップと周期的スケジュール
古典的な減衰スケジュールに加えて、大規模モデルの現代的なトレーニングでは、ウォームアップと周期的スケジュールがしばしば採用される。ウォームアップは小さな学習率から始め、数エポックにわたって徐々に増加させる。これにより、特にトランスフォーマーベースのモデルにおいて、初期段階のトレーニングを安定させるのに役立つ。周期的スケジュール(コサインアニーリングなど)は、学習率を最小値と最大値の間で定期的に変化させ、局所最小値からの脱出を助け、時には汎化を改善することができる。
実践的な考慮事項
学習率スケジュールの選択は、ニューラルネットワークモデルのトレーニングに大きな影響を与える可能性がある。例えば、大規模言語モデルのトレーニングでは、線形ウォームアップの後にコサイン減衰を使用するのが一般的な慣行である。このアプローチは、OpenAIやGoogle DeepMindなどの組織が大規模なトレーニング実行で使用している。初期学習率は、経験則に基づいて、または数回の反復にわたって値の範囲をテストする学習率ファインダーを実行することによって、しばしば設定される。
最適化アルゴリズムとの関係
学習率スケジューリングは、最適化アルゴリズムの選択と密接に関連している。機械学習フレームワーク(TensorFlowやPyTorchなど)は、SGD、Adam、RMSpropなどのオプティマイザと組み合わせることができる組み込みのスケジューラを提供している。スケジュールとオプティマイザの内部状態(Adamのモーメンタムバッファなど)との相互作用は重要である。例えば、学習率をあまりに急激に減少させると、オプティマイザがオーバーシュートを引き起こす可能性がある。
歴史と発展
トレーニング中に学習率を調整するという概念は、人工知能と機械学習における初期の研究にまで遡る。トーマス・ディータリッヒやマイケル・ジョーダンなどの研究者は、学習システムにおける最適化の基礎的理解に貢献した。2010年代には、深層学習の台頭によりスケジューリングへの関心が再び高まり、周期的学習率やウォームアップに関する論文が広く引用されるようになった。