活性化関数とコスト関数

[] [] []


活性化関数φやコスト関数Csigmoid2乗誤差以外のバリエーションもある。

(コスト関数は損失関数Lossと呼ぶ方が一般的だが、頭文字が層Layerとかぶるので避けた)

【活性化関数φ

前項でみたように、バックプロパゲーションを計算するにはφの微分が簡単に計算できなければならない。

expを使ったタイプとしてsoftmaxがある。これは複数個のクラス分類の出力層に使われるもので、k番目のクラスらしさを全クラスの和で割る。関数の形としてはsigmoidの平行移動なので、微分φ'=φ(1-φ)sigmoidと同じ形になる。

expよりもっと簡単なReLUもある。これはsigmoidだとzがある程度大きくなるとφ'(z)=0すなわちdC/dwもゼロになって学習が進まなくなる問題があったので、zが大きくなるとφ1を超えて大きくなるようにしたものである。関数の形としては一次式ではあるが途中で折れ曲がっているので一応非線形になっている。

sigmoid

softmax

ReLU

ちなみに次項のCNNでは最大を選ぶプーリングという演算も使うが、これも微分が簡単なのでパックプロパゲーションに支障はない。

◇◇

【コスト関数】

複数個のクラス分類にはクロスエントロピーというものが使われる。そのクラスらしさを期待値0<t<1として、出力y1に近いほどCが小さくなる。これはlogを使っているのでdC/dw1/φと割り算が必要になるが、sigmoidsoftmaxならば分母のφがキャンセルされるので相性がよい。

2乗誤差

tの値域は任意

cross

entropy

0<t<1


[] [] []