blog

クロスエントロピーのコスト関数に関する見解

I. 2次コスト関数の不適切さ\nANNの設計目的の1つは、機械が人間のように知識を学習できるようにすることです。人が新しい物事を分析することを学ぶとき、より大きな間違いをしたことがわかったら、より大...

Feb 1, 2020 · 16 min. read
シェア

クロスエントロピー・コスト関数は、人工ニューラルネットワークの予測値を実際の値に対して測定する方法です。これは2次コスト関数よりも効果的にANNの学習を促進します。クロスエントロピーコスト関数を紹介するにあたり、本論文ではまず2次コスト関数とその欠点について簡単に紹介します。

I. 2次コスト関数の不備

ANNの設計目的のひとつは、機械が人間と同じように知識を学習できるようにすることです。例えば、バスケットボールのシュート。例えば、バスケットボールのシュート。正しい方向から遠ざかれば遠ざかるほど、シュートの角度を調整する必要があり、バスケットボールがバスケットに入りやすくなることを発見したとき。同様に、希望:ANNが学習されるとき、予測値と実際の値の誤差が大きければ、バックプロパゲーションの学習過程で様々なパラメータ調整の大きさを大きくして、学習が早く収束するようにします。しかし、ANNの学習に2次コスト関数を使用した場合、誤差が大きければ、パラメータ調整は小さくなり、学習は遅くなるという現実的な効果が見られます。

例として、2クラス分類のためのニューロンの学習について、2つの実験が実施されます:同一のサンプルデータx = 1.0が入力され、2つの実験のそれぞれがランダムにパラメータを初期化し、その結果、それぞれの最初の順伝播の後に異なる出力値が得られ、異なるコストが作成されます:

実験1:最初の出力値0.82

実験2:最初の出力値は0.98 実験1では、最初の出力値が0.82になるようにパラメータをランダムに初期化しました。300回の反復学習の後、出力値は0.82から0.09に低下し、実際の値に近づきました。一方、実験2では、最初の出力値が0.98であったのに対し、300回の反復学習の後、出力値は0.20に低下しました。

2つの実験のコスト曲線から、実験1のコストは訓練セッション数が増えるにつれて急速に減少しますが、実験2のコストは最初のうちは非常にゆっくりと減少することがわかります。直感的に、初期誤差が大きいほど収束が遅くなります。

実際、誤差が大きくトレーニングに時間がかかる原因は、2次コスト関数を使用しているためです。二次コスト関数の式は以下の通りです:

ここで、C はコスト、x はサンプル、y は実際の値、a は出力値、n はサンプルの総数を表します。簡単のため、同じサンプルを例にして説明すると、2次コスト関数が

現在、ANNの学習に最も効果的なアルゴリズムはバックプロパゲーション・アルゴリズムです。つまり、ANN の学習では、コストを削減する方向にバックプロパゲーショ ンすることで、パラメータを調整します。主なパラメータは、ニューロン間の接続重み w と各ニューロン自体のバイアス b です。パラメータを調整する方法は、勾配の方向に沿ってパラメータのサイズを調整する勾配降下アルゴリズムを使用することです:

ここで Z はニューロンの入力を表し、 は活性化関数を表します。上式から、wとbの勾配は活性化関数の勾配に正比例し、活性化関数の勾配が大きいほど、wとbの大きさの調整が早くなり、学習が早く終了することがわかります。ニューラルネットワークでよく使われる活性化関数はシグモイド関数で、その曲線は次のようになります。図に示すように、実験2の初期出力値に対応する勾配は実験1の出力値よりもかなり小さいため、実験2のパラメータの勾配は実験1よりも緩やかに減少します。これが、初期コストが高いほど学習が遅くなる理由です。人間のように、誤差が大きければ大きいほど修正が大きくなり、その結果学習が速くなるという予想とは矛盾しています。

一部の人々は、その後、勾配が変化しないか、または有意に活性化関数を変更することを選択すると、問題が解決されていない、と言うかもしれませんか?それは問題に対する単純な解決策ですが、より多くの問題を引き起こす可能性があります。また、シグモイドのような関数は多くの利点があり、活性化関数に非常に適しています!

