Week7を一言でいうとSVMという新アルゴリズムの紹介と実践
になると思います。
Video/Lectureの中で粗くてもいいからさっとTryすることが重要という
ポイントをカバーしてくれるのがSVMということだと思います。
ちなみにこちらのサイトの方がよく理解している人が書いている
と思いましたので載せておきます。↓
課題の前半はSVMの直線、曲線を使うこと。
・直線はlinearKernelを使います。
式は↑になります。
設定しなければならない要素
X,yがTraining Setから定数ででてきます。
Cは自分で設定する変数です。
※linearKernelはSVM直線を計算してくれる関数なので定数変数ではないです。
Week1-6では最適な変数(ここではC、Week1-6ではθが多い)を求める関数が
ありましたが(fmincgなど)、ここではありません。
粗くてもとりあえずTryが方針なのでそういう関数がないのかもしれません。
・曲線はgaussianKernelを使います。
式は↑になります。
設定しなければならない要素はSVM直線から
変数が一つ増えてCとsigmaになっています。
※gaussianKernelはSVM曲線を計算してくれる関数なので定数変数ではないです。
同じく最適なCとsigmaを計算する関数はここでは紹介されていません。
そもそもWeek1-6で行っていたCostFuctionの式も自分では作成していません。
(SVMTrain.mの中に入っているかもしれませんが。)
なので、CostFunctionを最小値にするθ、C,sigmaを計算するため
に必要なgradientを式にすることもありませんでした。
なので、fmincgのような関数も出てきませんでした。
代わりにpreddictionの結果を表示して、最適変数を探すという形でした。
この課題で得た有用なテクニックは苦闘日記⑤のループの履歴取り出しです。
課題の後半はEmailのSpam分類機をつくること
①Emailの文章をベクトルに落としこむこと
processEmail.mでEmailを1899のVocabListにあるかどうか落とし込む
emailFeature.mで1899X1のベクトルに落とし込む
②SVMの直線で分類すること
①で落とし込んだベクトルを課題の前半で行ったSVM直線で計算して
predictionの精度をみている。
残課題
・苦闘日記②のPredがすべて1の境界線ってなんだ?
・「you re」-->「XX」-->「your」はいつできた?
・日本語版を作成
・Neural Networkの問題をSVMで解く
・Email Spamの問題をWeek1-6の方法で解く