深層学習における様々な損失関数

深層学習モデルは、与えられたデータからパターンを学習し、未知のデータに対して予測や判断を行います。この学習プロセスにおいて、モデルの予測がどれだけ「正しいか」あるいは「間違っているか」を定量的に評価する指標が必要不可欠です。

その役割を担うのが「損失関数(Loss Function)」です。損失関数は、モデルの出力と正解との間の誤差を計算し、この誤差を最小化するようにモデルのパラメータが調整されます。つまり、損失関数は深層学習モデルの学習の「羅針盤」となるものです。タスク(分類、回帰、物体検出など)によって最適な損失関数は異なり、適切な選択がモデルの性能に大きく影響します。

本記事では、深層学習で用いられる様々な損失関数について、その概要と適用されるタスクを中心に解説していきます。

深層学習と誤差逆伝播法

深層学習モデルがデータから学習する過程は、主に「順伝搬(Forward Propagation)」と「誤差逆伝播法(Backward Propagation)」という2つの重要なステップから成り立っています。

順伝搬と逆伝搬

まず、順伝搬では、入力データがニューラルネットワークの各層を順番に通過していきます。入力データは各層で重みやバイアスといったパラメータを用いて計算され、活性化関数を通して次の層へと伝達されます。このプロセスを繰り返し、最終的にネットワークの出力層から予測結果が得られます。例えば、画像分類タスクであれば、画像データが入力され、各層での処理を経て、最終的に「犬」「猫」といったクラスに属する確率が出力されます。

次に、この予測結果がどれだけ正解から離れているかを測定するのが、前述の「損失関数」です。損失関数は、モデルの出力と実際の正解ラベル(教師データ)との間の誤差を計算し、単一のスカラー値である「損失(Loss)」を出力します。この損失の値が大きいほど、モデルの予測は不正確であると言えます。

学習の目的は、この損失を最小化することです。ここで登場するのが誤差逆伝播法です。誤差逆伝播法は、計算された損失を基に、ネットワークの各パラメータ(重みやバイアス)が損失にどれだけ影響を与えているか、つまり損失の各パラメータに関する勾配(微分値)を効率的に計算するアルゴリズムです。出力層から入力層に向かって、連鎖律(Chain Rule)を用いて勾配を計算していきます。

計算された勾配は、モデルのパラメータを更新するために使用されます。この更新には、勾配降下法(Gradient Descent)やその派生(Adam, SGDなど)といった最適化アルゴリズムが用いられます。これらのアルゴリズムは、勾配が示す方向にパラメータを微小量だけ調整することで、損失をより小さくする方向へモデルを導きます。この順伝搬、損失計算、誤差逆伝播、パラメータ更新のサイクルをデータセット全体またはミニバッチに対して何度も繰り返すことで、モデルは徐々に精度を高めていきます。

深層学習の様々なタスク

深層学習は、単に分類や回帰といった基本的なタスクだけでなく、画像認識(物体検出、セグメンテーション)、自然言語処理(機械翻訳、文章生成)、音声認識、推薦システム、異常検知など、非常に多岐にわたる応用が可能です。それぞれのタスクは、入力データの形式、出力の形式、そして達成したい目的が異なります。

例えば、画像分類では画像全体に対するクラスを予測しますが、物体検出では画像内の複数の物体の位置(バウンディングボックス)とクラスを予測します。また、画像生成ではピクセルデータを新しく生成します。これらの多様なタスクに対応するためには、それぞれのタスクの特性や目的に合致した損失関数を選択することが極めて重要になります。損失関数は、モデルが何を「正解」とし、どのような誤差を最小化すべきかを定義するからです。このように、損失関数は誤差逆伝播法と連携し、深層学習モデルが多様なタスクを解決するための学習プロセスの中核を担っています。

様々な損失関数

深層学習が解決するタスクは多岐にわたるため、モデルの予測誤差を評価するための損失関数もまた様々です。タスクの性質や、どのような誤差に対してモデルを敏感にさせたいかに応じて、適切な損失関数を選択することがモデルの性能を引き出す上で非常に重要になります。ここでは、主要な損失関数をタスクの種類ごとに分類して見ていきましょう。

回帰タスク

回帰タスクは、連続値の出力を予測するものです。例えば、住宅価格の予測、株価の変動予測、気温の予測などがこれに該当します。回帰タスクにおける損失関数は、モデルの予測値と実際の連続値との間の差を定量化します。

Mean Squared Error (MSE)

Mean Squared Error(平均二乗誤差)は、回帰タスクで最も広く使用される損失関数の一つです。予測値と真値の差を2乗し、その平均を計算します。

特徴:

  • 誤差の大きさを強調します。これは、大きな誤差に対して小さな誤差よりもはるかに大きなペナルティを与えることを意味します。モデルが大きな間違いをすることを強く避けたい場合に適しています。
  • 勾配計算が容易で、最適化が比較的安定しやすい性質があります。
  • 外れ値に対して非常に敏感であり、データに外れ値が多く含まれる場合は影響を受けやすいという側面があります。

数学的定義:
データセットに \(N\) 個のサンプルがあり、それぞれの真値を \(y_i\)、モデルによる予測値を \(\hat{y}_i\) とすると、MSEは以下の式で定義されます。

$$
\text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_i – \hat{y}_i)^2
$$

Mean Absolute Error (MAE)

Mean Absolute Error(平均絶対誤差)は、予測値と真値の差の絶対値の平均を計算する損失関数です。

特徴:

  • 各誤差の大きさに比例したペナルティを与えます。MSEのように誤差を二乗しないため、外れ値に対してMSEよりもロバスト(頑健)です。外れ値の影響を抑えたい場合に適しています。
  • 原点(誤差が0の場合)で微分不可能であるため、勾配降下法を用いた最適化において収束に関する課題が生じることがあります(ただし、実際の実装ではこの点は工夫されています)。

数学的定義:
データセットに \(N\) 個のサンプルがあり、それぞれの真値を \(y_i\)、モデルによる予測値を \(\hat{y}_i\) とすると、MAEは以下の式で定義されます。

$$
\text{MAE} = \frac{1}{N} \sum_{i=1}^{N} |y_i – \hat{y}_i|
$$

Smooth L1 Loss (Huber Loss)

Smooth L1 LossはHuber Lossとも呼ばれ、MSEとMAEの利点を組み合わせた損失関数です。誤差が小さい場合はMSEのように二乗誤差を用い、誤差がある閾値(\(\delta\) などで表されます)を超えるとMAEのように絶対誤差を用います。

特徴:

  • 誤差が小さいときはMSEのように振る舞うため、原点付近で滑らかで微分可能です。これにより、安定した学習が期待できます。
  • 誤差が大きいときはMAEのように振る舞うため、外れ値に対してMSEよりもロバストです。
  • 回帰タスク全般で利用されますが、特に物体検出におけるバウンディングボックスの回帰など、誤差の大きさに応じて異なる振る舞いをさせたい場合に有効です。

