12.30.2013

Machine Learning: Logistic Regression vs SVMs

機械学習: ロジスティック回帰 vs サポートベクターマシン

Stanford大学の Andrew Ng 先生の Coursera での講義。
だいぶ遅れをとってしまったが、Week 7: Support Vector Machines を復習している。

 

ライブラリを使おう

世の中には、

といった優れたライブラリが既に存在するので、数値計算を自分で実装するのは避けよう。

 

アルゴリズムの選択

素性の数 (n) と学習データの数 (m) によって最適なアルゴリズムは変わってくる。

 

(mと比較して) n が大きい場合 [例: n  >= m, n = 10000, m = 10 .. 1000]

ロジスティック回帰、またはカーネルトリックなしの線形SVM

理由: 学習データが少ない状態で複雑なアルゴリズムを使うと過学習(overfit)が起こり、汎用性がなくなってしまうため。

n が小さく、m が中くらいの場合 [例: n = 1 .. 1000, m = 10 .. 10000]

ガウスカーネルを使ったSVM (非線形SVM)

n が小さく、m が大きい場合 [例: n = 1 .. 1000, m >= 50000)

新しい素性を付け加えた上で、ロジスティック回帰、またはカーネルトリックなしの線形SVM を使う

理由: 巨大な m に対して非線形SVMを行うと計算量が非常に多くなるので、コンピューティングリソースが不足するおそれがある。

 

その他、ニューラルネットワークはいずれの状況にも適用可能だが、学習処理の速度は遅くなる可能性が高い。

また、線形SVM、ガウスカーネル以外のSVMカーネルとして、以下のものが挙げられていた。

  • 多項式カーネル
  • 文字列カーネル
  • カイ二乗カーネル
  • ヒストグラムインターセクションカーネル

0 件のコメント:

コメントを投稿