概要
多クラスロジスティック回帰で得られる結果は以下の図のようなイメージです。左のグラフは、各クラスの識別関数(ソフトマックス)の出力結果、右のグラフは各識別関数の最大値を識別結果としたときの分類境界です。この分類境界が適切になるように各識別関数の係数の最適解を求めます。
この例は、平面上にまんべんなく訓練データを散りばめたので、ソフトマックスの出力を見ると各クラス間の境界が断崖絶壁のような形をしていますが、分布によってはもっと滑らかな出力になると思います。
最尤推定と数値計算のための勾配導出
尤度関数から定義される誤差関数とその勾配を求めます。
データが与えられたとき、それがクラスに属する事後確率は、
として、
と書けました。はでモデル化します。(参考:ソフトマックス関数)
いま、訓練データ、が与えられているとします。は1ofK符号です。尤度関数は
となります。は番目のデータの正解ラベルで、クラスに属するなら1、そうでないなら0です。つまり式(3)は、正しく分類されたのみを抽出して積をとっている計算になります。ロジスティック回帰と同様、という交差エントロピー誤差関数を定義すれば
となり、これを最小にするが求めるパラメータです。多クラスなので2クラスのロジスティック回帰とは異なり、求めるパラメータはクラス数分存在します。合成関数の微分とソフトマックス関数の微分より、
となります。は単位行列の成分です。この式変形はすごい悩んだ。式(5)の書き方があんまりよくない、、というか間違ってるかもしれない。をで微分すると、は全てに影響しているのでとなることも注意。
ここで、はの中で、いずれか1つのみで1となるから、
となります。また、のときのみだから
です。したがって、
となります。式(10)は入力次元のベクトルです。
以上より、求める勾配は式(7)の微分をまで並べた
となり、これは次元ベクトルです。これを用いて最急降下法で解を求めることができますが、ニュートン法を使うために次回はヘッセ行列を計算したいと思います。
最終的な実験結果はこちらです www.iwanttobeacat.com