数学的定義:
Smooth L1 Lossは、誤差 \(e = y – \hat{y}\) と閾値 \(\delta\) を用いて、以下の式で定義されます。

$$
L_{\delta}(e) = \begin{cases} \frac{1}{2} e^2 & \text{if } |e| \le \delta \\
\delta (|e| – \frac{1}{2} \delta) & \text{otherwise} \end{cases}
$$

全体の損失としては、データセット内の全サンプルの損失の平均をとることが一般的です。

$$
\text{Smooth L1 Loss} = \frac{1}{N} \sum_{i=1}^{N} L_{\delta}(y_i – \hat{y}_i)
$$

ここで、\(\delta\) はハイパーパラメータであり、タスクに応じて調整されます。

分類タスク

分類タスクは、入力データがあらかじめ定義された離散的なクラスのどれに属するかを予測するタスクです。例えば、メールがスパムかどうか(2クラス)、手書き数字の認識(10クラス)、あるいは写真に写っている物体の種類を判別する(多クラス)などがあります。分類タスクにおけるモデルの出力は、通常、各クラスに属する確率分布として表現されます。損失関数は、この予測された確率分布と真のクラスラベルとの間の誤差を評価するために使用されます。

Cross-Entropy Loss

Cross-Entropy Loss(クロスエントロピー損失)は、特に多クラス分類において広く用いられる損失関数です。情報理論におけるクロスエントロピーの概念に基づいており、モデルの予測する確率分布が、真のクラスラベルを表す「正解」の確率分布(通常はone-hotエンコーディングで表現されます)からどれだけ乖離しているかを測定します。

特徴:

  • モデルの予測が真のラベルの確率に近いほど損失は小さくなり、離れるほど大きくなります。特に、真のラベルのクラスに対する予測確率が低い場合に大きなペナルティを与えます。
  • ソフトマックス関数と組み合わせて使用されることが一般的です。ソフトマックス関数は、モデルの生出力(ロジット)を各クラスに属する確率の形に変換し、これらの確率の合計が1になるようにします。
  • 多クラス分類問題において、事実上の標準的な損失関数として利用されています。

数学的定義:
\(C\) 個のクラスがあり、サンプル \(i\) に対する真のクラスラベルをone-hotベクトル \(y_i = [y_{i1}, y_{i2}, \dots, y_{iC}]\)、モデルによる各クラスへの予測確率を \(\hat{y}i = [\hat{y}_{i1}, \hat{y}_{i2}, \dots, \hat{y}_{iC}]\) とすると、Cross-Entropy Lossは以下の式で定義されます。


$$
L_{\text{CE}} = – \sum_{i=1}^{N} \sum_{c=1}^{C} y_{ic} \log(\hat{y}_{ic})
$$


ここで、\(N\) はサンプル数、\(y_{ic}\) はサンプル \(i\) がクラス \(c\) に属する場合に1、そうでない場合に0、\(\hat{y}_{ic}\) はサンプル \(i\) がクラス \(c\) に属するとモデルが予測する確率です。one-hotエンコーディングの場合、\(y_{ic}\) は真のクラスに対応する要素だけが1になるため、実際には真のクラスに対応する予測確率の対数のみが損失に寄与します。

Binary Cross-Entropy Loss

Binary Cross-Entropy Loss(二項クロスエントロピー損失)は、2クラス分類問題に特化したクロスエントロピー損失です。出力層の活性化関数としてシグモイド関数を使用し、ある単一のクラスに属する確率を出力する場合によく用いられます。

特徴:

  • 真のラベルが0または1の二値である場合に適用されます。
  • モデルの出力が単一の確率値(例: 正例に属する確率)である場合に、その確率と真の二値ラベルとの間の誤差を計算します。
  • Logistic Regression Loss としても知られており、ロジスティック回帰モデルの学習に用いられる損失関数と等価です。

数学的定義:
サンプル \(i\) に対する真のラベルを \(y_i \in {0, 1}\)、モデルによる正例(クラス1)に属する予測確率を $\hat{y}i$ とすると、Binary Cross-Entropy Lossは以下の式で定義されます。

$$
L_{\text{BCE}} = – \sum_{i=1}^{N} [y_i \log(\hat{y}_i) + (1 – y_i) \log(1 – \hat{y}_i)]
$$

ここで、\(N\) はサンプル数です。

Categorical Loss

Categorical Loss(カテゴリカル損失)という用語は、文脈によっていくつかの意味で使われますが、深層学習における多クラス分類においては、多くの場合 Cross-Entropy Loss を指します。特に、出力層がソフトマックス関数であり、真のラベルがone-hotエンコーディングで与えられる場合の損失としてこの用語が使われます。Sparse Categorical Cross-Entropy Lossという似た用語もあり、こちらは真のラベルが整数インデックスで与えられる場合に使用されます。

Weighted cross-entropy loss

Weighted cross-entropy loss(重み付きクロスエントロピー損失)は、分類タスク、特にクラス間でサンプル数が大きく異なる クラス不均衡 の問題に対処するために用いられます。少数派クラスのサンプルが誤分類された場合に、多数派クラスの誤分類よりも大きなペナルティを与えるように、各クラスの損失に重みを乗じます。

特徴:

  • クラス不均衡なデータセットでの学習において、少数派クラスの認識精度を向上させるのに有効です。
  • 各クラスに与える重みは、クラスのサンプル数に反比例させるなど、様々な方法で決定されます。

数学的な考え方:
Cross-Entropy Lossの式において、各クラス \(c\) に対応する項に重み \(w_c\) を乗じることで実現されます。


$$
L_{\text{WCE}} = – \sum_{i=1}^{N} \sum_{c=1}^{C} w_c y_{ic} \log(\hat{y}_{ic})
$$

ここで、\(w_c\) はクラス \(c\) に対応する重みです。

Negative log-likelihood Loss

Negative log-likelihood Loss(負の対数尤度損失)は、統計学における最尤推定の考え方に基づいた損失関数で、分類タスク、特にモデルの出力が確率として解釈できる場合によく用いられます。モデルが真のラベルを持つサンプルを生成する確率(尤度)を最大化することを目指します。これは、尤度の対数を最大化すること、あるいは負の対数尤度を最小化することと等価です。

特徴:

  • モデルの出力が確率分布を表す場合に自然な形で適用できます。
  • 分類タスクにおいては、出力層がソフトマックス関数である場合、Cross-Entropy LossはNegative log-likelihood Lossと等価になります。これは、ソフトマックス関数の出力が確率分布であり、クロスエントロピーが真の分布(one-hot)と予測分布間の負の対数尤度を表すためです。

数学的定義:
モデルが与えられた入力 \(x_i\) に対して真のラベル \(y_i\) を出力する確率を \(P(y_i | x_i; \theta)\) (\(\theta\) はモデルのパラメータ)とすると、Negative log-likelihoodは以下の式で定義されます。


