損失関数の種類 / Types of Loss Function

機械学習における損失関数(Loss Function)の位置付けは、作成した学習ロジックに対する評価指標です。

 

正解データ z (zは実数の集合) に対し、入力データ x (xは実数の集合) を学習ロジックf に投入して得られたデータ y (yは実数の集合でzと同じ配列数) があった時、yがzに近ければ近いほど、 学習ロジック f は優秀であるといえます。

 

「近い」という尺度の概念は、1つの数直線上の評価です。つまり、ただの1次元の数字になるので、y = f(x) と z に対する損失関数 L (y, z) は 実数への写像になります。

 

2点間を測る指標です。片方(z)の方がより「正しく」て、検査対象(y)が正しいデータにどれだけ近いかを測るのが損失関数だと思えば、大まかな把握ができると思います。

 

ただし、いわゆる距離ではありません。zから見たyの損失とyから見たzの損失は必ずしも一致しないため、対象律が成立していません。距離函数 - Wikipedia

 

損失関数としては「クロスエントロピー (交差エントロピーとも言います、cross entoropy)」と「平均二乗誤差/MSE (Mean Squared Error)」がよく使用されています。

 

より直感的なのは、平均二乗誤差です。2つの実数 a ,b があった場合、比較に二乗平方根
 

{ \displaystyle \sqrt{(a-b)^2} }

がよく使われます。発想としては、これを複数の変数に対応して、平方根を外したものになります。平方根はとってもとらなくても順序は特に変わらないので、無駄な計算を省くために外しているものと考えると良いと思います。

こちらのサイトによくまとまっています。

www5e.biglobe.ne.jp

クロスエントロピーは、もう少し複雑で、2つデータを、それぞれのデータがもつ複雑さを表す指標(自己情報量と言います)で比較する手法です。

 

平均二乗誤差(MSE)は、回帰分析で使用されます。データ分類ではクロスエントロピーを使用します。

 

それぞれの具体的な出力をこちらの記事に書きました。

損失関数の出力サンプル / Output sample of Loss function - neuralnetな日記