クロスエントロピーは、情報理論と機械学習における基礎的な概念であり、分類問題の損失関数として機能します。これは、真の分布(多くの場合、正解ラベル)と予測分布(モデルの出力)という2つの確率分布間の非類似度を定量化します。ニューラルネットワークの文脈では、クロスエントロピーは画像分類、自然言語処理、音声認識などのタスクでモデルを学習させるために広く用いられています。
定義
離散的な事象の集合に対する2つの確率分布 \(p\)(真)と \(q\)(予測)について、クロスエントロピーは次のように定義されます。
\[ H(p, q) = -\sum_{x} p(x) \log q(x) \]
分類では、\(p\) は通常、真のクラスの確率が1で他が0であるワンホットエンコードされたベクトルであり、\(q\) はモデルの出力確率(例えば、ソフトマックス層からの出力)です。クロスエントロピーは真のクラスの負の対数尤度に簡略化され、しばしば次のように記述されます。
\[ L = -\log q(y_{\text{true}}) \]
ここで、\(y_{\text{true}}\) は正解クラスのインデックスです。
機械学習における役割
クロスエントロピーは、マルチクラス分類における標準的な損失関数です。これは、誤った予測を高い確信度でペナルティし、モデルが正しいクラスに高い確率を割り当てることを奨励します。平均二乗誤差とは異なり、クロスエントロピーはソフトマックス出力と相性が良く、予測が誤っている場合に強い勾配を提供し、より速い収束を実現します。これは、2つの分布間の相対的エントロピーを測定するクルバック-ライブラー情報量と密接に関連しています。真の分布が固定されている場合、クロスエントロピーの最小化はKLダイバージェンスの最小化と等価です。
応用
クロスエントロピーは、さまざまな機械学習領域で使用されています。深層学習では、画像認識のための畳み込みニューラルネットワーク(CNNs)やシーケンスタスクのためのリカレントカルネットワークを含む分類ネットワークのデフォルトの損失です。自然言語処理では、モデルがシーケンス内の次のトークンを予測する言語モデリングや、大規模言語モデルで使用されるトランスフォーマーベースのアーキテクチャに採用されています。さらに、クロスエントロピーは、強化学習におけるポリシー勾配法や、変分オートがエンコーダのための教師なし学習にも使用されています。
バリエーションと拡張
特定の課題に対処するためのクロスエントロピーのバリエーションがいくつか存在します。カテゴリカルなクロスエントロピーはマルチクラス分類を扱い、一方バイナリクロスエントロピーはバイナリ関係分類タスクに使用されます。重み付けクロスエントロピーは、不均衡なデータセスを扱くためにクラスに異なる重みを割り当てます。フォーカルロスは、クロスエントロピーの修正版であり、容易な例に重みを減らして難しい例に重点を置き、物体検出の性能を向上させます。知識流通では、クロスエントロピーの緩和版(温度スケーリング)が、大規模な教師モデルから小規模な生徒モデルへの知識を移転します。
他の概念との関係
クロスエントロピーは情報에暗いに関連しており、\(p\) の分布からイベントを符号化するために \(q\) の最適化されたコードを使用するために必要なビットの平均数を表します。機械学習では、しばしばソフトマックス活性化機能と組み合わせて使用され、これが生のロジットを確率に変換します。ソフトマックスとクロスエントロピーの組み合わせは計算的に安定かつ効率的であり、勾配が予測確率と真のラベルの差に簡略化されるためです。この特性により、現代のほとんどのニューラルネットワークフレームワークで好ましい選択肢となっています。
歴史的背景
クロスエントロピーの概念は、1940年代のクロード・シャノンの情報理論の研究に起源を持つです。後には統計力学 や機械学習にも採用されました。損失関数としてのクロスエントロピーの使用は、1980年代から1990年代のニューラルネットワークの台頭とともに重要になりました。特に、バックプロパゲーションアルゴリズムのによる発展です。今日では、クロスエントロピーは教師あり学習の基礎であり、TensorFlowやPyTorchなどのすべての主要な深層学習ライブラリに実装されています。