深層学習:ロジスティック関数の重みの学習
ロジスティック関数
二値問題や多クラス分類問題の学習アルゴリズムの評価となる、最終出力からのラベリングと正解ラベルの比較に交差エントロピーを使う。
誤差平方和の$${J({\bf w})=\displaystyle{\frac{1}{2}\sum_{i}(a^{(i)}-y^{(i)})^2}}$$は、最小化を目的とするが、逆に最大化したいのが尤度(likelihood)である。
尤度は、入力$${{\bf x}}$$と重み$${{\bf w}}$$が与えられた時の出力が$${{\bf y}}$$となる確率で表され、$${y^{i}}$$が$${0 \ {\text or}\ 1}$$の値を取る2値問題の場合、$${\phi(z)}$$が$${z}$$が与えられた時に$${y=1}$$を取る確率であるから、
$${L({\bf w})=Pr({\bf y}| {\bf X,w})=\displaystyle{\Pi_{i}Pr(y^{(i)}|{\bf x}^{(i)},{\bf w}) =\Pi_{i}(\phi(z^{(i)})^{y^{(i)}} (1-\phi(z^{(i)}))^{(1-y^{(i)})} }}$$
と与えられる。
計算が単純になる対数をとり、最小化問題で最適化できるようにマイナスの符号をつければ、交差エントロピー損失となる。
$${\displaystyle{\log(L({\bf w}))=-\sum_{i}\left(y^{(i)}\log\phi(z^{(i)}) + (1-y^{(i)}) \log(1-\phi(z^{(i)}))\right) }}$$
多層ニューラルネットワークでは、出力は$${a^{(i)}}$$で与えられるから、以下のようなコスト関数を最大化することになる。
$${L({\bf w})=-\sum_{i=1}^{n}y^{(i)}\log a^{(i)} + (1-y^{(i)})\log(1-a^{(i)})}$$
多クラス分類学習を行うニューラルネットワークは、出力ユニットはクラス数の$${t}$$となり、よって、出力は$${t}$$次元のone-hotベクトルとなる。この場合の交差エントロピー損失の拡張は
$${J({\bf w})=-\sum_{i=1}^{n}\sum_{j=1}^{t}y_j^{(i)}\log a_j^{(i)} + (1-y_j^{(i)})\log(1-a_j^{(i)})}$$
となる。
この記事が気に入ったらサポートをしてみませんか?