第3週は、教師有り学習のなかのロジスティック回帰、腫瘍が良性か悪性かとか試験に受かりそうか落ちそうかとか2値の答えを予測するような問題です。

線形回帰のときは既存のデータにあてはめる仮説の関数を、
 hθ(x) = θ0 + θ1 * x
のようにしました。今回は答えが〇かXか(0か1か)なのでそのような性質をよく表すことができるものとして、シグモイド関数を使います。
h(x) = g(θT x)
g(z) = 1/(1 + exp(z))

machine learning - Stanford university

machine learning – Stanford university


この値が0.5のところを境界線としてデータ平面(2次元の時)を1と0の領域に分けます。
machine learning - Stanford university

machine learning – Stanford university


実際の計算は前回とだいたい同じ方法ですが、式の形が少し変わります。コスト関数は2乗和の代わりにlogを使います。予測hと答えyが一致した時には0となり違った時には大きな数になるという性質を単に利用したものと思います。
J() = 1/m*sum(i=1:m)(-y(i)*log(h(x(i)))-(1-y(i))*log(1-h(x(i)))
最急降下法に使う式はJの偏微分で、前回と同じです。

2値分類のときにはyは0,1です。これがマルチクラス分類になるとyは[1,2,3,4]ではなく、[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]のように設定しないといけないのが注意点です。

進級試験はまたOctave/Matlabを使ったプログラミング問題です。
ml3
答えとしてはこれぐらいの短いコードなんですがまたまた時間がかかってしまいました。
3週目のコースの途中で課題がでてくるのですが、内容的にはビデオを最後までみてからのほうがよいと思います。

次週からはようやくニューラルネットワークがでてくるようで楽しみです。
今回のビデオの最後で、ここまでやればシリコンバレーのたいていの機械学習技術者よりも知識は上だ、みたいなことを言っていました。顔が笑っていたので冗談だと思いますが。