ファインチューニングがいかにUltralytics YOLO26のような事前学習済みモデルを特殊なタスクに適応させるかを探ります。転移学習を活用して、より速く、より正確なAIを実現する方法を学びましょう。
ファインチューニングは、機械学習 (ML)における基本的なプロセスであり、事前学習済みモデルを特定のタスクやデータセットに適応させることを含みます。膨大なデータ、時間、計算能力を必要とするゼロからのトレーニングではなく、開発者はImageNetのような広大なデータセットから一般的な特徴をすでに学習している「基盤モデル」から始めます。このアプローチは転移学習の実用的な実装であり、AIシステムが大幅に少ないリソースでニッチな問題に対して高いパフォーマンスを達成することを可能にします。
ファインチューニングの核となる考え方は、モデルがすでに獲得した「知識」を活用することです。ベースモデルは通常、エッジ、テクスチャ、形状といった基本的な視覚要素について堅牢な理解を持っています。ファインチューニングのプロセス中に、モデルのパラメータ(重み)は、新しい専門的なデータのニュアンスに対応するためにわずかに調整されます。
この調整は通常、より低い学習率を用いた勾配降下法によって行われます。控えめな学習率は、初期の事前トレーニング中に学習された貴重な特徴が破壊されるのではなく、洗練されることを保証します。多くのコンピュータービジョン(CV)ワークフローでは、エンジニアは、普遍的な特徴をdetectするバックボーンの初期層をフリーズし、最終的なクラス予測を行う責任のあるより深い層と検出ヘッドのみを更新する場合があります。
ファインチューニングは、汎用的なAI機能と特定の業界要件との間のギャップを埋めます。これにより、汎用モデルが専門的なエキスパートになることが可能になります。
ファインチューニングを全体学習と区別することは、それぞれのアプローチをいつ使用するかを理解する上で役立ちます。
現代のフレームワークは、このプロセスをアクセスしやすくします。例えば、Ultralytics Platformは、データセット管理とクラウドトレーニングを自動的に処理することで、ワークフローを簡素化します。しかし、開発者はpythonを使用してローカルでモデルをファインチューニングすることもできます。
以下の例は、事前学習済みモデルをファインチューニングする方法を示しています。
YOLO26 カスタムデータセット上のモデル。ロードすることに注目してください
yolo26n.pt 簡略化された設定ファイルではなく、(事前学習済み重みを)使用することで、ライブラリに転移学習の開始を指示します。
from ultralytics import YOLO
# Load a pre-trained YOLO26 model (n=nano size)
# This automatically loads weights trained on COCO
model = YOLO("yolo26n.pt")
# Fine-tune the model on a custom dataset (e.g., 'coco8.yaml')
# The 'epochs' argument determines how many passes over the data occur
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# The model is now fine-tuned and ready for specific inference tasks
最良の結果を達成するためには、新しいデータセットの品質が最も重要です。データ拡張のためのツールを使用すると、画像を回転、反転、または明るさ調整することで、小さなデータセットを人工的に拡張し、過学習を防ぐことができます。さらに、検証損失や平均適合率 (mAP)などのメトリクスを監視することで、モデルが未知のデータにうまく汎化されることを保証します。
複雑なワークフローを管理している方には、MLOps戦略や実験追跡のようなツールを採用することで、異なるファインチューニングされたイテレーション間のバージョン管理を維持するのに役立ちます。オブジェクト検出であろうとインスタンスセグメンテーションであろうと、ファインチューニングは効果的なAIソリューションをデプロイするための業界標準であり続けています。

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