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