ニューラル ネットワークの損失関数

活性化関数については、 「ニューラル ネットワークにおける一般的な活性化関数」の記事で説明されています。次の図は、活性化関数のサブセットです。

e51bb1b4675819c671ec5f424bf2b51c.png

ニューラル ネットワークの分野におけるもう 1 つの重要な関数は損失関数です。

損失関数は、ランダムイベントまたはそれに関連する確率変数を非負の実数にマッピングして、ランダムイベントの「リスク」または「損失」を表す関数であり、予測値と予測値との乖離の度合いを測定するために使用されます。実際の値。機械学習では、損失関数は目的関数の一種であるコスト関数の一部です。アプリケーションでは、損失関数は、学習基準としての最適化問題、つまり、損失関数を最小化することによるモデルの解決と評価に関連付けられることがよくあります。

c167cb59927fb0ae14807750c460b182.jpeg

ここでは、いくつかの一般的な損失関数とその簡潔な使用例を簡単に説明します。理解を容易にするために、損失関数は、分類指向の損失関数と回帰指向の損失関数の 2 つのカテゴリに分類されます。さまざまな損失関数の比較を容易にするために、多くの場合、回帰問題では y−f(x)、分類問題では yf(x) となる一変量関数として表現されます。

分類指向の損失関数

二項分類問題 y∈{−1,+1} の場合、損失関数は yf(x) に関して単調減少形式で表されることがよくあります。yf(x) はマージンと呼ばれ、損失関数の最小化はマージンを最大化するプロセスとも見なされます。修飾された分類損失関数はマージン < 0 のサンプルに大きなペナルティを課す必要があります。

クロスエントロピー損失損失関数

物理学におけるエントロピーは、熱力学系の無秩序の程度を表します。情報の定量的測定の問題を解決するために、シャノンは 1948 年に不確実性の測定を表す対数関数を使用した「情報エントロピー」の概念を提案しました。エントロピーが大きいほど多くの情報を送信でき、エントロピーが小さいほど送信できる情報は少なくなり、エントロピーは情報量として直接理解できます。

クロス エントロピー (クロス エントロピー、CE) は 2 つの確率分布間の距離を表し、入力サンプルが特定のクラスに属すると予測する確率を表すため、分類問題により適しています。

クロス エントロピー損失関数 (負の対数損失) は、出力が 0 から 1 までの確率値である分類モデルのパフォーマンスを測定し、バイナリ問題や多分類問題でよく使用されます。クロスエントロピー損失は、予測された確率値が実際のラベルから離れるにつれて増加します。完璧なモデルでは、予測値が実際の値と一致するため、損失はゼロになります。

バイナリ分類の場合、クロスエントロピー損失の式は次のとおりです。

dbc00483d21edcc96768c5f315011196.jpeg

多分類タスクでは、ソフトマックス活性化関数 + クロスエントロピー損失関数がよく使用されます。これは、クロスエントロピーが 2 つの確率分布の差を記述するためですが、ニューラル ネットワークの出力は確率分布の形式ではなくベクトルであるためです。 。したがって、ソフトマックス活性化関数は、ベクトルを確率分布の形式に「正規化」し、クロスエントロピー損失関数を使用して損失を計算する必要があります。

複数分類の場合、クロスエントロピー損失の式は次のとおりです。

da32bc3e97cb27a12557ac0efd33501d.png

Focal Loss 損失関数

Focal loss 損失関数は、1 段階ターゲット検出における正サンプルと負サンプル間の極端な不均衡の問題を解決するためのもので、密集ターゲット検出用の損失関数です。これは、オブジェクトの検出と分類の問題のためにディープ ニューラル ネットワークをトレーニングする場合に最も一般的な選択肢の 1 つです。

49320821574d37bcfa8928256b8761d5.jpeg

焦点損失損失関数はバイナリ クロス エントロピーに基づいており、動的なスケーリング係数を通じて、識別しやすいサンプルの重みをトレーニング中に動的に減らすことができるため、識別が困難なサンプルに重心をすぐに集中させることができます。 -サンプルを区別します。これらのサンプルは正のサンプルまたは負のサンプルである可能性がありますが、それらはすべてネットワークのトレーニングに役立つサンプルです。

387c7d1074817d760bd940f671f34633.png

焦点損失関数は、動的にスケーリングされたクロスエントロピー損失を計算します。正しいクラスの信頼性が高まるにつれて、スケール係数はゼロに減衰します。

ポリロス損失関数

クロスエントロピー損失関数とフォーカルロス損失関数は、ディープ ニューラル ネットワーク分類問題のトレーニングで最も一般的に使用される選択肢です。ただし、一般に、優れた損失関数はより柔軟な形式をとることができ、さまざまなタスクやデータセットに合わせて調整する必要があります。

損失関数は多項式関数の線形結合と考えることができ、関数はテイラー展開で近似されます。多項式展開では、焦点損失はクロスエントロピー損失に対する多項式係数の水平方向の変位です。多項式係数を垂直方向に変更すると、Polyloss の計算式が得られます。

a370a1ce9a80c970b8040ae0c3ec228e.png

Polyloss は、クロスエントロピー損失損失関数の一般化された形式です。

Hinge Loss 損失関数

ヒンジ損失損失関数は通常、バイナリ分類シナリオに適しており、間隔の最大化の問題を解決するために使用できます。有名な SVM アルゴリズムでよく使用されます。

ヒンジ損失関数は、「最大マージン」の分類に適した凸関数であるため、機械学習で一般的に使用される多くの凸オプティマイザーで利用できます。

3a63e51c9af256a5e239807c89508515.png

ヒンジ損失関数は、分類境界からの差または距離をコスト計算に組み込みます。新しい観測値が正しく分類された場合でも、決定境界間のギャップが十分に大きくない場合、損失が直線的に増加するというペナルティが課せられます。

一般化されたエンドツーエンド損失損失関数

一般化されたエンドツーエンド損失関数 (略して GE2E) は、話者検証のための一般化されたエンドツーエンド損失関数です。

話者照合とは、入力された音声が特定の話者のものであるかどうかを照合する作業を指します。ここでは登録発話と照合発話の 2 つの概念があり、前者は予約された「声紋」として理解でき、後者は照合に使用されます。声。これはさらに、テキスト依存話者検証 (TD-SV) とテキスト非依存検証 (TI-SV) の 2 つのタスクに細分されます。TD-SVでは認証に使用する音声の内容に一定の制限があり、代表的な例としてSiriが挙げられますが、この際「Hey,siri」と定型文を発話する必要があります。これに対し、TI-SV では発言内容に一切の制限を設けておりません。

GE2E は、タプルベースのエンドツーエンド (TE2E) 損失損失関数よりも話者検証モデルのトレーニングを効率的にし、高速な収束と簡単な実装という利点を備えています。

4be50e5f5f653be71b31269e80598885.png

GE2E では、パラメーターを更新するときにネットワークが区別しにくいデータに焦点を当てるため、トレーニング前にサンプルを選択する必要がありません。また、GE2E Lossでは初期段階で事例を選択する必要がありません。

加算的な角度マージン損失損失関数

加法的角度マージン損失 (AAM) は主に顔認識で使用されますが、音声認識などの他の分野にも適用されています。

ディープ畳み込みニューラル ネットワーク (DCNN) を使用した大規模な顔認識のための特徴学習における主な課題の 1 つは、認識能力を向上させるために適切な損失関数を設計する方法です。中心損失は、クラス内のコンパクト性を達成するために、ユークリッド空間内の深いフィーチャとそれに対応するクラス中心の間の距離にペナルティを与えます。最後の完全に接続された層の線形マッピング行列を使用して角度空間内のクラス中心を表すことができ、深い特徴とそれに対応する重みの間の角度には乗算的にペナルティが課されると想定されます。一般的な研究の方向性は、確立された損失関数に予備マージンを組み込んで顔の分離性を最大化することです。

AAM Loss (ArcFace) は、超球面上の測地線距離に正確に対応するため、明確な幾何学的解釈 (他の損失関数を上回る性能) を備えた高度に識別可能な特徴を取得します。ArcFace は常に最先端のパフォーマンスを上回り、ごくわずかな計算オーバーヘッドで簡単に実装できます。

bb64403cab7240bc6974485e1be115e7.png

具体的には、提案された円弧 cos(θ+m) は、L2 正規化された重みと特徴に基づいて、角度 (円弧) 空間内の決定境界を直接最大化します。

