YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

学習率

学習率がモデルトレーニングにどのように影響するかを学びましょう。物体detectなどでSOTA性能を達成するために、Ultralytics YOLO26のステップサイズを最適化する方法を発見してください。

学習率は、最適化プロセス中にモデルが取るステップサイズを決定する重要なハイパーパラメータチューニング設定です。ニューラルネットワークのトレーニングの文脈では、モデルがデータのバッチを処理するたびに、推定された誤差に応じてモデルの内部重みがどれだけ更新されるかを制御します。これを、谷(誤差の最低点)に向かって山を下る人が歩く様子に例えると、学習率はその歩幅を決定します。歩幅が大きすぎると、谷を完全に飛び越えてしまい、底を見逃す可能性があります。歩幅が小さすぎると、目的地に到達するまでに非現実的に長い時間がかかる可能性があります。

最適化における「ゴルディロックス」のジレンマ

最適な学習率を見つけることは、機械学習ワークフローにおけるバランスの取れた行為としてしばしば説明されます。目標は、モデルの予測と実際のグラウンドトゥルースとの差を測定する損失関数を最小化することです。このプロセスは、損失のランドスケープをナビゲートするために、最適化アルゴリズム、例えばstochastic gradient descent (SGD)Adam optimizerに大きく依存します。

  • 学習率が高すぎる場合: 値が高すぎると、モデルの重み更新が急激になります。これは「オーバーシュート」現象を引き起こす可能性があり、モデルが解に収束せず、代わりに激しく振動したり発散したりします。この不安定性は、時に勾配爆発問題を引き起こし、トレーニングプロセスを無効にしてしまいます。
  • 学習率が低すぎる場合: 逆に、極めて小さなステップサイズは、モデルが慎重に最小値に向かって進むことを保証しますが、トレーニングプロセスが非常に遅くなるため、過小適合を引き起こす可能性があります。モデルは事実上局所最適解に陥ったり、単純なパターンを学習するのに数千もの追加のエポックを要したりする可能性があり、計算リソースを無駄にします。研究者は、異なるアルゴリズムがこれらの値とどのように相互作用するかを理解するために、しばしばPyTorchの最適化に関するドキュメントを参照します。

実際のアプリケーション

学習率の調整がもたらす影響は、コンピュータービジョンタスクが展開されている様々な重要な業界で明らかです。

  1. 自動運転システム: 自律走行車の開発において、エンジニアは歩行者や交通標識を識別するためのobject detectionモデルをトレーニングするために、膨大なデータセットを利用します。YOLO26のような事前学習済みモデルに転移学習を適用する場合、開発者は通常、初期トレーニング時よりもはるかに小さい学習率を使用します。この「ファインチューニング」により、モデルは特定の運転環境(例:雪道と砂漠の高速道路)のニュアンスを、すでに持っている一般的な特徴抽出能力を消去することなく学習できます。
  2. 医用画像診断: 医用画像解析において、MRIスキャンで腫瘍をdetectするような場合、精度は最重要です。ここで学習率が高いと、モデルが悪性組織と良性組織を区別する微妙なテクスチャの違いを見落とすリスクが生じます。実務者は、「学習率ウォームアップ」と呼ばれる手法をよく用います。これは、学習率をゼロから目標値まで徐々に増加させることで、訓練の初期段階を安定させ、積極的な学習が始まる前にニューラルネットワークの重みが安定した構成に落ち着くようにします。これらの戦略については、Google Machine Learning Crash Courseで詳しく読むことができます。

関連用語の区別

学習率と他のトレーニングパラメータを区別することが重要です。これらは同じ設定ファイルで構成されることが多いですが、それぞれ異なる目的を果たします。

  • 学習率 vs. バッチサイズ: 学習率が更新の大きさを制御する一方で、バッチサイズは、更新が行われる前に処理されるトレーニングサンプルの数を決定します。この2つには強い関係性があり、多くの場合、バッチサイズを増やす際には、トレーニング効率を維持するために学習率もスケールアップする必要があります。これは大規模バッチトレーニングに関する論文で探求されている概念です。
  • 学習率 vs. 減衰: 減衰とは、学習率を時間とともに系統的に減少させる戦略を指します。スケジューラは、30エポックごとに学習率を10分の1に減少させることがあります。これにより、モデルは初期段階で大きな概念的飛躍を遂げ、トレーニングの終盤に向けて小さなステップで精度を洗練させることができます。これはUltralytics Pythonパッケージの標準機能です。

Ultralytics YOLOにおける学習率の設定

最新のフレームワークを使用すると、初期学習率(lr0) と最終学習率の割合 (lrf)。以下に、これを使用する設定例を示します。 Ultralyticsプラットフォーム カスタムトレーニング実行用の互換性のあるクライアント。

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)

上級ユーザー向けには、LR Finder(fast.aiによって普及)のような手法は、損失が発散するまでレートが指数関数的に増加する短い試行エポックを実行することで、最適な開始値の発見を本質的に自動化できます。このハイパーパラメータを習得することが、AIプロジェクトでSOTA (State-of-the-Art)のパフォーマンスを引き出す鍵となることがよくあります。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。