$$
L_{\text{NLL}} = – \sum_{i=1}^{N} \log P(y_i | x_i; \theta)
$$

分類タスクでソフトマックス出力を用いる場合、\(P(y_i | x_i; \theta)\) は真のクラスに対するモデルの予測確率 \(\hat{y}_{i, \text{true}}\) となり、損失は \(- \sum_{i=1}^{N} \log(\hat{y}_{i, \text{true}})\) となります。これは、Cross-Entropy Lossの式で真のラベルに対応しない項がゼロになることを考えると、Cross-Entropy Lossと同等であることがわかります。

物体検出・セグメンテーション

物体検出は、画像内に存在する物体の位置(通常はバウンディングボックスで囲む)と種類を特定するタスクです。セグメンテーションは、さらに詳細に、画像内の各ピクセルがどの物体やクラスに属するかを分類するタスク(セマンティックセグメンテーション)や、個々の物体インスタンスを区別して領域を特定するタスク(インスタンスセグメンテーション)を指します。これらのタスクは、単なる画像全体に対する分類とは異なり、位置情報や領域情報が重要となるため、それに特化した損失関数が用いられます。

IoU Loss (Intersection over Union Loss)

IoU Lossは、物体検出において、予測されたバウンディングボックスと正解のバウンディングボックスの位置の正確さを評価するために使用される損失です。基となる Intersection over Union (IoU) は、2つの領域(この場合は予測ボックスと正解ボックス)の重複部分の面積を、それらを合わせた領域の面積で割った値です。IoUは0から1までの値をとり、値が大きいほど予測が正確であることを示します。

特徴:

  • バウンディングボックスの重なり具合を直接的に評価します。
  • スケールに対してロバストです(小さな物体でも大きな物体でも、重なりの比率で評価するため)。
  • IoUの値そのものを最大化(または1からIoUを引いた値を最小化)することで、位置の精度を向上させます。

数学的定義:
予測されたバウンディングボックスを \(B_p\)、真のバウンディングボックスを \(B_{gt}\) とすると、IoUは以下で定義されます。
$$
\text{IoU}(B_p, B_{gt}) = \frac{\text{Area}(B_p \cap B_{gt})}{\text{Area}(B_p \cup B_{gt})}
$$
IoU Lossは、一般的に \(1 – \text{IoU}\) として定義されます。
$$
L_{\text{IoU}} = 1 – \text{IoU}(B_p, B_{gt})
$$
より発展的なIoUを基にした損失(Generalized IoU Loss, Distance IoU Loss, Complete IoU Lossなど)も提案されており、バウンディングボックスのサイズや中心点間の距離なども考慮することで、より高精度な位置特定を目指します。

Dice Loss

Dice Lossは、特に画像セグメンテーションにおいて、予測されたセグメンテーションマスクと真のマスクの間の類似度を評価するために広く用いられます。基となる Dice係数 (またはF1スコア)は、2つの集合の類似度を測る尺度で、セグメンテーションにおいては、予測されたピクセルの集合と真のピクセルの集合に対して計算されます。

特徴:

  • ピクセル単位の正解率(Pixel Accuracy)などと比較して、クラス不均衡なデータセット(例: 背景ピクセルが圧倒的に多い中で、対象物体のごく一部のピクセルを検出する)に対してよりロバストです。少数派クラスの領域をうまく捉えることに焦点を当てやすい性質があります。
  • セグメンテーション領域の重なりを重視します。

数学的定義:
予測されたセグメンテーションマスクを \(P\)、真のセグメンテーションマスクを \(G\) とすると、Dice係数は以下で定義されます。
$$
\text{Dice}(P, G) = \frac{2 |P \cap G|}{|P| + |G|}
$$
ここで、\(|P \cap G|\) は \(P\) と \(G\) の共通部分のピクセル数、\(|P|\) と \(|G|\) はそれぞれのマスクのピクセル数の合計です。Deep Learningにおいては、ピクセル値が確率として扱われるため、総和で定義されることが多いです。
$$\text{Dice}(P, G) = \frac{2 \sum_{i=1}^{N} p_i g_i}{\sum_{i=1}^{N} p_i + \sum_{i=1}^{N} g_i}
$$
ここで、\(N\) はピクセル数、\(p_i\) はピクセル \(i\) が対象クラスである予測確率、\(g_i\) はピクセル \(i\) が対象クラスであれば1、そうでなければ0の真値です。
Dice Lossは、一般的に \(1 – \text{Dice}\) として定義されます。
$$
L_{\text{Dice}} = 1 – \text{Dice}(P, G)
$$

Jaccard Loss

Jaccard Lossは、Jaccard係数(またはIoU)に基づいて計算される損失で、セグメンテーションタスクなどで利用されます。Jaccard係数は、2つの集合の共通部分のサイズをそれらの和集合のサイズで割った値であり、前述のIoUと全く同じものです。したがって、Jaccard LossはIoU Lossと同様の特性を持ち、セグメンテーションマスクの重なりを評価します。

特徴:

  • Dice Lossと同様に、セグメンテーション領域の重なりを重視し、クラス不均衡にある程度対応できます。
  • Dice Lossと比較して、誤検出(False Positive)に少し敏感である傾向があります。

数学的定義:
予測されたセグメンテーションマスクを \(P\)、真のセグメンテーションマスクを \(G\) とすると、Jaccard係数(IoU)は以下で定義されます。
$$
\text{Jaccard}(P, G) = \text{IoU}(P, G) = \frac{|P \cap G|}{|P \cup G|}
$$
Deep Learningにおいては、確率を用いて以下のように定義されることが多いです。
$$\text{Jaccard}(P, G) = \frac{\sum_{i=1}^{N} p_i g_i}{\sum_{i=1}^{N} p_i + \sum_{i=1}^{N} g_i – \sum_{i=1}^{N} p_i g_i}
$$
Jaccard Lossは、一般的に \(1 – \text{Jaccard}\) として定義されます。
$$L_{\text{Jaccard}} = 1 – \text{Jaccard}(P, G)
$$

Focal Loss

Focal Lossは、物体検出などのタスクにおいて、前景物体(検出対象)と背景領域のピクセル数に極端な不均衡がある場合に効果的な損失関数です。標準的なCross-Entropy Lossを改良し、簡単に分類できる多数派(例えば背景)のサンプルの損失を抑制し、誤分類しやすい少数派(例えば前景物体)のサンプルの学習に焦点を当てるように設計されています。

特徴:

  • 極端なクラス不均衡に対して非常に有効です。
  • 多数派のクラスに属するサンプルからの勾配の影響を減らし、学習を困難なサンプルに集中させます。
  • 物体検出のOne-stage Detectorなどで、多数の候補領域から少数の物体領域を検出する際に特にその威力を発揮します。

