コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)
Upcoming SlideShare
Loading in...5
×
 

コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM)

on

  • 13,760 views

2011/2/19に開催された第9回コンピュータービジョン最先端ガイド勉強会の発表資料です。2巻3.4のSVMについての解説。

2011/2/19に開催された第9回コンピュータービジョン最先端ガイド勉強会の発表資料です。2巻3.4のSVMについての解説。

Statistics

Views

Total Views
13,760
Views on SlideShare
3,694
Embed Views
10,066

Actions

Likes
2
Downloads
40
Comments
0

13 Embeds 10,066

http://d.hatena.ne.jp 7945
http://poly.hatenablog.com 2079
http://webcache.googleusercontent.com 18
http://translate.googleusercontent.com 10
http://cache.yahoofs.jp 3
https://twitter.com 3
http://a0.twimg.com 2
http://www.forest.impress.co.jp 1
http://www.linkedin.com 1
http://www.hanrss.com 1
http://theoldreader.com 1
http://firemobilesimulator.org 1
http://131.253.14.98 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) コンピュータービジョン最先端ガイド2 3.4ベクトルデータに対するカーネル法(SVM) Presentation Transcript

  • コンピュータービジョン最先端ガイド勉強会 第 3 章 カーネル情報処理入門4.ベクトルデータに対するカーネル法(Ⅰ) 堀川 隆弘 @thorikawa
  • アウトライン 線形 SVM  元空間における分離境界を求める 非線形 SVM  特徴空間における分離境界を求める SVM の汎化性能と正則化・問題点
  • SVM:Support Vector Machine 二クラスの分類を行う、教師有り学習アルゴリズム 超平面を分離境界としてデータを分類する。 正例データと負例データのうち、両者の境界にあるもの ≡ Support Vector だけを予測に使う。 Support Vector との距離(Margin)を最大化する分類平面を 選ぶ。
  • SVM の特徴 高次元においても高い汎化能力を示す 非線形 SVM では、特徴空間を高次元へ非線形変換してい るので、識別能力の高い非線形識別関数を生成することが 可能 解が必ず大域最適解に収束する(ニューラルネットワークとの 違い)
  • 線形 SVM と非線形 SVM 線形 SVM は元空間上での線形分離 非線形 SVM は特徴空間上での線形分離 入力空間においては分離境界が非線形であっても、より高次元の特 徴空間上では線形であり得る。
  • 線形 SVM = + 0 と表すことができ、かつ線形分離「丌可能」 と仮定して考える スラック変数ξn ≥ 0を導入する  正しく識別され、かつマージン境界の上または内側では ξn = 0  それ以外の場合 ξn = yn − f xn このとき、  分類境界f x = 0上にあるデータで はξn = 1  誤分類されたデータではξn > 1が成 り立つ
  • これらをまとめて誤分類を許容するために、制約条件(2)を以下のようにする。 ∀i, yi x + 0 − 1 − ξi ≥ 0 (79) Where ∀i, ξi ≥ 0このとき、誤分類に対しソフトにペナルティを不えることができる目的関数として以下を設定する。 n 1 2 Minimize w +c ξi (80) w , 0 ,ξ 2 i=1c はスラック変数による誤分類のペナルティと、マージンの大きさの間のトレードオフを制御するパラメータ。
  • ラグランジュの未定乗数法複数の変数に1つ以上の制約条件が課せられたときに、関数の停留点を求める方法。 等式制約の未定乗数法 制約条件g x, y = 0のもとで関数f x, y の極値を求めるという問題を考えるとき、あるパラメータλ ≠ 0 が存在して ∇f = λ∇g (L.1)が成り立つ。これと制約条件から極値をとる x,y を求められる。
  • ラグランジュ関数 L x, λ ≡ f x + λg(x) (L.2)で定義される L に対し、停留条件 L.1 は∇x L = 0 と表すことができる。 ∂Lまた、 = 0 より制約式 g(x)=0 が導かれる。 ∂λつまり、元の等式制約条件の下で f(x)を最大化するためには、ラグランジュ関数L.2 の x,λに関する停留点を求めればよい。
  • 丌等式制約の未定乗数法 制約条件g x, y ≥ 0のもとで関数f x, y の極値を求めるという問題を考えるとき、解には2つの可能性がある。1. 停留点が g(x)>0 の領域にある2. 停留点が g(x)=0 上にある1 の場合、停留条件は ∇f = 02 の場合、停留条件は等式制約の場合と同様だが、制約条件から ∇f が領域g(x)>0 の外へと向かわなければいけないことを考慮して、 ∃ > 0, ∇f = −∇gいずれの場合も以下の Karush-Kuhn-Tucker 条件(KKT 条件)が成り立つ。 g x ≥0 (L.3) ≥ 0 (L.4) g(x) = 0 (L.5)この条件下でラグランジュ関数 L.2 の x,λに関する停留点を求めればよい。
  • 双対問題制約条件と目的関数を入れ替えることで、変数よりも制約条件が尐ない場合、主問題よりも楽に解ける可能性が高い。例) 制約条件 x+y=1 のもとで目的関数 f(x,y)=2x 2 + 3y 2 を最小化する。ラグランジュ関数L(x, y) = 2x 2 + 3y 2 − ( + − 1)で、停留条件∇x L = 4x − λ = 0, ∇y L = 6y − λ = 0 から、x,y を消去して、 5 2− λ + λ = 0 を得る。 12・目的関数が x,y の関数がλの関数になった!・次元が 2 →1 になった!
  • マージン最大化の双対問題元のマージン最大化問題 n 1 2 Minimize w +c ξi (M.1) w , 0 ,ξ 2 i=1 subject to ∀i, yi x + 0 − 1 − ξi ≥ 0 (M.2) ∀i, ξi ≥ 0 の双対問題を考える。 この最適化問題をとくためのラグランジュ関数は、 n n n 1L , 0 , ξ, , μ = w 2 +c ξi − i yi w + w0 − 1 + ξi − μi ξ i (M.3) 2 i=1 i=1 i=1 となる。
  • ラグランジュ関数を w, 0 , ξi で微分したものを 0 でおいて、以下の結果を得る。 n ∂L =0 ⇒ w= i yi xi (M.4) ∂ i=1 n ∂L =0 ⇒ i yi = 0 (M.5) ∂0 i=1 ∂L = 0 ⇒ i = c − μn (M.6) ∂ξi
  • これをもとのラグランジュ関数に代入すると、以下の双対表現が得られる。 双対表現(dual representation) n n n 1 L = i − i j yi yj xi t xj (81 改) 2 i=1 i=1 j=1 subject to 0 ≤ i ≤ c, i = 1, … , n n i yi = 0 i=1ただし、最初の制約条件はn = c − μn とμn ≥ 0を用いた。この双対問題の解き方については後述。
  • 双対問題を解き、i が求まったとして、分類規則は次のようになる。 n w= i yi xi (83) i=1 w0 = yi − w t x i (84) (但し、xi はi > 0なる任意のxi ) n f(x) = w t x + w0 = i yi (xi, x) + w0 (85) i=1
  • 対応する KKT 条件は以下 KKT 条件 i ≥ 0, i = 1, … , n (M.7) yi w xi + w0 − 1 + ξi ≥ 0 (M.8) i yi w xi + w0 − 1 + ξi = 0 (M.9) μi ≥ 0 (M.10) ξi ≥ 0 (M.11) μn ξn = 0 (M.12)よって、全ての訓練データに対し、n = 0またはyi w xi + w0 − 1 + ξi = 0が成立する。(85)より、n = 0の点は新しいデータ点の予測に寄不しない。それ以外のn ≠ 0となる点を Support Vector と呼び、マージンの縁に存在する。
  • 非線形 SVMd 次元から D 次元への写像φを考え、d 次元ベクトルxi の代わりに、D 次元ベクトルφ(xi )を新しい n 個の学習パターン(特徴ベクトル)とみなしてみる。計算式は線形 SVM の場合とほぼ同様になり、マージン最大化を表す式は以下のようになる。 n 1 2 Minimize w +c ξi (N.1) w , 0 ,ξ 2 i=1 subject to ∀i, yi φ(xi ) + 0 − 1 − ξi ≥ 0 (N.2) ∀i, ξi ≥ 0
  • 対応するラグランジュ関数は、 L , 0 , ξ, , μ n n n 1 (N.3) = w 2 +c ξi − i yi φ(xi ) + w0 − 1 + ξi − μi ξ i 2 i=1 i=1 i=1これを, 0 , ξi について微分して 0 とおき、以下の双対表現が得られる。 n n n 1 L = i − i j yi yj φ(xi )t φ(xj ) (N.4) 2 i=1 i=1 j=1
  • d 次元ベクトルxi , xj を入力とするカーネル関数 k(x,y)があって、k(xi , xj ) ≡φ(xi )t φ(xj ) が成立するとすれば、以下のようにも表せる。 双対表現(dual representation) n n n 1 L = i − i j yi yj k(xi , xj ) (89 改) 2 i=1 i=1 j=1 subject to 0 ≤ i ≤ c, i = 1, … , n n i yi = 0 i=1これを解いて、識別関数は n f x = i yi k(x, xn ) + 0 (91) i=1
  • と表すことができる。カーネル関数を用いることによって、・訓練データ各点の特徴空間上の座標φ(x)を計算しなくてよい・φ(x)が未知でも最適解を得ることができるというメリットがある。また、特徴空間の次元を M、訓練データの数を N とすると、もともとの問題(N.1,N.2)は M+N+1 変数、双対問題(89)は N 変数であった。これにより、特徴空間の次元がガウスカーネルのような無限次元の場合にも、最大マージン分類器を適用できるようになる。
  • マージン最大化と凸最適化k xi , xj が半正定値より、双対問題は凸最適化問題になる。 凸最適化 f x1 , … , xn → max subject to g1 x1 , … , xn ≤ 0 h1 x1 , … , xn = 0 … … g n x1 , … , xn ≤ 0 hn x1 , … , xn = 0 f が上に凸の関数で、制約条件が定義する領域が凸であるとき、こ の問題を凸最適化問題と呼ぶ。 凸最適化問題においては、局所最適解=大域最適解になる。
  • 二次計画法の解法 一般に M 個の変数を持つ二次計画問題を解くにはΟ M 3 の 時間がかかることが知られている。 効率的に解くアルゴリズムが必要。  Chunking (Vapnik, 1982)  最終的にゼロにならないラグランジュ乗数だけを残す。  カーネル行列の大きさを、全データ数の2乗から、非ゼロのラグラン ジュ乗数の数の2乗程度まで減らすことが可能。  保護共役勾配法(protected conjugate gradient method)を用い て実装可能(Burges, 1998)
  •  分解法(decomposition method) (Osuna et al., 1996)  サイズの小さな二次計画問題を繰り返し解くことで、最終的な解を 得る。  実際には、2つのラグランジュ乗数を含む部分問題を繰り返し解く SMO(sequential minimal optimization)(Platt, 1999)が広く使 われている。
  • SMO(sequential minimal optimization) アイデア 全ての n ではなく、2個のi だけを選び、逐次更新する。 アルゴリズム概略 動かす対象を1 , 2 の2点とする。 このとき、(89)の制約式より以下が成立する。 1 y1 + new y2 = 1 y1 + old y2 new 2 old 2 これと制約式 0 ≤ n ≤ cから以下の新たな制約式が導きだせる。 y1 = y2 の場合 U ≤ new ≤ V 2 where U = max 0, 1 + old − c , V = min old 2 c, 1 + old old 2 y1 ≠ y2 の場合 U ≤ new ≤ V 2 where U = max 0, C − 1 + old , V = min old 2 C, old − 1 2 old
  • また、目的関数(89)は1 , 2 に関連する部分だけに注目して、以下のように整理できる。 1 1 W 1 , 2 = 1 + 2 − K11 1 − K 22 2 2 − y1 y2 K12 1 2 − y1 ν1 1 − y2 ν2 2 + const. 2 2 2where K ij = k xi , xj n νi = yj j k xi , xj j=3目的関数を2 で微分して=0 とおくことで、更新式が求まる。 new old y2 f x1 − y1 − f x2 − y2 2 = 2 + K11 + K 22 − 2K12この更新式に対して、前述の制約式を適用したものをnew の更新値とする。 2(1 は1 y1 + new y2 = 1 y1 + old y2 から求まる。) new new 2 old 2なお、各部分問題で動かす 2 点の選び方には、いくつかのヒューリスティックが存在する。
  • 汎化性能と正則化 n 1 2 Minimize w +c ξi w , 0 ,ξ 2 i=1・c 大→誤分類したらダメ、絶対!マージン小。モデルが複雑。・c 小→誤分類しても OK 。マージン大。モデルが簡易。 C パラメータで柔軟に 調整可能 Generalized Overfitting ©http://f.hatena.ne.jp/aidiary/
  • SVM の問題点 カーネルの選択に注意を要する  実際の選択肢は多くなく、パラメータ変更時の振る舞いも予想がつく ので大きな問題にはならない。  ほぼガウスカーネル&クロスバリデーションで十分?  実数ベクトルの場合は大体ガウスカーネル。他、問題の種別に応じて、 使用するカーネルは大体限定される。 多クラス分類や事後確率を求めるには工夫が必要 二次計画問題の計算量が多い  N 個の変数を持つ二次計画問題の計算量はO N3  計算量を優先させるために線形 SVM を使う場合もある
  • 参考文献1. C.M.ビショップ:パターン認識と機械学習 上・下,シュプリンガ ー・ジャパン2. 金谷 健一:これならわかる最適化数学,共立出版3. 赤穂昭太郎:カーネル多変量解析,岩波書店4. 中川 裕志:「数理手法(統計的機械学習入門)」講義スライド http://www.r.dl.itc.u-tokyo.ac.jp/~nakagawa/SML1/kernel1. pdf5. 前田 英作:痛快!サポートベクトルマシン http://ci.nii.ac.jp/naid/110002764121/