Learning Rate
学習率(learning rate)がモデルのトレーニングにどのように影響するかを学びます。Ultralytics YOLO26 でステップサイズを最適化し、物体検出などで最高性能(SOTA)を達成する方法を発見してください。
学習率は、モデルが最適化プロセス中に取るステップサイズを決定する、極めて重要なハイパーパラメータチューニング設定です。ニューラルネットワークのトレーニングという文脈において、学習率は、モデルがデータバッチを処理するたびに推定誤差に応じて内部の重みがどれだけ更新されるかを制御します。山を歩いて谷(誤差が最も小さい地点)を目指す人に例えると、学習率はその人の歩幅を決定するものです。歩幅が大きすぎると、谷を飛び越えて底を見失ってしまう可能性があります。逆に歩幅が小さすぎると、目的地にたどり着くまでに非現実的なほど時間がかかってしまいます。
Link to this section最適化における「ゴルディロックス」のジレンマ#
Finding the optimal learning rate is often described as a balancing act within machine learning workflows. The goal is to minimize the loss function, which measures the difference between the model's predictions and the actual ground truth. This process relies heavily on an optimization algorithm such as stochastic gradient descent (SGD) or the Adam optimizer to navigate the loss landscape.
- 学習率が高すぎる場合: 値が高すぎると、モデルの重み更新が極端なものになります。これは「オーバーシュート(行き過ぎ)」現象を引き起こし、モデルが解に収束せず、激しく振動したり発散したりする原因となります。この不安定さは、時に勾配爆発問題を引き起こし、トレーニングプロセスを台無しにしてしまう可能性があります。
- 学習率が低すぎる場合: 逆に、ステップサイズが極端に小さいと、モデルは慎重に最小値へと向かいますが、トレーニングプロセスが非常に遅くなるため、アンダーフィッティングが生じる可能性があります。モデルは局所的な最小値で動けなくなったり、単純なパターンを学習するために何千回もの余分なエポックを費やしたりして、計算リソースを浪費してしまうかもしれません。研究者は、さまざまなアルゴリズムがこれらの値とどのように相互作用するかを理解するために、PyTorchの最適化に関するドキュメントをよく参照します。
Link to this section実社会での応用#
The impact of learning rate adjustments is evident across various high-stakes industries where computer vision tasks are deployed.
-
Autonomous Driving Systems: In the development of autonomous vehicles, engineers utilize vast datasets to train models for object detection to identify pedestrians and traffic signs. When applying transfer learning to a pre-trained model like YOLO26, developers typically use a much smaller learning rate than they would during initial training. This "fine-tuning" ensures that the model learns the nuances of specific driving environments (e.g., snowy roads vs. desert highways) without erasing the general feature extraction capabilities it already possesses.
-
医療診断用画像: MRIスキャンでの腫瘍検出のような医療画像解析において、精度は最優先事項です。ここでの学習率が高いと、悪性組織と良性組織を区別する微妙なテクスチャの違いをモデルが見逃すリスクが生じます。実務者は「学習率ウォームアップ」と呼ばれる手法を採用することが多く、ゼロからターゲット値まで徐々にレートを上げてトレーニングの初期段階を安定させ、積極的な学習が始まる前にニューラルネットワークの重みが安定した構成に収まるようにします。これらの戦略については、Google機械学習クラッシュコースで詳しく読むことができます。
Link to this section関連用語の区別#
学習率は、同じ設定ファイル内で構成されることが多いものの目的が異なるため、他のトレーニングパラメータと区別することが重要です。
- 学習率 vs. バッチサイズ: 学習率は更新の大きさを制御しますが、バッチサイズは更新が発生する前に処理されるトレーニングサンプルの数を決定します。両者には強い関係性があります。バッチサイズを増やす場合、トレーニング効率を維持するために学習率もスケールアップしなければならないことが多く、これは大規模バッチトレーニングに関する論文で探究されている概念です。
- 学習率 vs. 減衰(ディケイ): 減衰とは、時間の経過とともに学習率を体系的に下げる戦略を指します。スケジューラによって、30エポックごとに学習率を10分の1に下げることもあります。これは、モデルが初期段階で概念的な大きな飛躍を行い、トレーニングの終盤に向けてより小さなステップで精度を向上させるのに役立ちます。これはUltralytics Pythonパッケージの標準機能です。
Link to this sectionUltralytics YOLOにおける学習率の設定#
最新のフレームワークを使用する場合、初期学習率 (lr0) と最終学習率の割合 (lrf) を簡単に調整できます。以下は、カスタムトレーニング実行のために Ultralytics Platform 互換クライアントを使用してこれを構成する例です。
from ultralytics import YOLO
# Load the YOLO26 model (latest state-of-the-art architecture)
model = YOLO("yolo26n.pt")
# Train the model with a custom initial learning rate
# lr0=0.01 sets the initial rate
# lrf=0.01 sets the final learning rate to (lr0 * lrf)
results = model.train(data="coco8.yaml", epochs=10, lr0=0.01, lrf=0.01)上級者向けには、fast.aiによって広まった LR Finder のような手法を使用することで、損失が発散するまでレートを指数関数的に増加させる短い試行エポックを実行し、最適な開始値を事実上自動的に見つけることができます。このハイパーパラメータを習得することは、AIプロジェクトで SOTA (State-of-the-Art) パフォーマンスを引き出すための鍵となることがよくあります。






