今回は、ロジスティック回帰で多クラスの識別をすることを考え、誤差関数とその勾配を求めます。
データが与えられたとき、それがクラス
に属する事後確率は、
として、
と書けました。は
でモデル化します。(参考:ソフトマックス関数)
いま、訓練データ、
が与えられているとします。
は1ofK符号です。尤度関数は
となります。は
番目のデータの正解ラベルで、クラス
に属するなら1、そうでないなら0です。つまり式(3)は、正しく分類された
のみを抽出して積をとっている計算になります。ロジスティック回帰と同様、
という交差エントロピー誤差関数を定義すれば
となり、これを最小にするが求めるパラメータです。多クラスなので2クラスのロジスティック回帰とは異なり、求めるパラメータ
はクラス数分存在します。合成関数の微分とソフトマックス関数の微分より、
となります。は単位行列の
成分です。この式変形はすごい悩んだ。式(5)の書き方があんまりよくない、、というか間違ってるかもしれない。
を
で微分すると、
は
全てに影響しているので
となることも注意。
ここで、は
の中で、いずれか1つのみで1となるから、
となります。また、のときのみ
だから
です。したがって、
となります。式(10)は入力次元のベクトルです。
以上より、求める勾配は式(7)の微分をまで並べた
となり、これは次元ベクトルです。これを用いて最急降下法で解を求めることができますが、ニュートン法を使うために次回はヘッセ行列を計算したいと思います。