ホームページ  >  記事  >  テクノロジー周辺機器  >  ツインニューラルネットワークにおける共通損失関数の適用

ツインニューラルネットワークにおける共通損失関数の適用

PHPz
PHPz転載
2024-01-23 13:06:181044ブラウズ

ツインニューラルネットワークにおける共通損失関数の適用

ツイン ニューラル ネットワークは、類似性の測定、分類、検索タスクによく使用される、二重分岐構造を持つニューラル ネットワークです。このようなネットワークの 2 つのブランチは、同じ構造とパラメータを持ちます。入力が 2 つのブランチをそれぞれ通過した後、類似度測定レイヤー (ユークリッド距離、マンハッタン距離など) を通じて類似度が計算されます。トレーニング中には、通常、対比損失関数または三重項損失関数が使用されます。

コントラスト損失関数は、ツイン ニューラル ネットワークのバイナリ分類損失関数です。類似サンプルの類似性を最大化して 1 に近づけ、異なるタイプのサンプルの類似性を減らすことを目的としています。サンプルは 0 に近づくように調整されます。その数式は次のとおりです。

L_{con}(y,d)=y\cdot d^2 (1-y)\cdot\max(m-d,0)^ 2

この損失関数は、2 つのサンプル間の類似性を測定するために使用され、サンプルのカテゴリに従って最適化されます。このうち、yはサンプルが同じカテゴリに属する​​かどうかを表し、dは2つのサンプルの類似度を表し、mは予め設定された境界値を表す。 y=1 の場合、損失関数の目標は、同じカテゴリの 2 つのサンプルがより類似している場合でも、d を可能な限り小さくすることです。このとき、損失関数の値はdの2乗で表すことができ、損失関数の値はd^2となります。 y=0 の場合、損失関数の目標は、2 つの異なるカテゴリのサンプルが可能な限り似ていない場合でも、d を m より大きくすることです。このとき、d が m 未満の場合、損失関数の値は d^2 となり、サンプル間の類似性を示します。d が m より大きい場合、損失関数の値は 0 となり、サンプル間の類似性を示します。サンプル間の距離が所定のレベルを超えています。境界値 m を設定し、損失を計算しません

トリプレット損失関数は、ツイン ニューラル ネットワークで使用される損失関数であり、サンプル間の損失を最小化することを目的としています。類似したサンプル間の距離、および異なるクラスのサンプル間の距離を最大化します。この関数の数式は次のとおりです。

L_{tri}(a,p,n)=\max(|f(a)-f(p)|^2 - |f(a)-f(n)|^2 margin,0)

これらのうち、a はアンカー サンプルを表し、p は同じ種類のサンプルを表し、n はアンカー サンプルを表します。異なるタイプのサンプル、f はツイン ニューラル ネットワークの特徴抽出層を表し、|\cdot| はユークリッド距離を表し、margin は事前に設定された境界値を表します。損失関数の目標は、同じタイプのサンプル間の距離をできるだけ小さくし、異なるタイプのサンプル間の距離をできるだけ大きく、マージンより大きくすることです。同じ種類のサンプル間の距離が、異なる種類のサンプルの距離からマージンを差し引いた値より小さい場合、損失関数の値は 0 になります。同じ種類のサンプル間の距離が、異なる種類のサンプルの距離より大きい場合、損失関数の値は 0 になります。マージンを差し引いた場合、損失関数の値は 2 つの距離の差になります。

コントラスト損失関数とトリプレット損失関数は、一般的に使用されるツイン ニューラル ネットワーク損失関数です。これらの目標は、特徴空間内で同じカテゴリのサンプルを可能な限り近づけること、および、異なるカテゴリ サンプルは特徴空間内で可能な限り離れています。実際のアプリケーションでは、特定のタスクとデータセットに基づいて適切な損失関数を選択し、モデルを最適化するための他の手法 (データ拡張、正則化など) と組み合わせることができます。

以上がツインニューラルネットワークにおける共通損失関数の適用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は163.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。