モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

SVMとニューラルネットワーク(BP)

最近のスパム判定には、SVM(Support Vector Machine)というパターン識別手法が使われている物があります。


最初SVMのことを知らなくて、ぐぐってみた中で、自分にはここの説明が、一番特徴がわかりやすかったです。
SVMを使うとなにが嬉しいの?


これを読んで、ニューラルネットワークSVMを比較したとき、SVMは要素間の境界線距離を最大化するように学習する、というのがウリだと思いました。それだけ(たぶん)般化能力が高くなると。


自分が大学にいたとき、少しニューラルネットワークのこともやったことがあります。
そのとき、入力にノイズを混入させて学習させたほうが、学習の般化能力が高くなるようだ、というのがあり、実際に実験するときに試して良い結果が出ていました。

このSVMのモデルを見たとき、例えばニューラルネットワーク(バックプロパゲーション)で、正規分布したノイズを入力に混入させて学習させると、このSVMの説明の図では一つの点となっているものが、点を中心とした山のような感じにすることができるのでは、と思いました。
Aの点をプラス側の山、Bの点をマイナス側の山とすると、ちょうど水平線のところで区分する線が引かれることになると思います。
そうすると、AとBを分ける線は、BPを使った場合でもSVMを使った場合と近いものになることが保証されると思います。


学習回数をすごく増すことになるんで、効率という点ではSVMよりずっと悪くなりそうですが、般化能力的にはこのほうが良い結果が出せるのではないかと思いました。
あと、BPだと判定だけじゃなく、予測にも使えるし。



(追記)

コメントでid:itochanさんから、非常に参考になるページを教えていただきました。

Synaptic » Blog Archive » Classifier Showdown

こちらでは、BayesとSVMと多層ニューロでの、認識精度や区分けの癖が画像から一目でわかるようになっています。


このエントリーで書かれている、意図的なノイズ混入による効果はこのページのものには入っていないので、そこはわかりませんが、ニューロを使った場合の良い点はここからも読み取れるんではないかと思います。
とにかくBayesは、XORになるような区分けには弱いよね、と思ってたんですが、これ見ると一目でわかります。