三重項損失損失関数

Triplet Loss は元々、同じ人物の異なるポーズや角度での顔認識を学習するために使用されました。トリプレット損失は、基準入力 (アンカーと呼ばれる) が一致する入力 (正の値と呼ばれる) および一致しない入力 (負の値と呼ばれる) と比較される機械学習アルゴリズムの損失関数です。

顔を認識するようにニューラル ネットワークをトレーニングするタスクを考えてみましょう (厳重なセキュリティ エリアへの立ち入りなど)。新しい人物が顔データベースに追加されるたびに、トレーニングされた分類器を再トレーニングする必要があります。これは、問題を分類問題ではなく類似性学習問題にすることで回避できます。ここで、ネットワークは、画像が既知の人物のものである場合には小さく、画像が未知の人物のものである場合には大きい距離を出力するように (コントラスト損失を使用して) トレーニングされています。ただし、特定の画像に最も近い画像を出力したい場合は、類似性だけでなくランキングも知りたいと考えます。この場合、三重損失が使用されます。

d6d5639eba42ae5872c911bdc39a188d.png

ここで、 d は距離関数を表します。これは通常、埋め込みでのユークリッド距離計算を指します。明らかに、トリプレットロスでは、a と p の間の距離をできるだけ小さくし、a と n の間の距離をできるだけ大きくしたいと考えています。

トレーニングでトリプレット損失を使用するための重要な選択は、ネガティブ サンプルを選択する必要があることです。これは、ネガティブ サンプル選択またはトリプレット コレクションと呼ばれます。選択した戦略は、トレーニングの効率と最終的なパフォーマンス結果に大きな影響を与える可能性があります。明らかな戦略は、単純なトリプルは損失が 0 であり、最適化に役立たないため、できるだけ多くサンプリングする必要があるということです。

InfoNCE Loss 損失関数

InfoNCE Loss 損失関数は、NCE Loss 損失関数から発展した、コントラストに基づく損失関数です。

NCE は、多分類問題を二項分類問題に変換するサンプリングベースの手法です。言語モデルを例にとると、NCE を使用すると、語彙から特定の単語を予測する多分類問題を、ターゲット単語とノイズ単語を区別する 2 値分類問題に変換できます。1 つのクラスはデータ カテゴリ データ サンプルであり、もう1つのクラスはノイズカテゴリのノイズサンプルで、データサンプルとノイズサンプルの違いを学習し、データサンプルとノイズサンプルを比較すること、つまり「ノイズ対比(ノイズ対比)」により、データの何らかの特徴を発見します。

情報 NCE 損失は NCE の単純な変形です。問題をデータ サンプルとノイズ サンプルのみの 2 つのカテゴリとしてのみ考えると、多くのノイズ サンプルが認識されない可能性があるため、モデル学習には適さない可能性があると考えられます。したがって、これを多重分類問題とみなす方が合理的です。

816405a3bdbc56fc5fd2dfee68f05460.png

InfoNCE (Noise Contrastive Estimation の略) は、カテゴリカルクロスエントロピー損失を使用して、相関のないノイズの多いサンプルのセット内の正のサンプルを識別する自己教師あり学習用の対比損失関数です。InfoNCE Loss は、NCE Loss の 2 値分類やクロスエントロピー損失関数の完全な分類ではなく、N 個のサンプルを K カテゴリに分割することです。

Dice Loss 損失関数

Dice 損失関数は、2 つのサンプル間の類似性を測定するために 1940 年代に開発された統計手法である Sørensen-Dice 係数から導出されます。Dice 係数の値が大きいほど、2 つのサンプルがより類似していることを意味します。

Dice Loss はセマンティック セグメンテーション問題でよく使用されますが、2 カテゴリ セグメンテーション問題では、実際のセグメンテーション ラベルは 0 と 1 の 2 つの値のみを持ちます。マルチカテゴリ セグメンテーション問題の場合、ダイス損失は、F1 スコアの高度な抽象化である F1 スコアを直接最適化することで得られます。

