トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Coursera 機械学習 - Week7

[機械学習]

Week7

半分以上の課題をこなしました…そろそろプログラミングよりQuizがきつい…

この章ではサポートベクターマシン(SVM)についてやる。この方法は非線形の分類に威力を発揮する。

  大きな差異がある分類問題 (Large Margin Classification)

目的関数の最適化 (Optimization Objective)

  • ロジスティクス回帰と違い、正規化項に C = 1 / λ という値を使う
    • たぶんこれでオーバーフィッティングを防ぐ
    • また、結果はすぐに 0 / 1 になる(確率ではない)
  • SVMの仮説関数
    • %5Ctext%7BC%7D+%5Csum%5F%7Bi%3D1%7D%5Em+%5Cleft%5B+y%5E%7B%28i%29%7Dcost%5F1+%28%5Ctheta%5ETx%5E%7B%28i%29%7D%29+%2B+%281%2Dy%5E%7B%28i%29%7D%29+cost%5F0+%28%5Ctheta%5ETx%5E%7B%28i%29%7D%29+%5Cright%5D+%2B+%5Cfrac%7B1%7D%7B2%7D+%5Csum%5F%7Bi%3D1%7D%5En+%5Ctheta%5E2%5Fj+

大きな差異がある問題の直観 (Large Margin Intuition)

 学習データの中でサポートベクトルと呼ばれるクラス境界近傍に位置する訓練点を基準として、
 その距離が最も大きくなるような位置に識別境界を設定する。
 つまり、クラスの最端から他クラスまでの「マージンを最大にする」ように分離超平面を構築しクラス分類を行う。

まあ、要はいい感じに境界を設定できるということ

大きな差異がある分類問題の背景にある数学について (Mathematics Behind Large Margin Classification)

  • ベクトルの内積について
    • ここで、ベクトルの内積を幾何学で証明している

上記のような数学の道具を使い、どうしてSVM法がちゃんとマージンを取って分類が出来るのか説明している。

  カーネル法 (Kernels)

カーネル法・導入(Kernels I)

  • 動機
    • 目的関数を複雑な高次の多項式としたときに、この特徴値fをうまくとりたい
    • どれを選択するのがよいのか?計算を簡単にするには?

カーネル法の導入

  • landmarks l%5E1+l%5E2+l%5E3+ を定義する

Xに対してf1, f2...という風にカーネル関数を通して取得した値を定義する

  • f1+%3D+similarity%28x%2C+l%5E%7B%281%29%7D%29+%3D+exp+%28+%2D+%5Cfrac%7B+%5C%7C%7C+x+%2D+l%5E%7B%28l%29%7D+%5C%7C%7C+%5E2+%7D%7B+2+%5Csigma%5E2+%7D+%29+

これを計算すればいい感じに機械学習できる?

  • Cとσの利用
    • アンダーフィッティング → Cを増やして、σを減らす
    • オーバーフィッティング → Cを減らして、σを増やす

  SVM実践 (SVMs in Practice)

メモなし

  Quiz

難しめ。

  プログラム課題

これまでと比べて課題の内容は簡単。カーネル法を式にする課題と、文字列処理の話。数式が絡まないプログラミングは楽勝である。

svmfig.gif
お名前: コメント: