集合知第7回

19
Goodfind Engineer 番外編 SVMって名前かっこいいですよね 1日で学ぶ,SVM講座 〜サポートベクターマシーン〜

Upload: noboru-kano

Post on 20-Jul-2015

126 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 集合知第7回

Goodfind Engineer 番外編

SVMって名前かっこいいですよね

1日で学ぶ,SVM講座〜サポートベクターマシーン〜

Page 2: 集合知第7回

目次

• 目次

1. 機械学習のアプローチ方法

2. SVMとは?

3. 集合知の本でやってること

4. まとめ

以下時間があったら(てかやります)

1. 線形SVMの理論(ハードマージンSVM)

2. ソフトマージンSVM

3. 非線形SVM(カーネルトリック)

Page 3: 集合知第7回

はじめに

• SVMだけで本が一冊書けてしまうので、今日は本当に触りだけで許してください

作者:ネロクリスティアニーニ,ジョンショー‐テイラー,Nello

Cristianini,John Shawe‐Taylor,大北剛出版社/メーカー:共立出版発売日: 2005/03

通称赤本.読みづらいらしいので,右側の黄色のPRMLのがオススメ.

Page 4: 集合知第7回

SVMとは?

• (教師あり学習)パターン認識手法の1つ

• 一番認識性能が優れた学習モデルの1つ

• 実用例

–スパム検知,画像認識,文字認識,構文解析(CaBoCha),テキスト分類etc...

• 具体例

–顔の表情認識、軍事データセットを使用した新入の検知,タンパク質の構造をシーケンスから予測

Page 5: 集合知第7回

機械学習のアプローチ方法

1. 識別関数

– 入力データを見て、特定のクラスに属するよう識別(パーセプトロン、ニューラルネットワーク、SVM)

2. 識別モデル

– 入力データからクラス事後確率をモデル化して識別(CRF:Conditional Random Fields)

3. 生成モデル

– 入力データがどのような分布で生成させたものかをモデル化して識別(ナイーブベイズ)

Page 6: 集合知第7回

集合知の本でやっていること(線形分類)

デートサイトの男女の年齢とマッチするかしないかのデータ.

新しいデータが●or☓の判別を行いたい.

●の平均

簡単な解答xとyの平均を求め,

どちらのクラスに距離が近いかを求める

+の平均

Page 7: 集合知第7回

集合知の本でやっていること(線形分類)

●の平均

簡単な解答xとyの平均を求め,

どちらのクラスに距離が近いかを求める

+の平均

新たに直線を引く.

直線は両クラスの中間

・左側ほどマッチしない・右側ほどマッチする

これが分類のための境界線(超平面)!

Page 8: 集合知第7回

集合知の本でやっていること(線形分類)

• 内積で考えるともっと分類の判定に用いる計算量が減ります

M0をマッチする,M1をマッチしないクラスの平均点とする.中間点をCとする.

・分類したい点とのベクトルを考え,内積が正ならM0,負ならM1に分類できる.

Page 9: 集合知第7回

集合知の本でやっていること(線形分類)

• 注意点

– これはあくまで線形分類器であり,境界線を探すだけのものです. 誤判別ももちろん含まれる.

• 学習サンプルに複数のベクトルデータを持たせても可能(9.4-9.5)

–定性データ(性別)も定量化(1,0)したり,スケールが異なるデータも,正規化すれば扱える

Page 10: 集合知第7回

集合知の本でやっていること(非線形分類)

さて、問題です。Q:左の図の境界線はどうやって引くんでしょうか??(どちらのクラスも平均が同じ所...)解けた人は今日の昼ごはんタダ!?

Ans. xとyを2乗したグラフで境界線を考える!!

Page 11: 集合知第7回

集合知の本でやっていること(非線形分類)

• しかし,実際は点の変換を行うのは,難しい場合が多い

• 次元が増えてしまうと更に複雑になり,なかなか変換できない

• カーネルトリック

–元データを線形写像で高次元に変換し,高次元で内積を計算し,元のデータに返す作業.

– これで非線形も対応可能で超すごいんです!!

Page 12: 集合知第7回

集合知の本でやっていること(非線形分類)

カーネルトリックのイメージ図です(計算式は後ほど)

何が嬉しいかというと,関数の中身が分からなくてもカーネス関数(高次元での内積のこと)がわかれば計算できる所.

Page 13: 集合知第7回

さて、いよいよSVMの正体に迫ろう!!(9.7)

新しいクラス分類を考える

この例ではクラスの平均による境界線を求めているが...。

誤判別が境界線の上でちょいと起こっている.

境界線に近いのが該当する点が原因...

※多くの誤判別は境界線付近で起こりやすい.

Page 14: 集合知第7回

さて、いよいよSVMの正体に迫ろう!!(9.7)

では,境界線はどうやって引くべきなのか?

Ans.

境界線から各クラスの近傍点までの距離を最大化する.

(マージンの最大化)

あとで公開

Page 15: 集合知第7回

さて、いよいよSVMの正体に迫ろう!!(9.7)

では,境界線はどうやって引くべきなのか?

Ans.

境界線から各クラスの近傍点までの距離を最大化する.

(マージンの最大化)この直線を超平面という.

マージン上の点だけが境界線を定めるのに使用される.

他の点は不必要.

マージン付近に存在するこれら点をサポートベクターと呼ぶ!

マージン

サポートベクター(超平面を求めるのに使用)

Page 16: 集合知第7回

集合知の本でやっていること(まとめ)

• まとめ

–サポートベクターを使い,超平面を求めるのがSVM

–超平面を求める⇔マージンの最大化

–基本は線形分類だが,カーネルトリックを用いることで非線形にも対応.

Page 17: 集合知第7回

オススメの本

言語処理のための機械学習入門(自然言語処理シリーズ)

[単行本]

高村大也 (著)

パター...ry)わかりやすいパターン認識 [単行本]

石井健一郎 (著)

Page 18: 集合知第7回

集合知の本でやっていること

• 集合知の本のチャプターはこれで終了ですが...

• 内容があまりにもフワッとしすぎて,流石にSVMの理論をあまり知らずに使用するのはよくないのでは?(私もよくわかりません)

• もうちょっと理論も一緒に見てみましょう.SVM

は機械学習で超大事なポイントの1つです!

Page 19: 集合知第7回

集合知の本でやっていること

こちらのスライドシェアがオススメです。