数学的定義:
Focal Lossは、Binary Cross-Entropy Lossを基に、変調係数 \((1 – p_t)^\gamma\) を導入して定義されます。ここで、\(p_t\) は真のクラスに対するモデルの予測確率、\( \gamma \ge 0\) は調整可能なハイパーパラメータ(Focusing Parameter)です。
$$
L_{\text{Focal}} = – (1 – p_t)^\gamma \log(p_t)
$$
多くの場合、クラス不均衡をさらに補正するために、クラスごとに重み \(\alpha_t\) を導入した以下の形が用いられます。
$$
L_{\text{Focal}} = – \alpha_t (1 – p_t)^\gamma \log(p_t)
$$
ここで、\(p_t\) は、真のクラスが1の場合は予測確率 \(\hat{y}\)、真のクラスが0の場合は \(1 – \hat{y}\) となります。 \(\alpha_t\) は、真のクラスが1の場合は \(\alpha\)、真のクラスが0の場合は \(1 – \alpha\) (\( \alpha\) はハイパーパラメータ) となるように設定されることが多いです。

生成モデル (GANsなど)

生成モデルは、与えられた学習データと同様の特性を持つ新しいデータを生成することを目的としたモデルです。画像、音声、テキストなど、様々な種類のデータを生成することが可能です。中でも、敵対的生成ネットワーク(GANs)やDiffusion Modelは、近年注目されている生成モデルのアーキテクチャです。これらのモデルの学習には、独特の目的関数や損失関数が用いられます。

Adversarial Loss (GANs)

Adversarial Loss(敵対的損失)は、敵対的生成ネットワーク(GANs)の中心となる概念です。GANsは、「生成器(Generator)」と「識別器(Discriminator)」という2つのネットワークから構成され、これらが互いに競争しながら学習を進めます。

特徴:

  • 生成器: ランダムなノイズを入力として受け取り、本物らしいデータを生成しようとします。識別器が生成したデータを本物と誤認識するように、自身のパラメータを調整します。
  • 識別器: 入力されたデータが本物(学習データから得られたもの)か、生成器によって作られた偽物かを判別しようとします。本物と偽物を正しく区別できるように、自身のパラメータを調整します。
  • Adversarial Lossは、この生成器と識別器の間の敵対的なゲームを定式化したものであり、学習の目的は、生成器が識別器を「騙す」能力を高めること、そして識別器がより正確に判別できるようになることです。

数学的な考え方:
GANsの学習は、生成器 \(G\) と識別器 \(D\) が以下のValue Function \(V(D, G)\) を用いてミニマックスゲームを行うこととして定式化されます。
$$
\min_G \max_D V(D, G) = \mathbb{E}_{x \sim p{\text{data}}(x)}[\log D(x)] + \mathbb{E}{z \sim p_z(z)}[\log(1 – D(G(z)))]$$
ここで、\(x\) は学習データの分布 \(p{\text{data}}(x)\) から得られた本物、\(z\) はノイズ分布 \(p_z(z)\) から得られたサンプル、\(D(x)\) は識別器が本物 \(x\) を本物であると判断する確率、\(D(G(z))\) は識別器が生成された偽物 \(G(z)\) を本物であると判断する確率です。

  • 識別器の損失: 識別器は \(V(D, G)\) を最大化しようとします。これは、本物を本物と正しく判別する確率 \(\log D(x)\) を大きくし、偽物を偽物と正しく判別する確率 \(\log(1 – D(G(z)))\) を大きくすることに相当し、Binary Cross-Entropy Lossの形になっています。
  • 生成器の損失: 生成器は \(V(D, G)\) を最小化しようとします。ただし、勾配の問題から、実際には \(\mathbb{E}{z \sim p_z(z)}[\log(1 – D(G(z)))]\) を最小化する代わりに、\(-\mathbb{E}{z \sim p_z(z)}[\log(D(G(z)))]\) を最小化することが一般的です。これは、識別器が生成したデータを本物と判断する確率 \(D(G(z))\) を大きくすることに相当し、これもBinary Cross-Entropy Lossの形になっています。

Feature Matching Loss

Feature Matching Lossは、GANsの学習安定化のために提案された損失関数の一つです。識別器の特定の中間層の出力(特徴マップ)を利用します。

特徴:

  • 生成されたデータと本物データのピクセル値の直接的な比較ではなく、より抽象的な特徴空間での類似度を比較します。
  • 識別器が捉えている本物らしい特徴を、生成器が生成するデータにも持たせるように促します。
  • 標準のAdversarial Lossに加えて使用されることで、学習の安定性を向上させ、生成されるサンプルの多様性を高める効果が期待できます。

数学的な考え方:
識別器 \(D\) の中間層 \(l\) の出力(特徴マップ)を \(f(x)\) とします。Feature Matching Lossは、本物データ \(x\) の特徴マップの平均と、生成されたデータ \(G(z)\) の特徴マップの平均との間のL2ノルム(MSE)として定義されることが多いです。
$$
L_{\text{Feature Matching}} = \left| \mathbb{E}_{x \sim p{\text{data}}(x)}[f(x)] – \mathbb{E}_{z \sim p_z(z)}[f(G(z))] \right|_2^2
$$
これは、生成器が本物データの分布の平均的な特徴と一致するようなデータを生成するように学習することを意味します。

Gaussian Wasserstein Distance

Wasserstein Distance(ワッサーシュタイン距離)は、2つの確率分布間の距離を測る尺度の一つで、Earth Mover’s Distanceとも呼ばれます。GANsの分野では、従来のKLダイバージェンスやJSダイバージェンスが分布が重なっていない場合に適切な勾配を提供できないという問題があったのに対し、Wasserstein Distanceは分布が重なっていなくても意味のある勾配を提供できるため、学習の安定化に有効であるとしてWGAN(Wasserstein GAN)で導入されました。

特徴:

  • 2つの分布を一方から他方へ「移動」させるために必要な「仕事量」の最小値として解釈でき、分布間の距離をより滑らかに捉えることができます。
  • 分布が重なっていない場合でも勾配が消失しにくく、GANの学習を安定化させる効果があります。
  • 生成器の損失が識別器の出力に直接比例するため、学習の進捗を損失の値で測りやすいという利点があります。

数学的な考え方:
2つの分布 \(P_r\)(本物データの分布)と \(P_g\)(生成データの分布)間のWasserstein Distance \(W(P_r, P_g)\) は以下のように定義されます。
$$
W(P_r, P_g) = \inf_{\gamma \in \Pi(P_r, P_g)} \mathbb{E}{(x, y) \sim \gamma}[|x – y|]
$$
ここで \(\Pi(P_r, P_g)\) は、周辺分布がそれぞれ \(P_r\) と \(P_g\) であるようなあらゆる可能な同時分布 \(\gamma(x, y)\) の集合です。Infimum(下限)を取る必要があるため直接計算は困難ですが、Kantorovich-Rubinstein双対性により、識別器 \(D\) (リプシッツ連続関数である必要あり)を用いて以下のように表現できます。
$$W(P_r, P_g) = \sup{|D|_L \le 1} \left( \mathbb{E}{x \sim P_r}[D(x)] – \mathbb{E}{z \sim p_z(z)}[D(G(z))] \right)
$$
WGANでは、この双対表現を利用して損失関数を定義し、識別器のパラメータにリプシッツ制約を課します。

