Yolo 深圳
深セン
今すぐ参加
用語集

損失関数

機械学習における損失関数の役割、その種類、重要性、そしてYOLO 物体検出のような実際のAIアプリケーションをご覧ください。

損失関数は、人工ニューラルネットワークやその他の機械学習アルゴリズムの訓練を導く数学的な羅針盤として機能します。基本的に、これはモデルの予測出力と、訓練データに含まれる実際の「真値」ラベルとの誤差を定量化します。 これをスコアリングシステムと捉えると、スコアが低いほど性能が優れていることを示す。学習プロセスにおける主な目的は、この損失値を反復的に最小化することである。この最小化により、モデルは内部パラメータを調整して予測を現実に近づけることができ、Adam や確率的勾配降下法(SGD)などの最適化アルゴリズムによって駆動される。

モデル学習における損失の役割

AIにおける学習の仕組みは、損失関数によって生成されるフィードバックループに大きく依存している。モデルがデータのバッチを処理した後、損失関数は予測値と目標値の間の距離を表す数値的な誤差値を計算する。バックプロパゲーションと呼ばれる技術を通じて、システムは各モデル重みに対する損失の勾配を計算する。これらの勾配は、誤差を減少させるために必要な調整の方向と大きさを示す地図として機能する。学習率は、これらの更新中に取るステップの大きさを制御し、モデルが最適解に収束し、オーバーシュートしないことを保証する。

異なる機械学習タスクには特定の損失関数が必要となる。住宅価格のような連続値を予測する回帰分析では、平均二乗誤差(MSE)が標準的な選択肢である。一方、カテゴリカルデータを含む画像分類タスクでは、予測確率と真のクラス間の乖離を測定するために交差エントロピー損失が一般的に用いられる。高度な物体検出モデル(例:YOLO26)では、複数の目的関数を同時に最適化する複合損失関数が採用される。これには、位置特定のための交差率(IoU)や、クラス信頼度評価のための分布焦点損失(DFL)や可変焦点損失(Varifocal Loss)といった特化式が組み合わされる。

実際のアプリケーション

損失関数は、事実上あらゆるAIアプリケーションの信頼性を支えるエンジンであり、システムが複雑な環境下で安全に動作することを保証する。

Python : クロスエントロピー損失の計算

Ultralytics 高レベルフレームワークは学習中に損失計算を自動的に処理しますが、デバッグには基礎となる数学を理解することが有用です。以下の例では、Ultralytics バックエンドPyTorchを使用して、予測値とターゲット値の間の損失を計算します。

import torch
import torch.nn as nn

# Define the loss function (CrossEntropyLoss includes Softmax)
loss_fn = nn.CrossEntropyLoss()

# Mock model output (logits) for 3 classes and the true class (Class 0)
# A high score for index 0 indicates a correct prediction
predictions = torch.tensor([[2.5, 0.1, -1.2]])
ground_truth = torch.tensor([0])

# Calculate the numerical loss value
loss = loss_fn(predictions, ground_truth)
print(f"Calculated Loss: {loss.item():.4f}")

関連概念の区別

機械学習パイプライン全体で使用される他の指標と損失関数を区別することが重要です。

  • 損失関数と評価指標:損失関数は微分可能であり、学習中に重みを更新するために使用される。一方、 精度精密度平均精度(mAP) などの評価指標は学習後に人間の理解しやすい形で性能を評価するために使用される。 損失関数が現実世界の目的と完全に相関しない場合、モデルは損失を効果的に最小化しても、依然として精度が低いという問題を抱える可能性がある。
  • 損失関数と正則化:損失関数がモデルを正しい予測へと導く一方で、過学習 を防ぐために正則化手法(L1やL2ペナルティなど)が損失式に追加される。正則化は大きな重みにペナルティを課すことで過度に複雑なモデルを抑制し、未見のテストデータへの汎化性能向上に寄与する。
  • 損失関数と報酬関数: 強化学習では、エージェントは損失を最小化するのではなく、累積的な「報酬」を最大化することで学習する。 概念的には逆の関係にあるが、どちらも最適化プロセスを駆動する目的関数として機能する。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加