以下の説明で使う変数一覧
目的: 滑らかな関数($\boldsymbol{y}=\boldsymbol{f}(\boldsymbol{x})$)を学習
損失(誤差)関数: 平均二乗誤差 (Kerasでの名称: mean_squared_error,mse)が一般的
$$ E(\boldsymbol{w})=\frac{1}{2}\sum_{n=1}^N ||\boldsymbol{d}_n-\boldsymbol{y}_n||^2 $$
目的: 入力をKクラス($K\ge 3$)に分類する。(K=2の場合は後述)
方法:
損失(誤差)関数
クロスエントロピー (交差エントロピー, Kerasでの名称は categorical_crossentropy)が一般的
$N$個の訓練データに対する対数尤度$L(\boldsymbol{w})=\log P(data|model)$は次式になる。
これを$N$で割って符号を反転したものがクロスエントロピーになる。
$d_{k}=1$なる訓練データに対してのみ($N=1$),上式を計算すると$-\log y_k$になる。
目的: 入力を2クラスに分類する
方法 : 1出力とし,その出力$y\in[0,1]$の値が$1/2$より大きいか否かでクラス判定をする。
誤差関数 : 二値交差エントロピー (Kerasでの名称:binary_crossentropy, logloss)を使うことが多い。 考え方は多クラス分類と同じだが,出力$y$と$1-y$がそれぞれクラス1,2に属する確率を表すことを使って変形すると以下になる。
$$ E(\boldsymbol{w})=-\sum_n^N(d_n\log y_n+(1-d_n)\log(1-y_n)) $$
Kerasでは,学習において最小化したい関数をloss function,学習とは無関係にモデルの性能評価のために用意する関数をmetricと呼び,日本語マニュアルでは前者を誤差関数,後者を評価関数と訳している。