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ベースモデルは、COCO を用いてCOCO 解像度640×640 COCO バッチサイズ128、MuSGDオプティマイザーで学習されました。モデルは事前学習済みの中間重みから初期化され、進化探索によって導出されたハイパーパラメータを用いて微調整されました。各モデルサイズの完全なトレーニングログと評価指標は、Ultralytics 公開されています:
全サイズに共通する主なデザイン上の特徴:
- 包括的なトレーニング (
end2end=True)NMS1対1ヘッド付き - SGD ミューオン型直交化更新を組み合わせた、畳み込み重み用のMuSGDオプティマイザ
- 大規模なモザイク増強 (確率は約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 、このページに記載されているハイパーパラメータを使用すれば、非常に近い結果を得ることができますが、完全に再現するには内部ブランチが必要です。