機械学習および統計学において、学習率(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などの深層学習ライブラリに組み込まれている。
深層学習における役割
学習率スケジューラは、現代のニューラルネットワーク、深層学習モデル、大規模言語モデルのトレーニングにおいて重要な構成要素である。実際には、TensorFlowやPyTorchなどのフレームワークは、組み込みのスケジューラ実装を提供している。例えば、OpenAIやAnthropicは、トランスフォーマーベースのモデルをトレーニングする際に、安定した収束を確保するために高度なスケジューリング手法を用いている。同様に、Google DeepMindやMeta AIは、大規模なトレーニング実行のためにカスタムスケジューラを採用している。
実践上の考慮点
適切な学習率スケジュールを選択するには、しばしば実験が必要である。一般的な手法には、学習率を小さな値から線形に増加させるウォームアップフェーズと、それに続く減衰フェーズを用いるものがある。このアプローチは、初期の反復でのトレーニングの安定化に役立つ。さらに、コサインアニーリングや周期的学習率などのスケジューラは、鋭い最小値を回避する能力から人気を集めている。
適応的学習率
学習率スケジュールの問題点は、すべてが各学習セッションごとに手動で選択しなければならないハイパーパラメータに依存しており、問題や使用するモデルによって大きく異なる可能性があることである。これに対処するため、Adagrad、Adadelta、RMSprop、Adamなど、さまざまな種類の適応的勾配降下アルゴリズムがあり、これらは一般にKerasなどの深層学習ライブラリに組み込まれている。
深層学習における役割
学習率スケジューラは、現代のニューラルネットワーク、深層学習モデル、大規模言語モデルのトレーニングにおける重要な構成要素である。実際には、TensorFlowやPyTorchなどのフレームワークは、組み込みのスケジューラ実装を提供している。例えば、OpenAIやAnthropicは、トランスフォーマーベースのモデルをトレーニングする際に、安定した収束を確保するために高度なスケジューリング手法を使用している。同様に、Google DeepMindやMeta AIは、大規模なトレーニング実行のためにカスタムスケジューラを採用している。
実践上の考慮事項
適切な学習率スケジュールの選択には、しばしば実験が必要である。一般的な手法には、学習率が小さい値から線形に増加するウォームアップフェーズと、それに続く減衰フェーズを使用することが含まれる。このアプローチは、初期段階でのトレーニングの安定化に役立つ。さらに、コサインアニーリングや周期的学習率などのスケジューラは、鋭い最小値を回避する能力から人気を集めている。