クロスエントロピー・コスト関数の定義

では、どうすればこの問題を解決できるのでしょうか?二次コスト関数をクロス・ファースト関数に置き換えることが可能であることが示されています。クロス関数とは何かを理解するために、簡単な例を少し変えてみましょう。今、いくつかの入力変数を含むニューロンを学習させたいとします。 対応する重みは とバイアス ニューロンの出力は ここで は入力の重み付き和。このニューロンのクロス・ファースト・コスト関数は次のように定義されます。

ここで はトレーニングデータの総数で、総和はすべてのトレーニング入力に対して実行され はすべての訓練入力に対して実行され は対応する目標出力。クロスファーストコスト関数の場合、訓練サンプルの出力誤差は の出力誤差は

出力層の重みに関する偏導関数は

これで それが消えるので、クロス・ファーストは学習が遅れるという問題を回避できます。

では、どの時点で2次コスト関数をクロス・エントロピーに置き換えるべきなのでしょうか?実際、出力ニューロンが時間であれば、一般的にクロス・エントロピーの方が良い選択です。なぜでしょうか?ネットワークの重みとバイアスの初期化は、通常ある種のランダムな方法で行われます。例えば、目標出力が 実際の値がであったり、正反対であったりします。2次コスト関数を使用した場合、学習速度の低下につながります。これらの重みは他のサンプルからも学習され続けるので、学習プロセスが完全に終了するわけではありませんが、これは明らかに望ましい効果ではありません。

交差エントロピーの分類問題への応用

クロスエントロピー損失関数が分類問題に適用されるとき、カテゴリのラベルは、単一分類か多分類かに関係なく、0か1にしかなりません。

単一分類問題へのクロスエントロピーの適用

ここでいう単一カテゴリとは、各イメージサンプルが1つのカテゴリしか持たないことを意味します。クロスエントロピーは、基本的に単一カテゴリ問題における標準的なアプローチです。

上式は1サンプルの損失計算です。式中 カテゴリを表します。例は以下の通りです。

そうすれば

バッチに対応する損失は

mは現在のバッチ内のサンプル数

クロスエントロピーのマルチラベル問題への応用

ここでいう多カテゴリとは、各イメージサンプルが複数のカテゴリを持つことができることを意味し、例えば、猫と犬の両方を含むことは、単一の分類問題のラベルとは異なり、n-ホットです。

ここで注目すべきは、Predがシグモイド関数を用いて計算されていることです。各ノードの出力は[0,1]の間で正規化されます。言い換えれば、各ラベルは独立に分布し、互いに影響し合いません。クロス・エントロピーは各ノードについて個別に計算され、各ノードは2つの可能な値しか持たないので、二項分布になります。この二項分布の特殊な分布では、エントロピーの計算は単純化できます。

同様に、クロス・エントロピーの計算も単純化できます。

上の式は1つのノードのものであることに注意してください。これは、分類されていないイオスと区別する必要があります。この例は次のように計算できます:

1つのサンプルのLOSSはLOSSです。 各バッチの損失は

ここで、mは現在のバッチのサンプルサイズ、nはカテゴリの数です。

重みの導出のためのクロスエントロピー・コスト関数の証明

クロスエントロピー・コスト関数の定義:

コスト関数 を評価します。 偏導関数を求める

うち から、によれば 定義

わけ

の定義によると の定義によれば

持ち込む 持ち込む ストリータブル

そのベクトル形式は

同じ方法でバイアスを求めると、次のようになります。

クロスエントロピーの意味と起源

クロスエントロピーの議論は、代数的解析とコードの実装に焦点を当ててきました。これは有益なことですが、次のような、より広範な概念的な疑問が残されたままになっています。クロスエントロピーについて直感的に考える方法は存在するのか?どのようにしてこの概念を思いつくのでしょうか?

クロスエントロピーを考える動機は何でしょうか?学習速度が低下していることがわかり、その理由が2次コスト関数の場合、出力層の重みの偏導関数が

この用語は は、出力ニューロンが間違った値に引っかかると、学習速度の低下につながります。これらの公式を学ぶと、コスト関数を含まないものを選びたくなるかもしれません。 を含まないコスト関数を選びたくなるかもしれません。つまり、この時点で、学習サンプル を満たすコスト を満たします。