Gaussian Wasserstein Distance は、特にデータ分布がガウス分布であると仮定できる場合に、閉形式で計算可能なWasserstein Distanceです。しかし、GANsにおいては、データ分布が一般に複雑であるため、ここで説明した一般的なWasserstein Distanceの概念が主に利用されます。

Diffusion Loss

Diffusion Lossは、Diffusion Modelという新しい生成モデルのクラスの学習に用いられます。Diffusion Modelは、データに徐々にノイズを加えていき最終的に完全にノイズ化された状態にする「順拡散過程」と、ノイズから元のデータを徐々に復元していく「逆拡散過程」から構成されます。学習の目的は、この逆拡散過程をモデル化し、ノイズから本物らしいデータを生成できるようになることです。

特徴:

  • データをノイズから復元するプロセスを学習することに焦点を当てます。
  • 学習タスクは、与えられたノイズレベルのデータから、付加されたノイズそのもの、あるいはノイズを取り除いた後のデータを予測する回帰問題として定式化されることが多いです。
  • 高品質な画像生成など、様々な生成タスクで高い性能を示しています。

数学的な考え方:
Diffusion Modelの学習では、特定のタイムステップ \(t\) において、元のデータ \(x_0\) にノイズを加えたデータ \(x_t\) が与えられたときに、元のノイズ \(\epsilon\) を予測するモデル \( \epsilon_\theta(x_t, t)\) を学習することが一般的です。損失関数としては、予測されたノイズと実際のノイズとの間のMSEがよく用いられます。
$$
L_{\text{Diffusion}} = \mathbb{E}_{t \sim [0, T], x_0 \sim p{\text{data}}, \epsilon \sim \mathcal{N}(0, I)} \left[ | \epsilon – \epsilon_\theta(\sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 – \bar{\alpha}_t} \epsilon, t) |^2 \right]
$$
ここで、\(T\) はタイムステップの総数、 \( \bar{\alpha}_t\) はスケジュールされたパラメータです。モデルは、あらゆるタイムステップとあらゆるデータサンプルにおいて、付加されたノイズを正確に予測できるようになることを目指します。この損失を最小化することで、モデルはノイズを取り除く方法を学習し、逆拡散過程を通じてデータを生成できるようになります。

画像生成・変換

画像生成・変換タスクは、新しい画像をゼロから生成したり(画像生成)、既存の画像の見た目やスタイルを変更したり(スタイル変換)、解像度を上げたり(超解像)、ノイズを除去したり(画像ノイズ除去)するなど、画像を操作する幅広いタスクを含みます。これらのタスクでは、単にピクセル値が一致しているかどうかだけでなく、生成または変換された画像の「見た目」や「知覚的な品質」、「構造的な整合性」が重要となるため、それに適した損失関数が用いられます。

Perceptual Loss

Perceptual Loss(知覚損失)は、生成された画像と目標画像の間で、ピクセル値の差ではなく、事前に学習された畳み込みニューラルネットワーク(CNN)(例:VGGNetやResNetなど)の中間層から抽出された特徴量の差に基づいて計算される損失です。

特徴:

  • 人間の視覚システムが画像の内容やスタイルをどのように捉えるかにより近い形で画像の類似度を評価できるとされています。
  • ピクセルごとの厳密な一致よりも、画像の構造やテクスチャといった高レベルな特徴の類似性を重視します。
  • 超解像、スタイル変換、画像ノイズ除去、画像合成など、視覚的に自然な画像を生成したい様々なタスクで広く利用されています。

数学的な考え方:
事前に学習されたCNNモデルを \(\phi\) とし、その層 \(l\) の特徴マップ抽出関数を \(\phi_l(\cdot)\) とします。目標画像を \(y\)、生成された画像を \(\hat{y}\) とすると、層 \(l\) におけるPerceptual Lossは、その層の特徴マップ間のL2ノルム(二乗誤差)として定義されることが多いです。
$$
L_{\text{Perceptual}}^l = \frac{1}{C_l H_l W_l} | \phi_l(y) – \phi_l(\hat{y}) |_2^2
$$
ここで、\(C_l, H_l, W_l\) は層 \(l\) の特徴マップのチャンネル数、高さ、幅です。複数の層からの損失を組み合わせて使用することも一般的です。

Content Loss (Style Transfer)

Content Lossは、特にニューラルスタイル変換タスクにおいて使用される損失関数の一つです。生成画像が「内容画像」の主要な構造や要素を保持するように学習を促します。

特徴:

  • スタイル変換の目的は、内容画像の内容を保ちつつ、スタイル画像のスタイルを適用することです。Content Lossは、このうち「内容を保つ」役割を担います。
  • Perceptual Lossと同様に、事前に学習されたCNNの特徴マップに基づいて計算されますが、内容は通常、ネットワークの中間層以降(より抽象的な特徴を捉える層)で評価されます。

数学的定義:
事前に学習されたCNNモデルを \(\phi\) とし、内容画像を \(x_c\)、生成された画像を \(\hat{y}\)、そして内容を評価する層を \(l\) とすると、Content Lossは層 \(l\) における内容画像と生成画像の特徴マップ間のL2ノルム(二乗誤差)として定義されます。
$$
L_{\text{Content}} = \frac{1}{C_l H_l W_l} | \phi_l(x_c) – \phi_l(\hat{y}) |_2^2
$$
これはPerceptual Lossの特別なケースとも言えますが、スタイル変換の文脈では内容を保つためという明確な目的で使われます。

Style Loss (Style Transfer)

Style Lossもニューラルスタイル変換タスクで使用される損失関数です。生成画像が「スタイル画像」のテクスチャ、色彩、質感といったスタイルを反映するように学習を促します。

特徴:

  • スタイルを捉えるために、特徴マップの相関情報を利用します。具体的には、特徴マップから計算される「グラム行列(Gram Matrix)」を使用します。グラム行列は、特徴マップの異なるチャンネル間の相関関係を表し、これが画像のスタイルをよく捉えることが経験的に知られています。
  • 事前に学習されたCNNの複数の層(通常は比較的浅い層から深い層まで)でスタイルの評価が行われます。

数学的定義:
事前に学習されたCNNモデルを \(\phi\) とし、スタイル画像を \(x_s\)、生成された画像を \(\hat{y}\)、スタイルを評価する層を \(l\) とします。層 \(l\) における特徴マップのリシェイプされた行列を \(F_l\) とすると、グラム行列 \(G_l\) は \(F_l\) とその転置行列 \(F_l^T\) の積として定義されます。
$$
G_l(X)_{ij} = \sum_k F_l(X)_{ik} F_l(X)_{jk}
$$
ここで \(X\) は画像(\(x_s\) または \(\hat{y}\))、\(i, j\) は特徴チャンネル、 \(k\) は空間的な位置のインデックスです。Style Lossは、スタイル画像のグラム行列と生成画像のグラム行列との間のL2ノルム(二乗誤差)として定義されます。
$$
L_{\text{Style}}^l = \frac{1}{(2 C_l H_l W_l)^2} | G_l(x_s) – G_l(\hat{y}) |_2^2
$$
複数の層からのStyle Lossを重み付き和で合計して使用することが一般的です。