2016 年に、Milletari らは、3D 医療画像セグメンテーションのためにこれをコンピューター ビジョン コミュニティに導入しました。分母項が 0 にならないようにするために、一般に分子と分母の両方に平滑化係数として小さな数値を追加します。これはラプラス平滑化項としても知られています。ダイスロスには次の主な特徴があります。

  • これは、見込み客のマイニングに焦点を当て、陽性サンプルと陰性サンプルのバランスが取れていない状況に有益です。

  • トレーニング プロセス中に、小さなターゲットが多数ある場合、発振が発生しやすくなります。

  • 極端な場合には、勾配の飽和が発生します。

99c761fc668c8400c4256fadeb75d684.png

集合理論の観点から見ると、DSC は 2 つの集合間の重複の尺度です。たとえば、2 つのセット A と B が完全に重なっている場合、Dice 係数の最大値は 1 になります。それ以外の場合、Dice 係数は減少し始め、2 つのセットがまったく重ならない場合、Dice 係数の最小値は 0 になります。

9cb63f07ac69b19005dd9245123bc4f3.jpeg

したがって、DSC の範囲は 0 ~ 1 であり、大きいほど優れています。したがって、1-DSC をダイスの損失として使用して、2 つのセット間のオーバーラップを最大化できます。

証拠金ランキング 損失損失関数

名前が示すように、マージン ランキング ロス損失関数は主にランキング問題に使用され、対決ネットワークでも使用されます。マージン ランキング損失は、入力 X1、X2、および 1 または -1 を含むラベル テンソル y の損失を計算します。y の値が 1 の場合、最初の入力の方が大きい値とみなされ、2 番目の入力よりも上位にランクされます。同様に、y = -1 の場合、2 番目の入力は上位にソートされます。

39f07e7b1dc9fc2d285ca23bc6e31570.png

マージン ランキング ロスは、入力間の相対的な距離を予測するための基準を計算します。これは、指定された入力セットから直接予測を行うことを学習する MSE やクロスエントロピーなどの他の損失関数とは異なります。

対比損失損失関数

不変マッピングの学習の次元削減要件を考慮すると、コントラスト損失は、ラベル情報をより効率的に使用できるクロスエントロピーの代替損失関数です。

シャム ネットワークでは、使用される損失関数は対照的損失です。この損失関数は、シャム ニューラル ネットワークのペア データ間の関係を効果的に処理できます。必ずしも 2 つのネット形式である必要はありませんが、1 つのネットと 1 つのネットでも構いません。 2アウト。

a7f5911e9c94bc2f04004bf91a63a100.jpeg

埋め込み空間では、同じクラスの点のクラスターが引き寄せられる一方、異なるクラスのサンプルのクラスターは押しのけられます。Contrastive は、ネットワークの出力を正のサンプルとして使用し、ネットワークから同じインスタンスまでの距離を計算し、それをネットワークから負のインスタンスまでの距離と比較します。対比損失は、正の例 (同じクラスの例) と負の例 (異なるクラスの例) の間の距離を計算します。したがって、正の例が(この埋め込み空間で)同様の例にエンコードされ、負の例がさらに異なる表現にエンコードされる場合、損失は低いことが期待できます。

多重マイナスランキング損失損失関数

文表現フィールドの中核は、実際には暗黙的に規定された否定例です。たとえば、アンカー文と 1 つの肯定例のみで、同じバッチ内の他の文は否定例であるか、アンカー文、肯定例、難しい否定例のセットを指定します。たとえば、同じバッチ内の他のステートメントはすべて負の例などです。使用される損失関数は主に複数の負のランキング損失であり、数式は次のとおりです。

8cb328b8f87bb49180cc08908e6294d0.png

この損失関数は、n-1 個のネガティブ ドキュメントの各バッチをランダムにサンプリングするため、取得設定でポジティブ ペア (クエリ、relevant_doc など) を使用するように埋め込みをトレーニングするのに適しています。一般に、バッチ サイズが大きくなるとパフォーマンスが向上します。

効率的な文埋め込み問題では、Multiple Negative Rank Loss 損失関数でトレーニングされたモデルには特定の利点があります。

回帰指向の損失関数

回帰問題では、y と f(x) は両方とも実数 ∈ R であるため、残差 y−f(x) を使用して 2 つの間の不一致の程度が測定されます。残差 (絶対値) が大きいほど、損失関数が大きくなり、学習されたモデルの効果が悪くなります (ここでは正則化問題は考慮されていません)。