もし損失関数がこれらの条件を満たすように選択されれば、初期誤差が大きいほどニューロンの学習速度が速くなるという簡単な方法で特徴付けることができます。これにより、学習速度の低下の問題も解決できます。実際、これらの公式から出発して、数学的直感によって導かれるクロス・エントロピーの形を見ることが可能になりました。外挿すると、連鎖法則によって、次のようになります。

を使用すると 前の式は

式を比較すると

この方程式を これを積分すると

ここで constant は積分定数です。これは学習サンプル の寄与です。全体の損失関数を得るためには、すべてのトレーニングサンプルを平均する必要があります。

そしてここでの定数は、個々の定数の平均です。ですから、式

クロス・ファーストの形は一意に決定され、定数項が追加されます。このクロス・ファーストは、何もないところから作り出されたものではありません。むしろ、自然で単純な方法で得られた結果なのです。では、クロス・ファーストの直感的な意味は何でしょうか?どのように見えるのでしょうか?これを深く説明することは、私たちがあまり議論したくない領域に踏み込むことになります。とはいえ、情報理論に由来するクロスファーストの標準的な解釈の仕方があることには触れておきましょう。大雑把に言えば、クロスオーバーは「不確実性」の尺度です。特に、あるニューロンが関数 しかし、それは関数を使用します。しかし、それを関数に置き換えます。 関数に置き換えます。とします。 の確率を推定するとします。 の確率を推定するとします。 の確率は の確率であるとします。次に、クロスオーバーはまず、ニューロンの正しい値を平均的に学習する不確実性を測定します。 ニューロンの正しい値を平均的に学習する不確実性。 出力が望ましい結果であれば不確実性は小さくなり、そうでなければ不確実性は大きくなります。

もちろん、「不確実性」が実際に何を意味するのかを厳密に定義しているわけではないので、口先だけのように思われるかもしれません。しかし実際には、情報理論において不確実性とは何かを正確に定義する方法があります。詳しくはクロスオーバーの数学史をご覧ください。

クロス・エントロピーの数学史

一般的に、エントロピーはシステムの不確実性を表すのに使われます。例えば、熱力学的な定義と情報理論における定義は全く同じではありません。まず、「緩やかな」概念を示します:

エントロピー:事象Aの自己情報量、つまりAがどれだけの情報を含んでいるかを示すことができます。KL散乱:事象Bが事象Aから見てどの程度異なるかを示すのに使用可能。クロスエントロピー: 出来事Aから見て、出来事Bがどのように記述されているかを示すのに使用できます。

簡単に言うと、KL散乱はコストを計算するのに使うことができ、KL散乱を最小化することは、与えられた状況においてクロスエントロピーを最小化することと同じです。そしてクロス・エントロピーの方が計算が簡単なので、クロス・エントロピーがコストとして使われます。情報量

まず、情報量です。イベントA:ブラジルが2018年ワールドカップの決勝ラウンドに進出しました。出来事B:日本が2018年ワールドカップの決勝ラウンドに進出。

直感的にわかるのは、事象Aよりも事象Bの方が情報量が多いということです。なぜなら、事象Aは高い確率で起こり、事象Bは低い確率で起こるからです。ですから、より起こりそうもない出来事が起こったとき、より多くの情報が得られるのです。発生する可能性が高ければ高いほど、得られる情報量は少なくなります。そして、情報量は事象の発生確率に関連づけられるべきです。

ここで が離散確率変数で、その値の集合が で、確率分布関数 を定義します。 イベントの情報量は

これは確率なので エントロピーとは何ですか?

情報理論の文脈で言えば、ある事象に含まれる情報量のことです。今、情報量の定義があり、エントロピーはすべての情報量の期待値を表すために使われています:

2つの事象/分布の差の測定方法:kl分散

上記は、確率変数xを持つ事象Aの自己情報量についてです。確率変数xに関連する別の独立事象Bがある場合、それらの間の差はどのように計算するのでしょうか?デフォルトの計算がここに示されています:KL散布(KL距離と呼ばれることもあります)は、一般に2つの分布の差を計算するのに使われます。この名前は、2点間の距離の計算に似ているように見えますが、そうではありません。距離の対称性とは、AからBへの距離がBからAへの距離に等しいことを意味します。

