「データ学習アルゴリズム」 報告者 佐々木 稔 2003年9月18日 第3章 複雑な学習モデル 3.4 サポートベクトルマシン 3.4.1 サポートベクトルマシンの定義 3.4.2 マージン最大化 3.4.3 高次元埋込みと核関数 サポートベクトルマシン パターンを2つのカテゴリに識別するためのモデル 学習用データ {(xi, yi) ; i = 1, 2,・・・, N} xi (∈RM) は M 次元空間ベクトル yi はカテゴリに応じて +1 または ー1 をとる 3.4.1 サポートベクトルマシンの定義 実数 R1 から {ー1, 1} への関数 sign(a) の定義 1 sign(a) 1 (a 0) (a 0) サポートベクトルマシンの定義 y sign wx b x : RM から RH への関数 w∈RH , b∈R1 サポートベクトルマシンの学習法 • あらかじめ定めておくこと 1. 内積計算をするための非常に高次元な空間 RH 2. 非常に高次元な空間 RH へ射影する関数 • で射影した先 RH における平面 z R H ; w z b 0 で yi w xi b 0 i 1,2,, N を満たせば、この平面を分離超平面という 訓練サンプル集合が線形分離可能だとしても、 誤りなく分離する平面は一意に定まらない 訓練サンプルをすれすれに通るのではなく、なるべく 余裕をもって分ける識別平面が求められる マージン 分離超平面から最も近い訓練サンプルとの余裕 w xi b Marginw, b min i 1 w n ここで、 w w1 w2 wH 2 2 2 2 これが最大となるような分離超平面を 定める w, b を見つける ただし、 w=aw, b=ab と定数倍してもマージンは変化しない そこで、マージンを最大化し、かつ、 min yi w xi b 1 n i を満たすパラメータ w, b を求める w xi b 0 w xi b 1 1 Marginw, b w w xi b 1 [注34] マージン最大化の意味 • 入力空間は2つのカテゴリの和で書くことができる • 入力はある定まった確率分布に従って独立に得られる 超高次元空間 RH で、学習サンプルを正しく識別できない確率 Pemp 新しい入力にサポートベクトルマシンが誤る確率 P E(n) P Pemp 1 1 Pemp / E(n) 2 となる確率が (1ーδ) 以上となる 4 E(n) h(1 log(2n / h)) (log ) / 4 n h はVC次元と呼ばれる学習モデルの複雑さを表す量 学習サンプル xi がすべて || xi ||≦D を満たし、 かつ、マージンが A のサポートベクトルマシンの 場合、Pemp=0 VC次元 h は、 D2 h min 2 , H 1 A マージンを大きくすると VC 次元は小さくなる 優れた認識性能が得られる傾向がある 3.4.2 マージン最大化 マージンを最大とするパラメータ w, b を求める問題 w∈RH , b∈R1 とする。制約条件 yi w xi b 1 i 1,2,, N の下で、目的関数 1 2 Lw w 2 を最小とするパラメータ w, b を求める Lagrange未定乗数 αi (≧ 0) ( i=1,2, ・・・, N ) を導入 1 2 N Lw, h, w i yi w xi b1 2 i 1 この関数で、(w, b) については最小化、 α≧0 については最大化 (w, b) について偏微分すると、 N L w i yi xi 0 w i 1 L N i yi 0 b i 1 この関係を L(w, b, α) に代入して 1 Lw, h, 2 2 y x y y x x N i 1 i i i N N i 1 j 1 N i j i j i 1 N N i i j yi y j xi x j 2 i 1 j 1 i 1 これより、双対問題が得られる N 制約条件 N y i 1 i i 0 αi≧0 (i =1, 2, ・・・, N) の下で、以下の目的関数を最大化する N 1 N N L i i j yi y j xi x j 2 i1 j 1 i 1 j i 1 i Lagrange未定乗数に関する最適化問題 シンプレックス法などで解を求める 非常に規模が大きい問題で、直接解くのは難しい ([注35]参照) 解α* が得られたとすると、パラメータ w*, b* は N w* *i yi xi i 1 パラメータ b* は、Kuhn-Tackerの定理より、 * yi w* xi b*1 0 i を満たすものを求める Kuhn-Tacker の定理 凸集合 S 上に定義された(下に凸な)凸関数 f(u) の最小値を 条件 gk(u)≦0 (k=1, 2, ・・・, K; gk(u) はすべて凸関数)で求める Lagrange関数 K Lu, f x k gk u k 1 u∈S で gk(u)≦0 (k=1, 2, ・・・, K) が存在し、 u*∈S で L(u, α) が最適解となる (α={αk}) このとき、 * gk u* 0 (k 1,2,K ) k min L u, L u , max L u , uS * を満たすα*≧0 が存在する * * 0 * * yi w* xi b*1 0 i 0 となるサンプル (xi, yi) は、 * i * w xi b 1 * * w xi b 1 * のどちらかの超平面にのっている 超平面上のサンプル xi を「サポートベクトル」という w xi b 1 * 0 w xi b 1 * 0 i i 0 * i * 0 i * 0 i w xi b 0 パラメータ b* は、 b yi w xi * * * 0 となる訓練サンプルを無視して、 * 0 となる識別平面に近い少数の訓練サンプル i i のみを用いて識別関数を構成する 「マージン最大化」の基準から自動的に識別平面 付近のサンプルが選択されるため、未学習データ にもある程度良い性能を維持できる [注35] • 与えられたデータを完全線形分離できない場合、 「ソフトマージン」とよばれる目的関数を使うことで可能となる • いくつかのサンプルが超平面を超えて反対側に入り、 多少の識別誤りを許す方法 3.4.3 高次元埋込みと核関数 高次元空間への写像 x の定義 1 N N L i i j yi y j xi x j 2 i1 j 1 i 1 N b yi w xi yi i yi xi x j N * * * i 1 高次元空間内での内積計算に 膨大な計算量が必要となる 内積計算を効率良くする 例48 x = (x1, x2), y = (y1, y2) とする R2 から R6 への埋込み関数を x (1, 2x1, 2x2 , x , x , 2x1x2 ) 2 2 1 2 とすると、 x y 1 2x1 y1 2x2 y2 x2 y 2 x2 y 2 2x1x2 y1 y2 1 1 (x y) 2 1 2 2 1 2x1 y1 2x2 y2 x12 y12 x22 y22 2x1x2 y1 y2 よって、 (x) ( y) 1 (x y) 2 左辺は R6 の内積計算であるが、 右辺は R2 の計算で済む(カーネルトリック) 256次元の場合、 1 ( x y) 1 x1 y1 x2 y2 x256y256 2 2 右辺を展開して整理すると、33153次元になるらしい 多項式カーネル (x) ( y) 1 (x y) p 2次よりも高次元の場合にも使うことができる [注36] パターン識別における従来の方法論 • 与えられたデータを小さな次元の空間上に射影し、 誤り率が少ないように識別平面を構成 • 推定すべきパラメータ数を減らして統計誤差を 小さくした サポートベクトルマシンでは、 • 逆に超高次元空間に埋込み、分離平面を決定 • 最適化するパラメータの数は多いが、カテゴリ間 距離が大きくなるので統計誤差は少なくなる 文字認識や画像認識への応用 人手による認識率と同等の性能を持つ 高次元空間で表現される複雑な パターン認識において 「統計誤差を少なくする小さなモデルを選択する」 よりも、 「大きなモデルを用意して、統計誤差は別の方法 で抑えるようにする」 方が良い予測を行う可能性を示す
© Copyright 2024 ExpyDoc