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

Training Data

学習データとは、モデルが重みを学習するために使うサンプルの集合です。検証データやテストデータとの違いと、ラベルの品質がデータ量に匹敵する重要性を持つ理由について解説します。

学習データとは、機械学習モデルが学習するための例の集合です。学習中、オプティマイザーがモデルの重みを繰り返し調整し、これらの例に対する誤差を減らします。そのため、モデルが学べる内容はこれらの例によって決まります。教師あり学習では、各例が入力と正解を組み合わせます。たとえば、道路の写真に写る各車や歩行者について、バウンディングボックスとクラス名を付けます。自己教師あり学習や教師なし学習では、ラベルのない生の入力を使って学習します。「訓練セット」も同義語です。多くのプロジェクトでは、利用可能なデータの最大の分割であり、全体の70~80%を占めることがよくあります。

モデルが学習データを使う仕組み#

モデルは学習データをバッチ単位で処理します。各バッチについて予測を行い、損失関数が予測とラベルの差を測定し、バックプロパゲーションが各重みの誤差への寄与を計算します。オプティマイザーは誤差が小さくなるよう重みを調整します。学習セットを一巡する処理をエポックと呼び、通常は数十から数百エポックにわたって学習します。

モデルはこれらの例を使って最適化されるため、その例に対するスコアは新しいデータでの性能を過大評価します。これを補正するために、学習に使わないデータを2つに分割します。検証データは開発中に評価し、ハイパーパラメーターやチェックポイントの選択に使います。テストデータは最後に1度だけ評価し、実世界での性能を推定します。学習スコアと検証スコアに大きな差がある場合は、モデルが汎化するパターンを学ばず、学習例を記憶する過学習の兆候です。両方のスコアが低い場合は未学習を示します。分割間で画像を共有してはいけません。同じ動画のほぼ重複するフレームや、同じ患者のスキャンが分割の両方に含まれると、データ漏洩が発生し、すべての評価スコアが水増しされます。

量、品質、網羅性#

学習セットの次の3つの特性が、モデルの汎化性能を左右します。

  • 量: 例の数が多いほど役立ちますが、効果は次第に小さくなります。転移学習で事前学習済みモデルを使うと、新しいタスクに必要なラベル付きの例を減らせます。
  • 品質: 誤り、欠落、一貫性のないラベルは、いずれもモデルに誤った情報を教えます。一貫したデータラベリングのガイドラインは、ラベルの数と同じくらい重要です。
  • 網羅性:サンプルは、照明、天候、カメラアングル、背景、希少クラスなど、モデルが直面する条件を網羅する必要があります。昼間の画像だけでトレーニングした検出器は夜間に性能が落ちます。また、顔データセットに特定の肌の色がないなど、欠落が人口統計上の属性に沿う場合は、データセットバイアスにつながります。

以下のscikit-learnスクリプトは、同梱の手書き数字データセットを異なる学習セットで使って同じ分類器を学習し、固定した1つのテスト分割で各モデルを評価します。

import numpy as np
from sklearn.datasets import load_digits
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

# 1,797 labeled 8x8 digit images; hold out 30% to score every model
X, y = load_digits(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0, stratify=y)

# Reassign 30% of the training labels at random to simulate careless labeling
rng = np.random.default_rng(0)
y_noisy = y_train.copy()
flip = rng.random(len(y_train)) < 0.3
y_noisy[flip] = rng.integers(0, 10, flip.sum())

# Train the same model on three different training sets
for name, n, labels in [("50 clean", 50, y_train), ("1,257 clean", 1257, y_train), ("1,257 noisy", 1257, y_noisy)]:
    model = LogisticRegression(max_iter=5000).fit(X_train[:n], labels[:n])
    print(f"{name}: test accuracy {model.score(X_test, y_test):.3f}")

クリーンな学習セットを50枚から1,257枚に増やすと、テスト精度は0.863から0.961に上がります。1,257個のラベルのうち315個(25%)が誤りになったノイズの多い実行では、スコアは0.861となり、クリーンな画像50枚で学習したモデルを上回りません。

学習セットの構築#

チームは公開データセット、自社のカメラやログ、そして利用が増えている合成データから学習データを集めます。公開ベンチマークは有用な出発点です。COCOデータセットには、物体検出、セグメンテーション、キャプション付けのラベルが付いた学習画像が118,287枚含まれています。次に、生データをデータクリーニングし、重複、破損ファイル、対象外の画像を取り除き、ラベリングとレビューを行います。データ拡張では、反転、クロップ、色調変更、モザイクなどを使って学習時の多様性を増やします。ただし、収集したデータを組み合わせ直すことしかできないため、欠けている条件の画像は撮影する必要があります。

Ultralytics YOLOは、データセットYAMLファイルの train パスから学習データを読み込み、各画像を .txt ラベルファイルと対応付けます。このファイルには物体ごとに1行があり、クラスインデックスに続けて、画像サイズで正規化されたボックスの中心、幅、高さが記録されています。すべての分割に同じYOLOデータセット形式を使うため、分割の再調整では画像とラベルファイルを一緒にフォルダー間で移動します。

from ultralytics import YOLO

# 事前学習済みYOLO26 nanoモデルを読み込みます
model = YOLO("yolo26n.pt")

# coco8.yamlには、学習画像 (train: images/train) と検証画像 (val: images/val) が記載されています
results = model.train(data="coco8.yaml", epochs=5)

YOLO26モデルは、COCO8の学習画像4枚でファインチューニングを行います。COCO8は、学習パイプラインが最初から最後まで正常に動作するかを確認するための小規模なサンプルです。

  • 検証データ: 学習をいつ止めるかなど、開発中の判断に使う、学習に使わないデータの分割です。モデルは検証データを使って重みを更新しません。
  • テストデータ: 学習に使わないデータの分割で、最後に1度だけ評価します。その結果は、新しいデータに対する性能の偏りのない推定値になります。
  • 正解データ: 例に付けられた正しい答えです。教師あり学習の学習データには正解データが含まれますが、スコアを計算するにはすべての分割に正解データが必要です。
  • ゴールデンデータセット: 評価やアノテーターの品質チェックで信頼できる参照データとして使用する、専門家が確認した小規模なデータセットです。
  • ベンチマークデータセット: モデルを比較するために、固定された分割で公開されているデータセットです。トレーニング用の分割は事前学習データとしても使われることが多く、ホールドアウトされた分割はスコアボードとなります。たとえば、多くの物体検出論文がmAPを報告する際に使用する、COCO val2017の5,000枚の画像の分割がこれにあたります。

ソリューションを見る

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

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

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の未来を一緒に築きましょう!

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