機械学習において、学習率(learning rate)は、最適化アルゴリズムにおけるチューニングパラメータであり、損失関数の最小値に向かって各反復で進むステップサイズを決定する。これは、新しく取得した情報が古い情報をどの程度上書きするかに影響を与えるため、機械学習モデルが「学習する」速度を比喩的に表している。適応制御の文献では、学習率は一般にゲイン(gain)と呼ばれる。
学習率を設定する際には、収束速度とオーバーシュートの間にトレードオフが存在する。降下方向は通常、損失関数の勾配から決定されるが、学習率はその方向にどれだけ大きなステップを踏むかを決定する。学習率が高すぎると学習が最小値を飛び越えてしまうが、低すぎると収束に時間がかかりすぎるか、望ましくない局所最小値に陥ってしまう。
循環学習率(Cyclical Learning Rates, CLR)は、このトレードオフに対処する訓練手法であり、学習率を単調に減少させるのではなく、下限と上限の間で周期的に変化させる。この手法は2015年にレスリー・N・スミス(Leslie N. Smith)によって導入され、学習率スケジュールの広範な手動調整を必要とせずに、収束速度とモデル精度を向上させることを目的としている。
動機と核となるアイデア
時間ベース、ステップベース、指数減衰などの従来の学習率スケジュールは、エポックごとに学習率を減少させてモデルを最小値に落ち着かせる。しかし、これらのスケジュールは各問題に対して手動で選択する必要があるハイパーパラメータに依存しており、選択が不適切だと収束が遅くなったり、最終的な性能が低下したりする可能性がある。
循環学習率は、適度に高い学習率が正則化器として機能し、モデルが鋭い局所最小値を回避して、より平坦で汎化性の高い最小値を見つけるのを助けるという観察を活用する。学習率を循環させることで、モデルは周期的に損失ランドスケープの領域を大きなステップで探索し、その後小さなステップで精緻化する。このアプローチは、広範なハイパーパラメータ調整の必要性を減らし、固定または単調減衰の学習率よりも高い精度を達成することが多い。
この手法は、損失ランドスケープが高次元で非凸である深層学習の文脈で特に効果的である。循環パターンにより、オプティマイザは一定の学習率よりも効果的に鞍点や狭い谷を横断できる。
三角および変形スケジュール
最も基本的なCLRスケジュールは三角ポリシーであり、学習率が下限から上限まで線形に増加し、その後下限に線形に減少してこのサイクルを繰り返す。サイクル長は、1回の完全な増加-減少期間の反復回数として定義される。一般的な変形である三角2は、各サイクル後に学習率範囲の振幅を半分にし、時間の経過とともに探索範囲を徐々に縮小する。
もう1つの変形である指数三角ポリシーは、各サイクルの振幅に指数減衰を適用し、循環探索の利点と減衰スケジュールの安定性を組み合わせる。これらの変形により、訓練の進行に応じて探索と活用のバランスを取ることができる。
境界の選択は重要である。スミスは、下限を学習が進行できる値に設定し、上限を学習が発散しない程度の十分に高い値に設定することを推奨した。実用的なヒューリスティックとして、学習率レンジテストを実行する方法がある。これは、少数の反復にわたって学習率を線形に増加させ、損失を監視して損失が最も急速に減少する範囲を特定するものである。
学習率レンジテスト
学習率レンジテストは、CLRの適切な境界を選択するために使用される手法である。このテストでは、学習率を非常に小さな値から大きな値まで数エポックにわたって線形に増加させ、訓練損失を記録する。実践者は損失対学習率のプロットを作成し、損失が減少し始める点を下限、損失の改善が止まるか増加し始める点を上限として選択する。
このテストは、循環境界を体系的に設定する方法を提供し、ハイパーパラメータ選択の推測作業を減らす。これは、異なるアーキテクチャやデータセットでモデルを繰り返し訓練する人工知能ワークフローにおいて特に有用である。
適応的手法との関係
循環学習率は、Adagrad、Adadelta、RMSprop、Adamなどの適応学習率手法とは異なる。これらの手法は勾配履歴に基づいてパラメータごとに学習率を調整する。これらの適応手法は、Kerasなどの多くの深層学習ライブラリに組み込まれており、CLRと組み合わせて基本オプティマイザとして使用されることが多い。実際には、CLRは適応オプティマイザの上に適用でき、オプティマイザがパラメータごとのスケールを調整し続ける間に、グローバル学習率を循環させることができる。
いくつかの研究では、CLRが適応手法が鋭い最小値に早く落ち着くのを防ぐことで、その性能を向上させることができると示唆されている。循環変動は一種のアニーリングとして機能し、モデルが不適切な解を避けるのに役立つ。
現代のAIへの応用
循環学習率は、ニューラルネットワークの訓練、特に大規模言語モデルのアーキテクチャで広く採用されている。例えば、OpenAIやGoogle DeepMindなどの組織の実務担当者は、大規模なデータセットでモデルを訓練するために、循環的または同様のウォームアップ・減衰スケジュールを使用している。この手法はコンピュータビジョンや自然言語処理タスクでも一般的であり、ベンチマークデータセットでの精度向上が示されている。
この手法は、転移学習やファインチューニングのシナリオで特に価値があり、事前訓練済みモデルが新しいタスクに適応する際に役立つ。循環スケジュールは、モデルが破滅的忘却を起こさずに適応するのに役立ち、周期的な高学習率が新しい特徴空間の探索を可能にし、低学習率が以前に学習した表現を維持する。
実践的な考慮事項
CLRを実装するには、サイクル長と境界の指定が必要である。サイクル長は、1エポックあたりの反復回数の倍数(2〜10エポックなど)に設定されることが多い。サイクルが短いとより頻繁な探索が可能になり、長いとより安定した訓練が可能になる。
一般的な落とし穴は、上限を高く設定しすぎることである。これにより損失が発散する可能性がある。学習率レンジテストは、この問題を回避するのに役立つ。さらに、CLRはすべての問題に有益であるとは限らず、単純な問題では一定または減衰学習率で十分な場合がある。
分散訓練環境では、Amazon Web Servicesなどのクラウドプラットフォーム上で、CLRは最小限のオーバーヘッドで実装できる。PyTorchやTensorFlowを含む多くの深層学習フレームワークは、循環スケジュールの組み込みサポートを提供している。
関連項目
参考文献
- Smith, Leslie N. (2017). "Cyclical Learning Rates for Training Neural Networks." IEEE Winter Conference on Applications of Computer Vision.
- Smith, Leslie N. (2015). "Cyclical Learning Rates for Training Neural Networks." arXiv:1506.01186.
- Géron, Aurélien (2019). "Gradient Descent". Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. O'Reilly. pp. 113–124. ISBN 978-1-4920-3264-9.