ロジスティック回帰の尤度と交差エントロピーと勾配降下法

(2018-10-14)

ロジスティック回帰

単純パーセプトロンの活性化関数を0/1のステップ関数ではなく0~1のシグモイド関数にしたモデルで、分類の確率を返すことができる。

ニューラルネットワークと活性化関数 - sambaiz-net

線形分離不可能な場合はうまくいかない。入力と出力の間に隠れ層があるMLPでは非線形分離もできる。

MLPと誤差逆伝搬法(Backpropagation) - sambaiz-net

尤度関数と交差エントロピー誤差関数

尤度(likelihood)関数はXという事象が観察されたときにC=tである尤もらしさを表す関数。 例えば、6面ダイスを2回振って両方1の目が出た(X)ときに1の目が出る確率が1/6©である尤度は(16)*(16)=1/36となる。

尤度関数

学習ではモデルのパラメータw,bを、各入力x(x1,x2,…,xn)に対して正解であるC=tの尤度の和が最大になるように最適化していく。 通常のロジスティック回帰では二値分類を行うので正解データtは{0,1}とし、P(C=1) = 1-P(C=0)となる。

ロジスティック回帰の尤度関数

ただ、このままだと積になっていて計算しづらいので、対数を取って和にして、 損失として扱うため負の数にする。これを交差エントロピー誤差関数という。 この値を最小化させるということは尤度を最大化させることになる。

交差エントロピー

自己情報量、エントロピー、KL情報量、交差エントロピー - sambaiz-net

勾配降下法

誤差をw,bでそれぞれ偏微分したのを引いてパラメータを更新していき、 勾配が0になるような値を探す。

ηは学習率で正の小さな値にする。 大きすぎると収束しないが、小さすぎても収束に必要なステップ数が増え、さらに局所最適解で止まってしまう可能性が高まるので 最初は大きくして徐々に小さくしていったりする。

勾配降下法

ほかに局所最適解で止まるのを避ける手法として、サンプル全体ではなく毎回異なる一部を使う(Minibatch)確率的勾配降下法(SGD: Stochastic Gradient Descent)や、SGDに慣性を追加したMomentumなどがある。

多クラスロジスティック回帰

活性化関数をsoftmax関数にすると多クラス分類できる。

多クラスでの確率

多クラスの場合の正解データtは{0,1,2,…}といったようにはせず 正解のindexだけ1でほかは0のone-hot vectorで表し、尤度関数、交差エントロピー誤差関数は以下のようになる。

多クラスでの尤度関数と交差エントロピー誤差関数

偏微分するとこうなる。

交差エントロピー誤差関数の偏微分

あとは同様に勾配降下法でパラメータを更新していく。

参考

詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~