Yolo 深圳
深セン
今すぐ参加
用語集

学習率

学習率がモデルトレーニングに与える影響を学びましょう。Ultralytics ステップサイズを最適化し、物体検出などで最先端性能を達成する方法を発見してください。

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

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

最適な学習率の決定は、機械学習ワークフローにおけるバランス調整とよく表現される。目標は、モデルの予測値と実際の真値との差異を測る損失関数を最小化することである。このプロセスは、確率的勾配降下法(SGD)Adam といった最適化アルゴリズムに大きく依存し、損失関数のランドスケープをナビゲートする。

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

実際のアプリケーション

学習率調整の影響は、コンピュータービジョンタスクが導入されている様々なハイステークス産業において明らかである。

  1. 自動運転システム: 自動運転車の開発において、エンジニアは膨大なデータセットを活用し、歩行者や交通標識を識別するための物体検出モデルを訓練する。YOLO26のような事前学習済みモデルに転移学習を適用する際、開発者は通常、初期学習時よりもはるかに低い学習率を用いる。この「微調整」により、モデルは既に備えている汎用的な特徴抽出能力を損なうことなく、特定の運転環境(例:雪道と砂漠の高速道路)の微妙な差異を学習できる。
  2. 医療診断画像: MRIスキャンにおける腫瘍検出などの医療画像解析では、精度が最も重要である。 ここで学習率が高いと、悪性組織と良性組織を区別する微妙な質感の違いを見逃すリスクが生じる。 実務者は「学習率ウォームアップ」と呼ばれる手法を頻繁に採用する。これは学習率をゼロから目標値まで段階的に増加させ、トレーニング初期段階を安定化させることで、積極的な学習が始まる前にニューラルネットワークの重みが安定した構成に収まることを保証する。これらの戦略の詳細については、Google Learning Crash Courseで読むことができる。

関連用語の区別

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

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

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

現代的なフレームワークを使用する場合、初期学習率を簡単に調整できます(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)

上級ユーザー向けには、 fast.aiで普及したLRファインダーなどの手法により、 損失が収束しなくなるまで学習率を指数関数的に増加させる短い試験エポックを実行することで、 最適な初期値の発見を実質的に自動化できます。 このハイパーパラメータを習得することが、 AIプロジェクトでSOTA(最先端)性能を実現する鍵となることが多々あります。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加