SSIM Loss

SSIM Lossは、画像の構造的な類似性に着目した損失関数です。基となる Structural Similarity Index (SSIM) は、人間の視覚システムが感じる画像の類似性をよりよく反映するように設計されており、輝度、コントラスト、構造の3つの要素に基づいて2つの画像間の類似度を評価します。SSIMの値は-1から1までの範囲で、1に近いほど類似しています。

特徴:

  • ピクセルごとの誤差(MSEなど)よりも、人間の知覚に近い画像の品質評価尺度として機能します。
  • 画像の圧縮、ノイズ除去、超解像、生成といったタスクにおいて、視覚的に自然で構造的に整合性の取れた画像を生成するために使用されることがあります。

数学的定義:
画像 \(x\) と \(y\) の間のSSIMは、ローカルウィンドウ(通常はガウシアンカーネルで重み付けされた小さな領域)に対して計算され、以下の要素の組み合わせで定義されます。

  • 輝度 (Luminance): \(\frac{2\mu_x \mu_y + C_1}{\mu_x^2 + \mu_y^2 + C_1}\)
  • コントラスト (Contrast): \(\frac{2\sigma_x \sigma_y + C_2}{\sigma_x^2 + \sigma_y^2 + C_2}\)
  • 構造 (Structure): \(\frac{\sigma_{xy} + C_3}{\sigma_x \sigma_y + C_3}\)

ここで、 \(\mu_x, \mu_y\) はそれぞれの画像の画素値の平均、 \(\sigma_x, \sigma_y\) は標準偏差、 \(\sigma_{xy}\) は共分散、\(C_1, C_2, C_3\) は分母がゼロになるのを防ぐための小さな定数です。
SSIM Lossは、一般的に \(1 – \text{SSIM}\) として定義されます。
$$
L_{\text{SSIM}} = 1 – \text{SSIM}(y, \hat{y})
$$

MS-SSIM Loss

MS-SSIM Lossは、SSIMの概念を拡張し、画像の類似性を複数の異なるスケール(解像度)で評価する損失関数です。画像を段階的にダウンサンプリングしていき、各スケールでSSIMの要素(特にコントラストと構造)を計算し、最も粗いスケールで輝度を計算します。これらの値を組み合わせて最終的なMS-SSIMスコアが算出されます。

特徴:

  • 異なるスケールでの画像の構造的な特徴を捉えることができるため、より包括的で知覚的な画像の類似度評価が可能です。
  • SSIM Lossと同様に、画像生成、特に高解像度の画像を扱うタスクで、より高品質で自然な結果を得るために使用されることがあります。

数学的な考え方:
MS-SSIMは、\(M\) 個の異なるスケールでのコントラスト項 \(C_j\) と構造項 \(S_j\)、および最も粗いスケール \(M\) での輝度項 \(L_M\) を組み合わせて計算されます。
$$
\text{MS-SSIM}(y, \hat{y}) = [L_M(y, \hat{y})]^{\alpha_M} \prod_{j=1}^M [C_j(y, \hat{y})]^{\beta_j} [S_j(y, \hat{y})]^{\gamma_j}
$$
ここで、 \(\alpha_j, \beta_j, \gamma_j\) は各項の重要度を調整する重みです。MS-SSIM Lossは、一般的に \(1 – \text{MS-SSIM}\) として定義されます。
$$L_{\text{MS-SSIM}} = 1 – \text{MS-SSIM}(y, \hat{y})
$$

Pixel-wise mean Loss

Pixel-wise mean Loss(ピクセル単位平均損失)は、画像生成・変換タスクにおいて、生成された画像と目標画像の各ピクセル値の間の差を直接的に計算し、その平均を取る損失の総称です。具体的には、前述の Mean Squared Error (MSE)Mean Absolute Error (MAE) が画像データに対して適用される場合を指します。

特徴:

  • 計算がシンプルで直感的です。
  • 各ピクセルレベルでの正確さを重視します。
  • 画像の再構成、ノイズ除去といったタスクの基本的な損失として用いられます。
  • ただし、人間の知覚とは必ずしも一致しないため、ピクセルレベルで完全に一致していても視覚的に不自然に見える画像を生成してしまう可能性があります。そのため、Perceptual LossやSSIM Lossなどと組み合わせて使用されることが多いです。

数学的定義:
画像全体(またはパッチ)のピクセル数を \(N\) とし、目標画像のピクセル値を \(y_i\)、生成された画像のピクセル値を \(\hat{y}_i\) とすると、

  • MSE: $$L_{\text{Pixel-MSE}} = \frac{1}{N} \sum_{i=1}^{N} (y_i – \hat{y}i)^2$$
  • MAE:$$L{\text{Pixel-MAE}} = \frac{1}{N} \sum_{i=1}^{N} |y_i – \hat{y}_i|$$
    となります。これらの損失は、画像生成・変換タスクの目的や他の損失関数との組み合わせに応じて選択されます。

自己教師あり学習・表現学習

自己教師あり学習や表現学習は、大量のラベル付けされていないデータから、下流の様々なタスクに役立つような汎用的で意味のある特徴表現(エンベディング)を獲得することを目指す学習パラダイムです。人間による手作業でのアノテーション(ラベル付け)が困難またはコストが高い場合に有効なアプローチです。これらの手法では、データ自体が持つ構造や情報を利用して「Pretext Task」(事前タスク)を定義し、この事前タスクを解く過程で有用な表現を学習します。損失関数は、この事前タスクの目的を達成するために設計されます。

Reconstruction Loss

Reconstruction Loss(再構成損失)は、自己教師あり学習、特にオートエンコーダー(Autoencoder)のようなモデルで中心的に用いられる損失関数です。オートエンコーダーは、入力データを低次元の潜在空間に圧縮するエンコーダーと、その潜在表現から元のデータを復元するデコーダーから構成されます。Reconstruction Lossは、モデルが入力データをどれだけ忠実に再構成できたかを測ります。

特徴:

  • 事前タスクは「入力データ自身を再構成すること」です。
  • モデルは、入力データの本質的な情報(潜在表現)を捉えることで、より高い精度で元のデータを再構成できるようになります。
  • 次元削減、データのノイズ除去(Denoising Autoencoder)、異常検知などのタスクに利用されます。
  • 具体的な計算には、元のデータの種類に応じて、ピクセル値に対するMSE(画像データの場合)やBinary Cross-Entropy(バイナリデータの場合)などが用いられます。

