#author("2017-11-25T19:22:22+09:00","default:takataka","takataka") #author("2017-11-25T19:23:02+09:00","default:takataka","takataka") * SJS2017 ex11 [#j771445d] #contents **はじめに [#j79fd70e] ***これまでの分 [#kbc5dcd1] - 以前の分を全て報告してokをもらってから,今回分にすすみましょう. ***今回と次回 [#sf7ceaec] [[SJS/2017/ex10]] のロジスティック回帰を,次の2段階で改良しよう - [[SJS/2017/ex11]] 入力が2次元より大きい場合も扱えるようにする - [[SJS/2017/ex12]] 出力を複数にして,クラス数が2より多い場合も扱えるようにする **課題A [#sae6e4fd] ''特徴次元数を一般化しよう'' 前回は特徴ベクトルの次元数 &mathjax{ D }; が 2 の場合のみを考えた.今回は &mathjax{ D \geq 1 }; の任意の次元数の特徴ベクトルを扱えるようにしよう. まず,特徴ベクトルを列ベクトル(&mathjax{D\times 1}; 行列)として #mathjax( \bm{x} = ( x_1, x_2, \dots , x_D )^{\top} ) と表す.このとき,シグモイド関数を用いて,入力 &mathjax{ \bm{x} }; に対する出力 &mathjax{ z }; を #mathjax( z = s( w_1x_1 + w_2x_2 + \dots + w_Dx_D + b) = s( \bm{w}^{\top} \bm{x} + b ) ) とする.パラメータは,スカラ &mathjax{ b }; と &mathjax{ D }; 次元ベクトル &mathjax{ \bm{w} }; なので計 &mathjax{ (D+1) };個ある. このとき,&mathjax{ h }; を前回同様に定義すると,&mathjax{ \frac{\partial h}{\partial w_d} }; ( &mathjax{ d = 1, \dots , D }; ) は前回と全く同じように計算できる.式を簡潔に書くために このとき,&mathjax{ h }; を前回同様に定義すると,&mathjax{ \frac{\partial h}{\partial w_d} }; ( &mathjax{ d = 1, \dots , D }; ) は(&mathjax{ \frac{\partial h}{\partial b} };も)前回と全く同じように計算できる.式を簡潔に書くために #mathjax( \frac{\partial h}{\partial \bm{w}} = \left( \frac{\partial h}{\partial w_1}, \frac{\partial h}{\partial w_2}, \dots , \frac{\partial h}{\partial w_D} \right)^{\top} ) という &mathjax{ D }; 次元ベクトルを定義すると, #mathjax( \frac{\partial h}{\partial \bm{w}} = \mbox{hoge} ) と書ける.hoge がどうなるか考えよう. **課題B [#d5e91332] ''実験'' 上記の結果を活かして,[[SJS/2017/ex10]]の課題Bのプログラムの改良版を作ろう.