Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Curriculum Learning

カリキュラム学習では、難易度スコアとペーシング関数に基づき、易しい例からモデルを学習させ、時間とともに難しい例を追加します。

カリキュラム学習は、例を一様にランダム抽出するのではなく、通常は簡単なものから難しいものへと意味のある順序で提示する機械学習のトレーニング戦略です。学校のカリキュラムと同様に、ニューラルネットワークは、曖昧で雑然とした、またはノイズの多い例に取り組む前に、クリーンな例から広範で単純なパターンを学習できます。Bengioらは2009年に、ディープラーニングにおけるこの考え方を提唱しました。簡単な例から始めることで、非凸な損失関数の最適化がより良い極小値に向かうと論じ、形状認識や言語モデリングのタスクで汎化性能が大幅に向上したと報告しました。

カリキュラム学習の仕組み#

HacohenとWeinshallによると、カリキュラムにはスコアリング関数とペーシング関数という2つの要素が必要です。スコアリング関数は、物体サイズ、オクルージョン、文の長さなどの人手によるヒューリスティック、事前トレーニング済みの教師モデルの信頼度、またはトレーニング中のモデルの損失を使い、トレーニングデータを難易度順に並べます。ペーシング関数は、難しい例をトレーニング対象のプールにどれだけの速さで追加するかを決めます。たとえば、最も簡単な20%から始め、データセット全体まで直線的に増やします。以下のスニペットでは、scikit-learnを使い、教師モデルでおもちゃのデータセットをスコアリングし、簡単な例から順に増えるプールで生徒モデルをトレーニングします。

import numpy as np
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression, SGDClassifier

# A toy dataset with 10% flipped labels, so some samples are genuinely hard
X, y = make_classification(n_samples=2000, n_features=20, flip_y=0.1, random_state=0)

# Scoring function: a teacher's confidence in each true label, sorted easiest first
teacher = LogisticRegression(max_iter=1000).fit(X, y)
confidence = teacher.predict_proba(X)[np.arange(len(y)), y]
order = np.argsort(-confidence)

# Pacing function: start with the easiest 20% and add 20% more each epoch
student = SGDClassifier(random_state=0)
for epoch in range(5):
    pool = order[: int((0.2 + 0.2 * epoch) * len(order))]
    student.partial_fit(X[pool], y[pool], classes=[0, 1])
    print(f"Epoch {epoch}: {len(pool)} samples, mean teacher confidence {confidence[pool].mean():.2f}")

プールは400件から2,000件に増え、最後に最も難しい20%のサンプルが加わると、教師モデルの平均信頼度は0.99から0.89に低下します。これは最後のエポックで起こります。

自己ペース学習では、モデルが現在の損失から独自のカリキュラムを構築するため、教師モデルは不要です。これはSovianyらのサーベイで紹介されている主要なカリキュラム学習の系統の1つです。各ラウンドで、モデルがすでに適切に処理できるサンプルをトレーニングプールに加え、すべてのサンプルが含まれるまで損失のしきい値を上げます。

カリキュラム学習が役立つ場合#

カリキュラム学習が役立つ場面は、直感的に考えられるほど多くありません。数千回のトレーニング実行を調べたWu、Dyer、Neyshaburは、標準的な画像ベンチマークでの効果はわずかであり、拡大するプール内のデータをランダムな順序で提示しても、簡単なものから難しいものへ並べた場合と同程度の結果になることを確認しました。一方、トレーニング時間が限られている場合やラベルにノイズがある場合には、性能が向上しました。これらは、実務でカリキュラム学習が最もよく使われる状況です。

実際のアプリケーション#

ロボティクスの強化学習では、エージェントの上達に合わせてタスクの難易度を上げます。OpenAIは、自動的なドメインランダム化を使って、ロボットハンドにルービックキューブを解かせるトレーニングを行いました。方策が現在の範囲で十分に性能を発揮するたびに、シミュレーションの物理特性と外観の範囲を広げました。

コンピュータービジョンでは、物体検出のカリキュラムを、大きく遮蔽されていない物体から始め、後から小さい物体、混雑したシーン、照明の悪いシーンを加えるようにできます。Ultralytics YOLO26のトレーニングでも、時間とともに重点を変えます。エンドツーエンドの損失では、各エポックで密なone-to-manyヘッドから、 nms=Falseが使用するone-to-oneヘッドへ重みを移します。また、close_mosaic=10は最後の10エポックでmosaic、mixup、CutMix、copy-pasteのデータ拡張を無効にし、実際の入力に似た画像でトレーニングを終えます。医用画像解析では、専門のアノテーター間で意見が一致するスキャンから始め、後から曖昧なケースを加えることができます。これは、カリキュラム学習が最も有効なノイズの多いラベルの状況に適しています。

  • 継続学習: 継続学習では、新しいタスクやデータ分布を時間とともに追加しながら、以前のタスクを忘れないようにする必要があります。カリキュラム学習では、単一の固定されたタスクのデータ順序を変更します。
  • アクティブラーニング: アクティブラーニングは、ラベル付けに回す未ラベルの例を選びます。一方、カリキュラム学習は、すでにラベルが付いた例の順序を決めます。
  • 転移学習: 転移学習では、大規模で汎用的なデータセットで事前トレーニングしてから、異なる対象タスクでファインチューニングするため、段階ごとにタスク自体が変わります。
  • ハードネガティブマイニング: ハード例マイニングでは、モデルが最も間違えやすい例に重点を置きます。これは簡単な例から始めるカリキュラムとは逆のアプローチです。Fast R-CNN検出器向けのオンラインハード例マイニング (OHEM)は、各画像で損失が最も大きい領域提案だけを通して誤差逆伝播を行います。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

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

機械学習の未来に向けた歩みを始めましょう