olearning-prml6

18

Click here to load reader

Upload: kousuke-takeuhi

Post on 08-Jul-2015

189 views

Category:

Technology


0 download

DESCRIPTION

Learning ML at GrandFront in Osaka, chapter6 source code: https://github.com/u651601f/OLerning-PRML

TRANSCRIPT

Page 1: Olearning-prml6

Olearning-PRML8Kousuke Takeuchi

Page 2: Olearning-prml6

最小二乗学習によるパターン認識の問題点

誤分類率に対応する「0/1損失」のマージン関数と「L2損失」のマージン関数は、それぞれ増加の仕方が違うため、実際にパターン認識を行うと多尐の不自然さが残ってしまう。

→ サポートベクター分類器(SVM)によって、

よりパターン認識にふさわしい損失の計算

を行う。

Page 3: Olearning-prml6

SECTION1

マージン最大化分類

Page 4: Olearning-prml6

マージンとは?

サンプルデータを(-1, +1)の2クラスに分ける「直線」と「分けられた2つの空間」との距離

マージンが大きいほど、良いクラス分けが出来ていることが感覚的に確認できる

Page 5: Olearning-prml6

分離用の直線とマージンの数学的定義

線形の2クラス分類器

w: 分離直線の法線

γ: 直線の切片

マージン関数

x: 標本データ

y: データに対する(-1, +1)のラベル

Page 6: Olearning-prml6

「マージン」 = 「距離」なので、マージンが必ず正になるようにパラメータw, γを学習すると、標本を正しく分離することが出来る。

m > 0 (∀i = 1..n)

ただし、開集合(>)は数学的に扱いにくいため、今回は閉集合(≧)の式に直す

m ≧ 1 (∀i = 1..n)

このような条件を満たすw,γが存在

→ 「線形分離可能」という

Page 7: Olearning-prml6

線形分離可能なw, γの解は無限に存在する。

→ 一番余裕を持って分離できる解を選ぶ

一番余裕のある解とはどんな解か??

→マージン(距離)が最大となるもの

→マージンの逆数が最小になれば良い

(計算の利便上、逆数を計算する方が楽?)

このような方式でマージン最大化する分類器をハードマージンサポートベクター分類器とよぶ

Page 8: Olearning-prml6

一般的には・・・

ハードマージンでは、訓練標本が線形分離可能という仮定のもとに成り立っている。

しかし、一般的には線形分離可能という過程は成り立たない。

→ 線形分離の仮定を緩和したSV分類器を

「ソフトマージンSV分類器」とよぶ

Page 9: Olearning-prml6

ソフトマージンSV分類器

基本的な考え方は、マージンの計算に尐しの「誤差ξ」を許すこと

ただし、誤差をあまりにも許すことはできないので、許容具合を決める

「調節パラメータC」を導入する

Page 10: Olearning-prml6

SECTION2サポートベクトル分類器の解の求め方

Page 11: Olearning-prml6

二次計画問題「subject to」の中に求めたいパラメータが含まれてしまっている問題

このような問題は、一般的に解を求めにくいため、二次計画問題として扱われる

前回の制約付き最小二乗学習でも紹介した「ラグランジュの双対問題」を用いて、subject toにパラメータが含まれない問題に変換する

Page 12: Olearning-prml6

ラグランジュの双対問題を使うと・・・

計算は端折るが、新たに変数αを使うと簡単に計算できる問題へと変換出来る。

この解αを用いれば、SVMの解を求めることが出来る

Page 13: Olearning-prml6

SVMを用いたプログラムメールのスパムフィルタ

Page 14: Olearning-prml6

スパム・非スパムメールの取得

http://spamassassin.apache.org

メールのデータを、スパム・非スパムに分けて取得できる

Page 15: Olearning-prml6

文字データを数値として扱う今回学んだ数式は、数字のベクトルで構成された(x, y)の標本データでなければならないので、文字列であるメールのデータをそのまま用いることは出来ない。

「html」や「table」などの含有率を見るだけでも十分スパム・非スパムを判定できるらしい

→ 含有率は数値なので、これを使ってクラス

分けを行うことにする

Page 16: Olearning-prml6

今回作成したプログラムの概要

メール内の文字の集計等は、今回のSVMに直接関係ない部分なので、参考図書をパクりながら自然言語処理プログラムを作成した。

実際に集計した単語の含有率データを元に、自作のSVMで分類を行った。

Page 17: Olearning-prml6

参考図書

D.Conway,

J. M. White

「入門機械学習」

オライリージャパン

Page 18: Olearning-prml6

Demonstration