KL分散の数学的定義:

相対エントロピーはKL散布とも呼ばれ、同じ確率変数xに対する2つの別々の確率分布P(x)とQ(x)の差の尺度です。ウィキペディアの相対エントロピーの定義

In the context of machine learning, DKL(PQ)は、Qの代わりにPを使用した場合に得られる情報利得と呼ばれることが多い。.

離散事象の場合、事象Aと事象Bの差は次のように定義できます:

連続的な事象の場合は、和を積分に変えるだけです。

式からわかるように

  • もし すなわち、2つの事象分布が同一であれば、KL散乱はゼロに等しくなります。
  • 式を見て、マイナス記号の左側が最初の事象Aであることがわかります。
  • 順番を逆にして そうすると,最初のBを使う必要があり,答えは違ってきます。つまり,KL散布図は,2つの分布AとBが対称かどうかを計算するために使われるのですが,そこには「座標系」の問題があります。

言い換えれば、KL散乱はA自身のエントロピーとAに対するBの期待値によって決まります。KL散乱を用いて2つの事象を測定する場合、上式の意味は、Aに対するAとBの対数差の期待値を求めることです。

KL散乱=クロスエントロピー-エントロピー?

2つの分布の差を計算するのに、デフォルトでKL散布が使われるのであれば、クロスエントロピーを持つ意味はあるのでしょうか?

実際、クロスファーストスキャッターとKLスキャッターの公式は非常によく似ており、実際にはKLスキャッターの後半部分です:AとBのクロスファーストスキャッター AとBのKLスキャッター - Aのファースト。

これはKL散布の公式と対照的です。

本格的なフォーミュラです:

これが十字架の公式です。

ここで最も重要な観察は が定数ならば つまり、ある条件下ではKL散乱とクロスオーバーは等価であるということです。

なぜクロスファーストが考慮されるのですか?

先ほどの続きで、モデルの分布を最小化すると を訓練データ を最小化することは,2つの分布間のKL散布を最小化すること,すなわち,2つの分布間のKL散布を最小化することと等価です. cf. セクション IV:

  • ここでAはデータの真の分布です:
  • ここでBは、モデルが学習データから学習した分布です:

偶然にも、訓練データの分布Aが与えられています。ということは、セクション4で述べたように、Aは固定されているので を求めることは を求めることと同じになります。クロス・ファーストは「学習されたモデル分布」と「学習データ分布」の差を計算するのに使えることがわかります。最良のモデル」は、クロス・ファーストが最も小さいときに学習されます。

しかし、完全に学習された学習データ分布は、しばしばオーバーフィッティングを意味します。なぜなら、学習データは実際のデータと同じではなく、似ていると仮定されるだけだからです。

したがって、機械学習モデルを評価する際には、訓練データでの誤分類率やクロスエントロピーだけでなく、テストデータでの性能に注目することが重要です。テストセットでのパフォーマンスも良好であれば、オーバーフィッティングやアンダーフィッティングのモデルではないと確信できます。クロスエントロピーは、多くの確率モデルと完璧に組み合わせることができるため、BERよりも多くの利点があります。

つまり、学習したモデルの分布を実際のデータ分布に近づけるために、モデルデータの分布と学習データの分布の間のKL散乱を最小化するという論理的な考え方があります。

等価であり、クロス・エントロピーの方がシンプルで計算しやすいので、もちろんクロス・エントロピーが使われます。

Read next

JSの世界とメモリー

コンピュータの電源がオンになると、電源はコンピュータ内のファームウェアに直接リンクされます。ファームウェアとは、ブートローダを含むコンピュータに組み込まれた記憶装置のことです。この時、このコンピュータシステムが起動し、オペレーティングシステムがメモリ内で起動します。 4.ユーザーがログインした後、シェルが開かれます。シェルにはbashシェルが含まれ、視覚化インターフェースもシェルとして見ることができます。

Feb 1, 2020 · 3 min read