数学的な考え方:
入力データを \(x\)、オートエンコーダーによる再構成出力を \(\hat{x}\) とすると、Reconstruction Lossは \(x\) と \(\hat{x}\) の間の誤差として定義されます。
例えば、画像データに対するMSEを用いたReconstruction Lossは以下のようになります。
$$
L_{\text{Reconstruction}} = |x – \hat{x}|^2
$$
あるいは、ピクセル単位でのBinary Cross-Entropyを用いる場合もあります。

Contrastive Loss

Contrastive Loss(対照損失)は、自己教師あり学習やMetric Learningにおいて、類似したサンプル(Positive Pair)同士を特徴空間上で近くに、非類似のサンプル(Negative Pair)同士を遠くに引き離すように、モデルが特徴表現を学習するための損失関数です。

特徴:

  • 「似ているもの」と「似ていないもの」のペアを定義し、これらの相対的な距離に基づいて学習を行います。
  • Positive Pair間の距離を小さく、Negative Pair間の距離をあるマージンよりも大きくするようにペナルティを与えます。
  • 顔認証、人物再識別(Re-ID)、類似画像検索など、データ間の類似度や距離が重要なタスクで広く利用されています。
  • SimCLRやMoCoといった近年の自己教師あり学習フレームワークでも、強力な特徴表現を学習するためにContrastive Lossの考え方が用いられています。

数学的定義:
2つのサンプル \(x_i\) と \(x_j\) が与えられたとき、これらの特徴空間上の距離を \(d(z_i, z_j)\) とします(\(z\) はエンコーダーによる特徴表現)。ラベル \(y_{ij}\) は、\(x_i\) と \(x_j\) が類似している場合に0、非類似の場合に1とします。Contrastive Lossは、マージン \(m\) を用いて以下のように定義されることがあります。
$$
L_{\text{Contrastive}}(z_i, z_j, y_{ij}) = y_{ij} \max(0, d(z_i, z_j) – m) + (1 – y_{ij}) d(z_i, z_j)
$$
ここで、\(y_{ij}=0\) の場合(類似ペア)は距離 \(d\) を最小化しようとし、\(y_{ij}=1\) の場合(非類似ペア)は距離がマージン \(m\) より小さい場合にペナルティを与え、距離を \(m\) より大きくしようとします。

Ranking Loss

Ranking Loss(ランキング損失)は、入力データのグループ間の相対的な順序や距離関係を学習するための損失関数です。特に、与えられたアンカーサンプルに対して、PositiveサンプルはNegativeサンプルよりも近くに位置するように学習を促す形式が多く、代表的なものに Triplet Loss があります。

特徴:

  • 類似度に基づくランキングやマッチングが重要なタスクに適用されます。
  • Triplet Lossは、アンカー(基準となるサンプル)、ポジティブ(アンカーと類似したサンプル)、ネガティブ(アンカーと非類似なサンプル)の3つのサンプル(トリプレット)を組み合わせて使用します。
  • 人物再識別(Re-ID)、情報検索、推薦システム、顔認証など、特定のサンプルに対して最も類似性の高いサンプルを見つけ出すようなタスクで有効です。

数学的定義:
アンカーサンプル \(a\)、ポジティブサンプル \(p\)、ネガティブサンプル \(n\) の特徴空間上の距離をそれぞれ \(d(z_a, z_p)\)、\(d(z_a, z_n)\) とします。Triplet Lossは、ポジティブペアの距離がネガティブペアの距離よりも少なくともマージン \(\alpha\) だけ小さくなるように学習を促します。
$$
L_{\text{Triplet}}(z_a, z_p, z_n) = \max(0, d(z_a, z_p)^2 – d(z_a, z_n)^2 + \alpha)
$$
ここで、距離には通常L2ノルムの二乗などが用いられます。この損失は、 \(d(z_a, z_p)^2 + \alpha < d(z_a, z_n)^2\) となる場合に損失がゼロとなり、それ以外の場合にペナルティが発生します。Triplet Loss以外にも、Pairwise Ranking Lossなど、様々なRanking Lossが存在します。

その他のタスク

これまでに分類したタスクに直接は当てはまらないものの、特定の応用分野やモデルアーキテクチャにおいて重要な役割を果たす損失関数が数多く存在します。ここでは、そうした「その他の」損失関数についていくつか紹介します。

Kullback-Leibler (KL) divergence

Kullback-Leibler (KL) divergence(カルバック・ライブラー情報量)は、2つの確率分布 \(P\) と \(Q\) の間の違いを測る非対称な尺度です。 \(P\) から \(Q\) へのKLダイバージェンスは、 \(P\) を基準としたときに \(Q\) がどれだけ異なるかを示します。

特徴:

  • 一方向性の「距離」であり、\(D_{\text{KL}}(P | Q) \neq D_{\text{KL}}(Q | P)\) です。
  • 深層学習では、主にモデルの出力分布を目標とする分布に近づけたい場合や、潜在変数などの分布を特定の分布(例: 標準ガウス分布)に近づけたい場合に使用されます。
  • Variational Autoencoder (VAE) において、エンコーダーが出力する潜在空間の分布を正則化するため(事前分布に近づけるため)に重要な項として用いられます。
  • 知識蒸留(Knowledge Distillation) において、大きなモデル(Teacher)の出力確率分布を小さなモデル(Student)に模倣させるためにも使用されます。

数学的定義:
離散確率分布の場合、KL divergenceは以下で定義されます。
$$
D_{\text{KL}}(P | Q) = \sum_i P(i) \log \frac{P(i)}{Q(i)}
$$
連続確率分布の場合、確率密度関数を用いて以下で定義されます。
$$D_{\text{KL}}(P | Q) = \int_{-\infty}^{\infty} p(x) \log \frac{p(x)}{q(x)} dx
$$
損失関数としては、このKL divergenceを最小化することを目指します。

Mahalanobis distance

Mahalanobis distance(マハラノビス距離)は、データの相関関係を考慮した距離尺度です。単に各次元の差を測るユークリッド距離とは異なり、特徴間の共分散を考慮に入れることで、データの分布形状に基づいた距離を計算します。

特徴:

  • 特徴量が相関しているデータにおいて、より「意味のある」距離を測ることができます。
  • 異常検知において、正常データの分布からどれだけ外れているかを測る尺度として有効です。
  • クラス分類やクラスタリング、Metric Learningなど、データの類似度や距離が重要なタスクで利用されることがあります。

数学的定義:
ベクトル \(x\) とデータセットの平均ベクトル \(\mu\) との間のマハラノビス距離は、データセットの共分散行列を \(\Sigma\) とすると、以下で定義されます。
$$
D_M(x) = \sqrt{(x – \mu)^T \Sigma^{-1} (x – \mu)}
$$
2つのベクトル \(x_i\) と \(x_j\) の間のマハラノビス距離は、共分散行列 \(\Sigma\) を用いて以下で定義されます。
$$
D_M(x_i, x_j) = \sqrt{(x_i – x_j)^T \Sigma^{-1} (x_i – x_j)}
$$
深層学習においては、学習可能な共分散行列や、特徴抽出ネットワークと組み合わせて利用されることがあります。

