損失関数
機械学習における損失関数の役割、その種類、重要性、そしてYOLOや物体検出のような現実世界のAI応用事例をご覧ください。
損失関数は、コスト関数または目的関数とも呼ばれ、機械学習(ML)および深層学習(DL)における基本的な構成要素です。これは、モデルの予測出力と、与えられたデータに対する実際の正解ラベルとの間の差、つまり「損失」を定量化します。損失関数によって計算された値は、モデルのパフォーマンスの悪さの指標として機能します。モデルトレーニングプロセス中の主な目標は、この値を最小限に抑え、それによってモデルの精度とパフォーマンスを向上させることです。
損失関数の仕組み
トレーニングの各イテレーション中、モデルはトレーニングデータのバッチを処理し、予測を行います。次に、損失関数はこれらの予測を真のラベルと比較します。損失値が高いほど、不一致が大きく、修正の必要性が高いことを示し、損失値が低いほど、モデルの予測が実際の値に近いことを示します。
この損失値は、モデルが学習するために必要なシグナルを提供するという点で非常に重要です。このシグナルは、確率的勾配降下法(SGD)などの最適化アルゴリズムによって、モデルの内部パラメータ、つまりモデルの重みを調整するために使用されます。バックプロパゲーションのプロセスでは、これらの重みに関する損失関数の勾配を計算し、損失を減らすために重みを調整すべき方向を示します。この損失の計算と重みの更新を繰り返すことで、モデルは徐々に収束し、非常に正確な予測を行うことができるようになります。
一般的な損失関数
損失関数の選択は、モデルが解決するように設計された特定のタスクに大きく依存します。異なる問題には、異なるエラーの測定方法が必要です。一般的な種類には、以下のようなものがあります。
- 平均二乗誤差(MSE): 連続的な数値を予測することを目的とする回帰タスクでよく使用される損失関数。予測値と実際の値の差の二乗の平均を計算します。
- クロスエントロピー損失: 画像分類タスクで広く使用されています。出力が0から1の間の確率値である分類モデルの性能を測定します。ImageNetデータセット内の画像を分類するなど、複数のクラスを区別するようにモデルをトレーニングする場合に効果的です。
- Intersection over Union(IoU)損失:IoUのバリアントは、物体検出タスクに不可欠です。GIoU、DIoU、CIoUなどのこれらの損失関数は、予測されたバウンディングボックスとグランドトゥルースボックスの間の不一致を測定します。これらは、Ultralytics YOLO11のような正確な物体検出器をトレーニングする上で不可欠です。
- Dice Loss: 特に医用画像解析において、画像セグメンテーションで一般的に使用され、予測されたセグメンテーションマスクと実際のセグメンテーションマスクの間のオーバーラップを測定します。クラスの不均衡を処理する場合に特に役立ちます。
実際のアプリケーション
損失関数は、事実上すべての深層学習モデルのトレーニングの中核にあります。
- 自動運転車: 自動運転車の開発では、歩行者、他の車、交通標識を識別するために、物体検出モデルがトレーニングされます。トレーニング中、損失関数は複数のコンポーネントを組み合わせます。1つの部分は、各オブジェクトの分類(例えば、車と歩行者)におけるエラーを計算し、別の部分(多くの場合、IoUベースの損失)は、オブジェクトのバウンディングボックスのローカライズにおけるエラーを計算します。この組み合わせられた損失を最小限に抑えることは、安全なナビゲーションのための堅牢なモデルを作成するのに役立ち、自動車ソリューションにおけるAIの重要なコンポーネントとなります。
- 医療診断: ヘルスケアにおける AI では、U-Net などのモデルは、医療スキャンで腫瘍を識別するためのセマンティックセグメンテーション用にトレーニングされています。Dice Loss などの損失関数、または Cross-Entropy と Dice Loss の組み合わせを使用して、モデルが予測した腫瘍マスクと放射線科医が注釈を付けたマスクを比較します。医療画像のデータセット でこの損失を最小限に抑えることにより、モデルは病理学的領域を正確に描写することを学習し、より迅速かつ正確な診断を支援します。
他の主要な概念との関係
損失関数をMLにおける他の関連概念と区別することが重要です。
- 損失関数と評価指標: これは重要な区別です。損失関数は、最適化プロセスをガイドするためにトレーニング中に使用されます。勾配ベースの学習を可能にするために、微分可能でなければなりません。対照的に、精度、適合率、再現率、および平均適合率(mAP)などの評価指標は、モデルの実際のパフォーマンスを評価するために(検証データまたはテストデータで)トレーニング後に使用されます。一般に、損失が低いほど指標スコアが向上しますが、それらは異なる目的を果たします。パフォーマンス指標の詳細については、ガイドをご覧ください。
- 損失関数と最適化アルゴリズム: 損失関数は目的、つまり最小化する必要があるものを定義します。最適化アルゴリズム(Adamオプティマイザーなど)は、計算された勾配と学習率に基づいてモデルの重みを更新することにより、損失を最小化する方法を定義します。
- 過学習と学習不足: トレーニングセットと検証セットの両方での損失を監視することは、これらの一般的な問題を診断する上で重要です。トレーニング損失が減少し続ける一方で、検証損失が増加し始めた場合は、過学習が発生している可能性があります。両方のセットで高い損失値が示されている場合は、学習不足を示しています。これらの洞察については、モデルトレーニングのヒントなどのガイドで説明されています。
損失関数を理解することは、AIモデルの構築とトレーニングに関わるすべての人にとって不可欠です。Ultralytics HUBのようなプラットフォームは、この複雑さの多くを抽象化し、損失関数の実装と最適化を自動的に処理するため、高度なコンピュータビジョン (CV)モデルの構築がより容易になります。