olearning-prml6
DESCRIPTION
Learning ML at GrandFront in Osaka, chapter6 source code: https://github.com/u651601f/OLerning-PRMLTRANSCRIPT
Olearning-PRML8Kousuke Takeuchi
最小二乗学習によるパターン認識の問題点
誤分類率に対応する「0/1損失」のマージン関数と「L2損失」のマージン関数は、それぞれ増加の仕方が違うため、実際にパターン認識を行うと多尐の不自然さが残ってしまう。
→ サポートベクター分類器(SVM)によって、
よりパターン認識にふさわしい損失の計算
を行う。
SECTION1
マージン最大化分類
マージンとは?
サンプルデータを(-1, +1)の2クラスに分ける「直線」と「分けられた2つの空間」との距離
マージンが大きいほど、良いクラス分けが出来ていることが感覚的に確認できる
分離用の直線とマージンの数学的定義
線形の2クラス分類器
w: 分離直線の法線
γ: 直線の切片
マージン関数
x: 標本データ
y: データに対する(-1, +1)のラベル
「マージン」 = 「距離」なので、マージンが必ず正になるようにパラメータw, γを学習すると、標本を正しく分離することが出来る。
m > 0 (∀i = 1..n)
ただし、開集合(>)は数学的に扱いにくいため、今回は閉集合(≧)の式に直す
m ≧ 1 (∀i = 1..n)
このような条件を満たすw,γが存在
→ 「線形分離可能」という
線形分離可能なw, γの解は無限に存在する。
→ 一番余裕を持って分離できる解を選ぶ
一番余裕のある解とはどんな解か??
→マージン(距離)が最大となるもの
→マージンの逆数が最小になれば良い
(計算の利便上、逆数を計算する方が楽?)
このような方式でマージン最大化する分類器をハードマージンサポートベクター分類器とよぶ
一般的には・・・
ハードマージンでは、訓練標本が線形分離可能という仮定のもとに成り立っている。
しかし、一般的には線形分離可能という過程は成り立たない。
→ 線形分離の仮定を緩和したSV分類器を
「ソフトマージンSV分類器」とよぶ
ソフトマージンSV分類器
基本的な考え方は、マージンの計算に尐しの「誤差ξ」を許すこと
ただし、誤差をあまりにも許すことはできないので、許容具合を決める
「調節パラメータC」を導入する
SECTION2サポートベクトル分類器の解の求め方
二次計画問題「subject to」の中に求めたいパラメータが含まれてしまっている問題
このような問題は、一般的に解を求めにくいため、二次計画問題として扱われる
前回の制約付き最小二乗学習でも紹介した「ラグランジュの双対問題」を用いて、subject toにパラメータが含まれない問題に変換する
ラグランジュの双対問題を使うと・・・
計算は端折るが、新たに変数αを使うと簡単に計算できる問題へと変換出来る。
この解αを用いれば、SVMの解を求めることが出来る
SVMを用いたプログラムメールのスパムフィルタ
スパム・非スパムメールの取得
http://spamassassin.apache.org
メールのデータを、スパム・非スパムに分けて取得できる
文字データを数値として扱う今回学んだ数式は、数字のベクトルで構成された(x, y)の標本データでなければならないので、文字列であるメールのデータをそのまま用いることは出来ない。
「html」や「table」などの含有率を見るだけでも十分スパム・非スパムを判定できるらしい
→ 含有率は数値なので、これを使ってクラス
分けを行うことにする
今回作成したプログラムの概要
メール内の文字の集計等は、今回のSVMに直接関係ない部分なので、参考図書をパクりながら自然言語処理プログラムを作成した。
実際に集計した単語の含有率データを元に、自作のSVMで分類を行った。
参考図書
D.Conway,
J. M. White
「入門機械学習」
オライリージャパン
Demonstration