Re-Identification (Re-ID) Loss

Re-Identification (Re-ID) Lossは、特に人物再識別(Person Re-ID)や物体再識別タスクに特化した損失関数です。これは、異なるカメラや時間、姿勢などの変化がある状況で、同一の人物や物体を識別するタスクです。

特徴:

  • 同一のIDを持つ異なる画像ペアは特徴空間で近くに、異なるIDを持つ画像ペアは遠くに配置されるように学習を促します。
  • 前述の Contrastive LossRanking Loss (Triplet Lossなど) がRe-IDタスクの損失として広く用いられます。これらの損失は、類似ペアと非類似ペア間の距離を最適化することで、識別性の高い特徴表現を獲得することを目指します。
  • その他にも、ID損失(通常の分類損失で各個人をクラスとして扱う)と組み合わせたり、特定のRe-IDデータセットの特性に合わせた様々な損失関数が提案されています。

Temporal consistency Loss

Temporal consistency Loss(時間的一貫性損失)は、動画のような時系列データにおいて、時間的に連続するフレーム間でのモデルの出力(予測や特徴表現)が一貫していることを強制するための損失関数です。

特徴:

  • 動画内の物体の追跡、姿勢推定、Optical Flow推定、Depth推定など、時間的な滑らかさや安定性が重要なタスクで利用されます。
  • 連続するフレームに対してモデルがほぼ同じ出力をするように、あるいは出力の変化が滑らかになるようにペナルティを与えます。

数学的な考え方:
時間的に連続するフレーム \(t\) と \(t+1\) におけるモデルの出力(または特徴表現)をそれぞれ \(O_t\) と \(O_{t+1}\) とすると、Temporal consistency Lossはこれらの差のノルムとして定義されることが多いです。
$$
L_{\text{Temporal}} = |O_t – O_{t+1}|^2
$$
あるいは、Optical Flowなどを用いてフレーム間の動きを考慮した上での一貫性を計算する場合もあります。

Cycle consistency Loss

Cycle consistency Loss(サイクル一貫性損失)は、特に教師なし画像変換タスク(例: あるドメインの画像を別のドメインの画像に変換する際に、対応するペアデータがない場合)で重要な役割を果たします。あるドメインAからドメインBへの変換と、ドメインBからドメインAへの逆変換を連続して行った場合に、元の画像が復元されることを強制する損失です。

特徴:

  • 対応する入出力ペアデータがない状況でも、ドメイン間のマッピングを学習することを可能にします。
  • 有名な教師なし画像変換モデルである CycleGAN で導入され、成功を収めました。
  • 「ドメインA -> ドメインB -> ドメインA」というサイクルと、「ドメインB -> ドメインA -> ドメインB」というサイクルの両方に対して一貫性を課します。

数学的な考え方:
ドメインAからBへの生成器を \(G_{A \to B}\)、ドメインBからAへの生成器を \(G_{B \to A}\) とします。ドメインAの画像 \(x_A\) を変換し、さらにそれを逆変換した場合の画像 \(x_A \to G_{A \to B}(x_A) \to G_{B \to A}(G_{A \to B}(x_A))\) が元の \(x_A\) に戻るように、L1ノルムなどでペナルティを与えます。
$$
L_{\text{Cycle_A}} = | x_A – G_{B \to A}(G_{A \to B}(x_A)) |_1
$$同様に、ドメインBの画像 \(x_B\) に対してもサイクル一貫性を課します。
$$
L_{\text{Cycle_B}} = | x_B – G_{A \to B}(G_{B \to A}(x_B)) |_1
$$
全体のCycle consistency Lossはこれらの合計となります。

Motion consistency Loss

Motion consistency Loss(モーション一貫性損失)は、動画や複数の視点からの画像データにおいて、推定された動き(Optical Flow、カメラの自己運動など)が物理的に、あるいは時間的に矛盾しないことを強制するための損失関数です。

特徴:

  • Visual Odometry(カメラの動き推定)、Structure from Motion(シーンの3次元構造とカメラの動き同時推定)、動画理解などのタスクで、推定される動きの精度と安定性を向上させるために使用されます。
  • 例えば、ある時点でのカメラの動きと、その後の時点でのカメラの動きが、物理的に滑らかにつながるように制約を課したり、異なる方法で推定された動きが一致するようにしたりします。

数学的な考え方:
具体的な定式化はタスクによりますが、例えば、フレーム \(t\) から \(t+1\) への動き推定結果と、\(t+1\) から \(t+2\) への動き推定結果が、合成したときにフレーム \(t\) から \(t+2\) への動きと整合性が取れるように、差のノルムなどを最小化する形で表現されることが多いです。

Content Loss (一般的な意味)

Content Lossという用語は、スタイル変換の文脈で特定の損失を指すことが多いですが、より一般的な意味で、生成されたデータが元のデータや目標データの「内容」や「情報」をどれだけ保持しているかを評価し、その差にペナルティを与える損失全般を指すこともあります。

特徴:

  • スタイル変換以外の画像生成や変換タスク(例: 画像修復、超解像における詳細の復元)で、元の画像や目標画像の内容(物体、構造、テクスチャなど)を失わないように学習を促すために使用されます。
  • 実装としては、前述の Pixel-wise mean Loss (MSE, MAE) や、Perceptual Loss (この場合、スタイルではなく内容の類似性を重視する層を選択)などがContent Lossとして機能します。
  • 文脈によって意味する損失関数が異なる可能性があるため注意が必要です。

これらの損失関数は、深層学習が解決できるタスクの幅広さを示しており、それぞれのタスクの特性や目的に合わせて、適切な損失関数を選択し、場合によっては組み合わせて使用することが、モデルの性能を最大限に引き出す鍵となります。

おわりに

本記事では、深層学習における学習の羅針盤ともいえる損失関数について、その役割から主要な種類、そしてそれぞれの数式と応用タスクまでを広く概観しました。回帰、分類といった基本的なタスクから、物体検出、セグメンテーション、画像生成、さらには自己教師あり学習や特定の応用タスクに至るまで、深層学習が扱う多様な問題に対し、それぞれの目的に最適な損失関数が存在することを見てきました。

損失関数は単に誤差を測るだけでなく、モデルが何を「良い」予測とするかの基準を与え、誤差逆伝播法を通じてモデルの学習方向を決定する、深層学習の根幹をなす要素です。タスクの性質、データの特性、そして達成したい性能目標を深く理解し、適切な損失関数を選択することが、効果的な深層学習モデル開発への鍵となります。

深層学習の研究と応用が進むにつれて、新たな損失関数も日々提案されています。本記事が、深層学習における損失関数への理解を深め、今後の学習や開発の一助となれば幸いです。

More Information