dc98e3653afb787338a21d7c511ab944.png

MAE または L1 Loss 損失関数

名前が示すように、平均平均誤差 (MAE) は、実際の値と予測値の間の絶対差の平均合計を計算し、「L1 損失関数」としても知られています。誤差の方向に関係なく、一連の予測にわたる誤差の平均サイズを測定します。方向も考慮すると、残差または誤差の合計である平均バイアス誤差 (MBE) と呼ばれ、その損失範囲も 0 ~ ∞ になります。

6c8cca5b2080bb5b499717f1e24bf7e5.png

外れ値 (データの残りの部分と大きく異なる値) が存在するため、回帰問題には本質的に厳密にはガウス分布ではない変数が含まれる場合があります。この場合、平均絶対誤差は外れ値 (非現実的に高い正または負の値) の方向を考慮しないため、理想的な選択となります。

L1 損失関数は、絶対誤差を距離として取り、誤差を最小限に抑えるために使用されます。L1 は外れ値の影響を受けないため、データセットに外れ値が含まれる場合は L1 が推奨されます。さらに、その収束速度は速く、勾配に「平等な扱い」ではなく適切なペナルティ重みを与えることができるため、勾配更新の方向をより正確にすることができます。

MSE または L2 Loss 損失関数

平均二乗誤差 (平均二乗誤差、MSE) は、実際の値と予測値の差の二乗の平均であり、最も一般的に使用される回帰損失関数であり、「L2 損失関数」としても知られています。MSE は、ターゲット変数と予測値の間の距離の二乗の合計です。

c0b38bab587b0d796bb29a294a142b98.png

L2 損失関数はエラーを最小限に抑えるために使用され、L1 よりも優先度の高い損失関数でもあります。ただし、データセットに外れ値がある場合、差の 2 乗により誤差が大きくなるため、L2 は適切なパフォーマンスを発揮しません。

つまり、L2 を使用すると解決が容易になりますが、L1 を使用すると外れ値に対してより堅牢になります。

Huber Loss 損失関数

Huber Loss は、MSE と MAE を組み合わせ、両方の利点を活かした損失関数であり、Smooth Mean Absolute Error Loss (Smooth L1 loss) とも呼ばれます。フーバー損失は回帰で使用される損失関数でもあり、誤差二乗損失よりもデータの外れ値の影響を受けにくいです。外れ値の影響を受けず、非常に小さく微分可能であるため、損失関数は良好な特性を持ちます。

誤差が小さい場合は、Huber Loss の MSE 部分を使用し、誤差が大きい場合は、Huber Loss の MAE 部分を使用します。新しいハイパーパラメータ δ が導入され、損失関数に MSE から MAE に切り替える場所を指示します。MSE から MAE への移行を滑らかにするために、損失関数にδ項が導入されています。Huber 損失関数は、推定プロセスによって生成される損失を表します。F Huber 損失セグメントは、損失関数を定義します。

99f0f42fee97b99ad83b0fdbecda3f19.png

この関数は二次関数であり、2 つの点「a」= δ で値が等しく、傾きの異なる部分があります。変数 a は通常、残差、つまり観測値と予測値の差を指します。A = yf (x) であるため、前者は次のように拡張できます。

90f74b767f81de686d029ea1cbfb5059.png

つまり、Huber Loss は MSE の外れ値の堅牢性を強化し、外れ値に対する感度を低下させます。誤差が大きい場合、MAE を使用すると外れ値の影響を軽減し、トレーニングをより堅牢にすることができます。その減少速度は MAE と MSE の間であり、損失における MAE の減少の遅さを補い、MSE に近づいています。

まとめ

ニューラル ネットワークでは、損失関数はニューラル ネットワークの予測出力と実際の出力の差の尺度であり、現在の出力と期待される出力の間の距離を計算します。これは、データがどのようにモデル化されているかを評価する方法であり、ニューラル ネットワークのパフォーマンスの尺度を提供し、トレーニング中の最適化のターゲットとして使用されます。損失関数が小さいほど、モデルの堅牢性は向上します。モデルの学習を導くのは損失関数です。

【参考資料と関連書籍】

おすすめ

転載: blog.csdn.net/wireless_com/article/details/131278169