損失関数
機械学習における損失関数の役割、その種類、重要性、そしてYOLO 物体検出のような実際のAIアプリケーションをご覧ください。
損失関数は、しばしばコスト関数や目的関数と呼ばれ、現代の機械学習(ML)の数学的中核として機能する。
現代の機械学習(ML)と
ディープラーニング(DL)システムの数学的核となる。これは
モデルの予測出力と、学習データから得られる実際のグランドトゥルースとの差を定量化する。
を定量化する。基本的に、損失関数
は、任意の時点におけるモデルの「誤差」を表す単一の数値を計算する。
高い値はパフォーマンスが低いことを示し、低い値は予測値が目標に近いことを示します。モデル学習段階での主な目的は
モデルのトレーニング段階における主な目的は、この値を最小化することである。
この値を繰り返し最小化することで、ニューラルネットワークをより高い精度に導きます。
学習のメカニズム
人工知能の学習プロセスは、損失関数が提供するフィードバックループによって駆動される。モデルが
モデルがデータのバッチを処理すると、予測値が生成される。
損失関数を用いて。この計算された誤差は単なるスコアではなく、改善のためのシグナルとなる。
一旦損失が計算されると、バックプロパゲーションと呼ばれるプロセスで
バックプロパゲーションと呼ばれる処理で、モデルのパラメータに対する損失
を決定する。最適化アルゴリズム
最適化アルゴリズム
確率的勾配降下法(SGD)
やAdam オプティマイザなどの最適化アルゴリズムが、この勾配情報
情報を使用して、内部モデルの重みを調整します。
これらの微小な調整は、特定の
学習率によって制御され、モデルが徐々に
損失が最小化される最適な状態にモデルが徐々に収束していく。
一般的な損失関数
異なる
コンピュータビジョンタスク
誤差を効果的に測定するには、異なる数式が必要となる。
-
平均二乗誤差(MSE):主に回帰分析で使用される。
回帰分析で主に使用される。
推定値と実際の値の差の平均2乗を計算する。住宅価格や座標のような連続
住宅価格や座標のような連続した数値データを予測するときに有用である。
-
クロスエントロピー損失:これは画像分類問題の標準的な損失関数である。
画像分類問題の標準的な損失関数です。0と1の間の確率値を出力とする分類モデルの性能を測定する。
0と1の間の確率値を出力とする分類モデルの性能を測定する。
のようなデータセットでモデルを学習するのに不可欠です。
ImageNet.
-
焦点損失:クラスの不均衡に対処するために設計された、
フォーカル・ロスは、標準的な
に変調項を適用する。これは
物体検出において特に重要である。
を遥かに凌駕する物体検出において特に重要である。
-
IoU ロス:IoUロスのバリエーション
GIoUやIoUようなIntersection over Union (IoU)
GIoU CIoUようなIntersection over Union (CIoU)の変種は,バウンディング・ボックス回帰には重要である.これらは、予測されたボックスとグランドの真実のボックスの重なりを測定する
の重なりを測定する.のような高性能モデル
Ultralytics YOLO11のような高性能モデルは、これらの高度な損失関数
を利用して、正確な物体位置特定を実現している。
-
ダイスロス:意味的セグメンテーションに広く利用されている。
セマンティック・セグメンテーションで広く利用されている。
この関数は、2つのサンプルの重なりを測定し、ピクセル単位の分類タスクにおけるクラスの不均衡に対して特に頑健です。
クラス不均衡に対して特に頑健である。
実際のアプリケーション
ロス機能は、事実上すべての成功したAIアプリケーションの舞台裏で機能し、安全性と信頼性を保証している。
信頼性を確保している。
-
自動化された製造:産業現場では
製造業におけるAIは、欠陥検出システム
検出システムに依存している。損失関数は、モデルが完璧な製品と不良品の微妙な視覚的差異を学習するのに役立つ。
を学習するのに役立つ。品質検査データセットのトレーニング中に損失を最小化することで
品質検査データセットのトレーニング中に損失を最小化することで、システムは高精度で組立ラインの異常にフラグを立てることを学習し、無駄を削減する。
-
医療診断医療画像解析の分野では
医療画像解析の分野では
U-Netのようなモデルは、ダイスロス(Dice Loss)や重み付けクロスエントロピー(Weighted Cross-Entropy)を利用して病態を特定する。
病態を特定する。例えば
脳腫瘍検出データセットで学習する場合、損失関数
関数は、がん性ピクセルを見逃すとモデルに大きなペナルティを課す。
健康な組織と腫瘍を正確にセグメンテーションするように導く。
ヘルスケア・ワークフローにおけるAI
Python 例:損失の監視
高レベルのフレームワークを使用する場合、損失計算はしばしば自動化される。次の例は
YOLO11 モデルのトレーニングでは、パフォーマンスを最適化するために損失関数が自動的に選択され計算される。この
学習ループは、各エポックの後に損失値(ボックス損失、クラス損失など)を表示します。
from ultralytics import YOLO
# Load the YOLO11 nano model
model = YOLO("yolo11n.pt")
# Train the model on the COCO8 dataset
# The loss functions (IoU, DFL, Cls) are automatically applied and minimized
results = model.train(data="coco8.yaml", epochs=3, imgsz=640)
# Loss metrics are recorded in the results object
print("Final Box Loss:", results.results_dict.get("train/box_loss"))
関連概念との区別
トレーニングパイプラインを完全に理解するためには、損失関数を他のメトリクスやコンポーネントと区別することが役に立つ。
コンポーネントと区別することが役に立つ。
-
損失関数と評価指標:どちらもパフォーマンスを測定するが、その役割は異なる。
損失関数は微分可能で、トレーニング中に重みを更新するために使用される(例えば、Log Loss)。
評価指標は以下のようなものです。
精度、
精度
平均平均精度(mAP)
のような評価メトリクスが使用されます。モデルは
モデルは損失を効果的に最小化することができますが、損失関数が評価指標とうまく整合していない場合、精度は低くなります。
-
損失関数対正則化:損失関数はモデルを正しい答えに導く、
一方
正則化テクニック
(L1、L2、Dropoutなど)はオーバーフィッティングを防ぐために損失方程式に追加される。
オーバーフィッティングを防ぐために損失方程式に追加されます。正則化は、過度に複雑な
モデルが新しい未知のテストデータに対してうまく汎化できるようにする。
テストデータにうまく汎化できるようにする。
-
損失関数対最適化:損失関数はゴール(誤差の最小化)を定義する。
誤差を最小にする)を定義し、最適化アルゴリズムはそのゴールに到達する方法(勾配を介して重みを更新する)を定義します。
様々な最適化アルゴリズムについては
PyTorch ドキュメントを参照してください。