YOLO26 トレーニングレシピ
はじめに
このガイドでは、正確な手順を記載しています トレーニング 公式版を作成するために使用されたレシピ YOLO26 事前学習済みのチェックポイント COCO。すべての ハイパーパラメータ ここに表示されているものは、すでにリリース版に組み込まれています .pt 重み付けされており、プログラムから確認することができます。
ベースモデルがどのように学習されたかを理解することで、微調整を行う際に、どのデータ拡張手法を採用すべきか、どの損失関数の重みを調整すべきか、またデータセットの規模に最適な最適化アルゴリズムの設定は何かといった判断をより的確に行うことができます。
このガイドはどのような方に向けたものですか?
このガイドは、YOLO26の公式チェックポイントにどのような要素が組み込まれているかを理解したい実務者向けです。アーキテクチャだけでなく、その性能を形作った学習率のスケジュール、データ拡張パイプライン、損失関数の重みについても解説します。この情報を活用して、ご自身のデータで微調整を行う際に、適切な判断を下す参考にしてください。
トレーニング引数の確認
すべてのUltralyticsチェックポイントは、それを生成するために使用された完全なトレーニング設定を保存します。これらの設定はいつでも確認できます。
チェックポイントのトレーニング引数を検査する
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])
import torch
# Load any official checkpoint
ckpt = torch.load("yolo26n.pt", map_location="cpu", weights_only=False)
# Print all training arguments
for k, v in sorted(ckpt["train_args"].items()):
print(f"{k}: {v}")
これはどのような場合でも有効です .pt チェックポイント — 公式リリースおよびご自身のファインチューニング済みモデルの両方。設定可能なトレーニング引数の完全なリストについては、 トレーニング構成のリファレンス.
研修の概要
すべてのYOLO26ベースモデルは、640x640の解像度でCOCOデータセットを使用し、MuSGDオプティマイザとバッチサイズ 128で学習されました。モデルは中間的な事前学習済み重みから初期化され、進化的探索によって見つけられたハイパーパラメータで改良されました。すべてのモデルサイズにおける完全な学習ログとメトリクスは、Ultralytics Platformで利用可能です:
全サイズに共通する主なデザイン上の特徴:
- エンドツーエンド学習 (
end2end=True) NMSフリーの1対1ヘッドを備えた - MuSGDオプティマイザ SGDとMuonスタイルの畳み込み重みに対する直交更新を組み合わせたもの
- 大規模なモザイク増強 (約0.9~1.0の確率で)最後の10エポックで無効化されます(
close_mosaic=10) - アグレッシブなスケール拡張 (0.56-0.95) により、さまざまなサイズのオブジェクトに対応します。
- ほとんどのサイズで最小限の回転/せん断、幾何学的歪みを低く抑える
モデルサイズごとのハイパーパラメータ
オプティマイザーと学習率
| 設定 | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | ムスグド | ムスグド | ムスグド | ムスグド | ムスグド |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
学習率の戦略
Nモデルでは、初期学習率を高く設定し、急激な減衰を採用した(lrf=0.0495)、一方S/M/L/Xモデルは、より緩やかなスケジュールでかなり低い初期LRを使用しました (lrf=0.882)。これは、小規模モデルと大規模モデルの異なる収束ダイナミクスを反映しています。小規模モデルは、効果的に学習するためにより積極的な更新が必要です。
損失重量
| 設定 | N | S | M | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
NモデルはDFL損失を優先する一方、S/M/L/Xモデルはバウンディングボックス回帰に重点を置いています。分類損失は、すべてのサイズにおいて比較的安定しています。
データ拡張パイプライン
各テクニックの詳細な説明については、YOLOデータ拡張ガイドを参照してください。
| 設定 | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
大規模なモデルほど、全体としてより積極的なデータ拡張(高いミックスアップ率、コピー&ペースト、スケーリング)が用いられます。これは、これらのモデルにはより大きな処理能力があり、より強力な正則化の恩恵を受けるためです。Nサイズのモデルのみが、有意義な回転、せん断、およびBGR拡張を行っています。
内部トレーニングパラメータ
詳細設定: 内部パイプラインパラメータ
チェックポイントには、内部のトレーニングパイプラインで使用されたものの、現在は ではない でユーザー設定可能な設定として公開されています default.yaml:
| 設定 | 説明 | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | MuSGDにおけるミューオンの更新重み | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | MuSGDにおけるSGD 重み | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | 内部分類重み | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | 1対多のヘッドロス重み | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | トップkラベルの割り当て | 8 | 5 | 5 | 5 | 5 |
これらは再現性を確保するために記録されていますが、微調整を行う際に設定する必要はありません。詳細についてはFAQをご覧ください。
ファインチューニングのガイダンス
独自のデータセットでYOLO26の微調整を行う場合、事前学習の手順をすべて再現する必要はありません。事前学習済みの重みには、COCO データ拡張や最適化のノウハウがすでに組み込まれています。トレーニングに関するより一般的なベストプラクティスについては、「モデルトレーニングのヒント」を参照してください。
まずはシンプルに
デフォルトでファインチューニングする
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
yolo train model=yolo26n.pt data=your-dataset.yaml epochs=100 imgsz=640
デフォルトでのファインチューニングは強力なベースラインです。ハイパーパラメータは、特定の理由がある場合にのみ調整してください。
いつ調整すべきか
Small datasets (< 1,000 images):
- 増強強度を下げる:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - 学習率の低下:
lr0=0.001 - 量を減らす エポックス 根気よく:
epochs=50,patience=20 - バックボーン層の凍結を検討します:
freeze=10
大規模なデータセット(50,000枚以上の画像):
- 事前学習のレシピにより忠実に合わせる
- 検討
optimizer=MuSGD長時間の実行向け - 増強の強化:
mosaic=1.0,mixup=0.3,scale=0.9
ドメイン固有の画像(航空、医療、水中):
- 増加
flipud=0.5縦向きの場合 - 増加
degreesオブジェクトが任意の回転角度で表示される場合 - 調整
hsv_sおよびhsv_v照明条件がCOCOと大きく異なる場合
自動ハイパーパラメータ最適化については、ハイパーパラメータチューニングガイドを参照してください。
モデルサイズの選択
| モデル | 最適な用途 | バッチサイズに関するガイダンス |
|---|---|---|
| YOLO26n | エッジデバイス、モバイル、CPU上でのリアルタイム処理 | 一般向けGPUでの大規模バッチ処理(64~128) |
| YOLO26s | 速度と精度のバランス | 中規模のバッチ(32~64) |
| YOLO26m | 適度な計算リソースでより高い精度を実現 | 小ロット(16~32個) |
| YOLO26l | GPU 場合、高い精度がGPU | 小規模なバッチ(8~16)またはGPU |
| YOLO26x | 最高の精度、サーバーへの展開 | 少数のバッチ(4~8)またはGPU |
エクスポートおよびデプロイのオプションについては、エクスポートガイドおよびモデルデプロイオプションを参照してください。
よくある質問
特定のチェックポイントで使用されたハイパーパラメータの詳細を確認するにはどうすればよいですか?
次のコマンドでチェックポイントを読み込みます torch.load() およびアクセスする train_args キー、または model.ckpt["train_args"] Ultralytics を使用して。詳細はこちら トレーニング引数の確認 完全な例については。
なぜモデルサイズごとにエポック数が異なるのですか?
大規模なモデルは処理能力COCO では収束が早くなります。Nモデルでは245エポックを要したのに対し、Xモデルではわずか40エポックで済みました。独自のデータセットで微調整を行う場合、最適なエポック数はモデルサイズではなく、データセットの規模や複雑さによって決まります。アーリーストップを使用してください(patience) 自動的に適切な停止点を見つけるため。
微調整にはMuSGDを使うべきでしょうか?
いつ optimizer=auto (デフォルトの場合)、Ultralyticsは自動的に選択します ムスグド 長時間のトレーニング実行(10,000イテレーション以上)および AdamW 短いものには。明示的に設定できます。 optimizer=MuSGD ご希望であれば。オプティマイザの選択に関する詳細は、 トレーニング資料.
とは muon_w, sgd_w, cls_w, o2m、および topk 検問所の中で?
これらは、ベースチェックポイントを作成したトレーニングパイプラインの内部パラメータです。再現性を確保するために保存されていますが、 ではない ユーザー設定可能な設定 default.yaml. ファインチューニング時にそれらを設定する必要はありません。参照してください。 内部トレーニングパラメータ 詳細について。
ゼロから正確な事前学習を再現できますか?
これらのチェックポイントは、公開コードベースには含まれていない追加機能(設定可能な o2m 重りと cls_w)。このページに記載されているハイパーパラメーターを公開されているUltralyticsパッケージで使用すると、非常に近い結果を得ることができますが、正確な再現には内部ブランチが必要です。