クラシックな機械学習の入門 5. サポートベクターマシン SVMの概念 双対化によるSVMの定式化:線形分離可能な場合 KKT条件とサポートベクトル 双対化の御利益 ソフトマージンSVM:線形分離できない場合 SVM実装のためのアルゴリズム(ワーキング集合、SMO) SVMによる回帰 カーネル関数 by 中川裕志(東京大学) 再掲:2乗誤差最小化の線形識別の問題点 この領域に青の 境界線が引っ張 られることあり。 この領域の判断が 困難 そもそも、Yの値は正規分布を想定した理論なのに、{0、1} の2値しかとらないとして2乗誤差最小化を当てはめたところ に無理がある。 SVMの定式化 学習データ: N個の入力ベクトルx1,…,xNと 各々に対応するクラス分け結果 y1,….,yN ただし、 yi は+1(正例)かー1(負例)をとる。 新規のデータxに対して、yが y(x)>0なら正、y(x)<0な ら負になるようにしたい y (x) w, x w0 正しい分類ができた場 合は、 y (x) 0かつ y 1 すなわち、 あるいは y (x) 0かつ y 1 y ( x) y 0 正しく分類できなかっ た場合は、当然ながら y ( x) y 0 y(x)=+1 y(x)=0 y(x)=ー1 正例 Support vector この長さを最 大化したい: (SVM10)の max margin 境界面との距離が小 さいデータを選びた い(SVM10)のmin | y (x) | || w || 負例 この図から分かるよ うに対象は線形分離 可能な場合 マージン最大化 SVMの狙いは識別境界面:y(x)=0から一番近いデ ータ点までの距離(マージン:margin)を最大化する こと。以下でその考えを定式化する。 識別境界面:y(x)=0からあるxまでの距離は、線形 識別の幾何学的解釈で述べたようにy(x)/||w|| 我々は正しく識別されたデータ、すなわち yny(xn)>0 のデータにだけ焦点を当てる。 すると、点xnから境界面までの距離は次式。 yn y (x n ) yn ( w, x n w0 ) || w || || w || wを定数倍してcwと変換しても、境界面までの距離 yny(xn)/||w||の値は分母子でcが相殺するので不変。 よって、境界面に一番近い点で次式が成立している とする。 yn ( w, x n w0 ) 1 したがって、最適なw,w0を求めることは、境界面までの距離が 最小の点の距離(margin)を最大化するという問題に定式化でき、 以下の式となる。 1 arg max minyn ( w, x n w0 ) w , w0 || w || n ( SVM 10) この最適化はそのままでは複雑なので、等価な問題に変換す る。 双対問題化 元の問題では、argmax{ min }という一般的な枠組みの問題な ので、内点法などの効率の良い最適化アルゴリズムが良く研究さ れている「線形制約凸2次計画問題」に変換する方向に進める。 参考文献:工系数学講座17「最適化法」(共立出版) 境界面に一番近いデータでは yn ( w, x n w0 ) 1 したがって、正しく識別された全てのデータは次式の制約を満た す。 yn ( w, x n w0 ) 1 n 1,, N ここで、等号が成り立つデータをactive、そうでないデータを inactiveと呼ぶ。 制約条件: yn ( w, x n w0 ) 1 n 1,, N ( SVM 20) ここで、等号が成り立つデータをactive、そうでないデータを inactiveと呼ぶ。 定義より、activeなデータは境界面に一番近いデータであり、こ れがsupport vectorとなる。 このとき、marginを最大化する式(SVM10)から、||w||-1を最大 化するのだが、これは等価的に||w||2を最小化する問題となる。す なわち、以下の定式化。 1 1 T 2 arg min || w || w w 2 2 w ,b subject to yn ( w, x n w0 ) 1 n 1,, N ( SVM 30) (SVM30)のような不等式制約を持つ最適化問題は、Lagrange未 定乗数ベクトルaを導入したLagrange関数: L(w, w0,a)を w,w0(最小化)a(最大化) という最適化問題に双対化する まず、w, w0について、 L(w, w0,a)の最適化を行う。 N 1 2 L(w, w0 ), a) || w || an 1 yn ( w, x n w0 ) ( SVM 40) 2 n 1 w, w0に関して微分すると以 下の条件が出る。 N w an yn x n ( SVM 50) n 1 N 0 an yn ( SVM 60) n 1 (SVM50)(SVM60)を(SVM40)に代入して、wとw0を消すと、 次のように双対問題としての定式化が得られる SVMの双対問題ー境界面で完全に分離できる場合 N 1 N N ~ max L (a) max an an am yn ym k (x n , x m ) 2 n1 m1 n1 subject to an 0 n 1,.., N ( SVM 80) N a y n 1 n n 0 ( SVM 70) ( SVM 90) これがカーネル関数(データ xn,xmの対だけによる) 後で説明する where k (x n , x m ) x n , x m また、新規のデータに 対する予測は次式の y (x)で行う N y (x) an yn k (x, x n ) w0 ( SVM100) n 1 上記(SVM70,80,90)を解くアルゴリズムは後に説明する。また、(SVM100)で良い 理由はカーネルの関する記述で述べる(表現定理) 双対化を最適化の観点から見なおそう 最適化問題 P min f x subject togi x 0 i 1,..,m ラグランジュ関数 Lx, f x i 1 i gi x m f x T g x , gはベクトルで書く 双対問題 Q q min L x, x max q subject t o 0 双対定理 弱双対定理 最適化問題Pにおけるfの最適値=f* 双対問題Qにおけるqの最適値=q* q* ≤ f* 強双対定理 目的関数fが凸で、制約条件が線形の場合は q* = f*であり、対応するラグランジュ乗数λ*が存在 する。 Pは制約条件が線形なので、 fが凸なら強双対 定理が成立 双対化を最適化の観点から見なおそう 元の問題(再掲) 1 arg min || w ||2 2 w , w0 subject to yn ( w, x n w0 ) 1 n 1,, N ( SVM 30) この問題では目的関数は2乗ノルムなので凸 であり、制約条件が線形な式なので、強双対 定理が成立し、双対問題を解けば、この問題 (主問題)の解が得られる。 鞍点定理からみると 元の問題(再掲) 1 arg min || w ||2 2 w ,b subject to yn ( w, x n w0 ) 1 n 1,, N ( SVM 30) N 1 2 L(w, w0 , a) || w || an 1 yn w, x n w0 2 n 1 ( SVM 40) w, w0に関して微分すると以 下の条件が出る。 N w an yn x n ( SVM 50) n 1 N 0 an yn ( SVM 60) n 1 上記のLagrange関数L(w,w0,a)の最小化の 意味は次のページの図 Lagrange関数L(w, w0,a)の最小化の意味は下の図で 鞍点にかかる曲線に上から近づく処理であり、 L L となるw, w0を代入して のように動く。 0, 0 w w0 この曲線に沿って最適点 に a を動かす処理が双対 問題であり、図から分かるように最大化となる min Lw, w0 , a という問題 つまり max w ,w a 0 鞍点定理 x , * min max Lx, Lx* , * max min Lx, * x 0 0 x*は主問題, *は双対問題の解 前のページとの対応はww0=x, a=λ x スパースなデータに対する識別器 k (x n , x m ) x n , x m ;カーネル関数を利用して、回帰や 識別を行うことは k(x,y)において、 {x,y} のペアの観測デー タ(=教師データ)が膨大だと、正規方程式に現れた XTX (XTXがちょうどk(xn,xm)を(n,m)成分とする行列) の逆行列の計算が計算量的に困難! すべての観測データを使うと、重要な境界線が観測データの 集中的に集まっている部分に強い影響を受けてしまう。 限定された観測データを使って効率よく計算できないものだ ろうか。 正例データと負例データのうち、両者の境界にあるもの(これ をSupport Vectorという)だけを使えば、つまりスパースな データによるカーネルならずいぶん楽になる。 Support Vector Machine KKT条件 minimize f (x) subject t ogi (x) 0 i 1,..,m は m L(x, ) f (x) i gi (x) Lagrangian i 1 を最適化する以下の条件で得られる m f (x) igi (x) 0 ( KKT 1) g i ( x) 0 ( KKT 2) i 0 i gi (x) 0 ( KKT 3) i 1 ( KKT 4) これを KKT条件と呼ぶ。なお i 0なら gi (x) 0なので、 このような giを有効な制約と呼ぶ。 m f (x) i gi (x) 0 の解釈 i 1 g2(x)=0 f (x) 2g2 (x) 1g1(x) gi(x)は許容領 域から離れる ほど大きくなる f(x)は許容領 域の中に入る ほど大きくなる 許容領域の内部でf(x)が大き くなるということは、その外側 へ向う有効なgi(x)たちが作る 凸錐の逆方向にf(x)の勾配が 向いている f (x) 許容領域 g1(x)=0 gi ( x )が許容領域から離れる ほど大きいなら 勾配gi ( x ) m g (x) f (x) i 1 i i なので、許容領域に入 り込むほど大きいので f ( x )は許容領域の端で最小 なお、この問題におけ る KKT条件は以下のようにな る。 1 yn y ( x n ) 0 (KKT - 2) an 0 (KKT - 3) an (1 yn y (x n )) 0 (KKT - 4) m L(x, ) f (x) i gi (x) i 1 だったが、ここでの定 g i ( x) 0 式化では、 N 1 2 L(w, w0 , a) || w || an 1 tn w, x n w0 2 n 1 よって、全てのデータ は、 an 0 か yn y (x n ) 1となる。 an 0の点は y (x) ( SVM 100)に寄与しない。 寄与するのは yn y (x n ) 1の点だけ。 この点たちが support vector である。 w0の求め方 support vector Sに含まれるデータ nにおいては ym y ( x m ) 1 N よって、 ym an yn x m , x n w0 1 n 1 両辺に ymを掛け、 ym 2 1に注意すると、 w0は以下の式で与えられ る。 なお、1個の mだけではなく、 しているのは解の安定 性のため mS w0 1 y m an y n x m , x n | S | mS nS 双対化の御利益: 教師データアクセスの観点から 主問題と双対問題は最適化するパラメタ-数 が違う。 主問題パラメタ-数 >>双対問題パラメタ-数 な ら双対問題を解くほうが楽 教科書的 SVMの場合: 主問題のパラメタ-は重みベクトル:w 双対問題にパラメタ-は個別データ:xi 必ずしも教科書的なお得感ではない。 双対化の御利益 SVMの場合: 主問題のパラメタ-は重みベクトル:w 下の定式化なので、全教師データ{yn,xn}が同時 に必要 1 arg min || w ||2 2 w , w0 subject to 高次元ベクトル yn ( w, x n w0 ) 1 n 1,, N ( SVM 30) データ量が大きくメモリにロード仕切れない場 合に困ったことになる。 データ量は最近、増加傾向 双対化の御利益 必ずしも教科書的なお得感ではない。 一方、双対問題では入力データxiyiのと最適化するaiが対応 する形で最適化式に現れるので、どのデータを学習で使うか 制御しやすい。(下の式参照) 例えば、 ai(i≠j)を固定して、ajを最適化する操作をjを動かして繰り返 すなど。そのときには k x i , x j j 1,..., N だけしか使わない。 スカラー N 1 N N ~ max L (a) max an an am yn ym x n , x m 2 n1 m1 n1 subject to an 0 n 1,.., N ( SVM 80) N a y n 1 n n 0 ( SVM 70) ( SVM 90) where k (x n , x m ) x n , x m とも書く 双対化の御利益 入力データ、あるいはカーネル行列 全体がメモリに乗り切らないビッグデ ータを扱うために、入力(すなわちカ ーネルk(xn, xm)の一部を取捨選択し てメモリにロードして使う方法が、こ N の双対化で可能になっている。 ビッグデータ時代における御利益 cf. 台湾大学のLIBSVM (SVMの有名な実 装) 全データからどのようにメモリにロードする部 分を切り出すかが重要な研究課題 M k(xn, xm) この部分だけ 使って最適化: 次に使う部分 ロードし直して最 適化:繰り返す SVMの定式化 境界面で完全に分離できない場合 y=ー1 y=0 無理やり分離する複雑な 境界面(over fitting) ξ=1 負例側 y=+1 ξ>1 ξ<1 正例側 少々は間違った側に入り 込んでもよいが、ゆるい 境界面の内側には入るよ うに調整soft margin ξ=0 スラック変数ξ≥0を導入 正しいsoft marginの境界面の上ないし内側の点ではξ=0 その他の点xnでは ξn=|yn-y(xn)| 中央の識別境界面 y(xn)=0 では、 ξn=1 間違って識別された点はξn>1 まとめると線形分離できない場合の制約条件のξによる緩和: 1 yn y ( x n ) 1 yn y ( x n ) 0 1 yn y ( x n ) n 1 yn y (x n ) n 0 where n 0 ...( SF10) ξn>1 が許容されるが、できるだけ小さく押さえたい! 最適化は以下のように形式化される。ただし、Cはスラック変 数ξのペナルティとmargin wの按配を制御するパラメター N 1 2 minmizeC n || w || 2 n 1 where C 0 ...( SF20) if 1 y y (x) 0 0 Loss (1 y y (x)) if 1 y y (x) 0 この関数を用いると次 の 関数の最小化問題とな る。 N 1 N 1 2 2 min C Loss n (1 yn y (x n )) || w || min C n || w || 2 2 n1 n1 Loss n (1 yn y ( x n )) 1 || w ||2 2 n 0 1 yn y ( x n ) この最適化問題を解くためのLagrangianは以下のようになる。 最後の項はξ≧0 を表す項。 N N N 1 2 L(w, w0 , a) || w || C n an 1 yn y (x n ) n n n 2 n 1 n 1 n 1 where an 0 n 0 KKT条件は以下の通り。 an 0 1 yn y ( x n ) n 0 an 1 yn y (x n ) n 0 n 0 n 0 n n 0 where n 1,..., N y (x n ) w, x n w0 ...( SF 30) w、b、ξを最適化するためにLagrangianを各々で微分すると右下 の結果が得られる。 N L 0 w an y n x n 右をLagrangianに代入す w n 1 N L ると下の双対問題が得られ 0 an y n 0 w0 n 1 線形制約凸2次計画問題 L 0 an C n となる。 n N 1 N N ~ L (a) an an am yn ym x n , x m 2 n1 m1 n 1 k x n , x m x n , x m 制約条件は n 0 以上をまとめると制約 0 an C N a y n 1 n n 0 an 0 an C 条件は全体で以下のよ うになる SVM実装上のアルゴリズムの 工夫 さて、いよいよ ai を求める段階になった。 SVMは「線形制約を持つ凸2次計画問題」な ので、標準的な実装方法が使える。 ただし、次元が高い場合には、カーネルの行 列をメモリに乗せるだけで大変。 独自の工夫がなされているので、ポイントを 紹介 最適解の探索は、素朴なgradient ascent法 でも解けるが、効率は良くない。 ワーキング集合法 教師データSを分割して部分的に解くことを繰り返す。 教師データSに対して ai0 Sの適当な部分集合S’を選ぶ repeat S’に対する最適化問題を解く KKT条件を満たさないデータから新たなS’を選択 until 停止条件を満たす return {ai} 分解アルゴリズム 変数{ai}の集合全体ではなく、ある大きさの部 分集合(ワーキング集合)のみを更新する。 この更新の後、ワーキング集合に新たな点を 加え、他の点は捨てる。 上記の{ai}の選択における極端な方法として、 2個のaiだけを使って更新する方法を 逐次最小最適化アルゴリズム (Sequential Minimal Optimization algorithm:SMO algorithm)と言う。 N 1 N N ~ L (a) an an am yn ym x n , x m 2 n1 m1 n 1 なぜ2点か? 復習:右の k x n , x m x n , x m ような最適化 制約条件は n 0 an 0 an C だった。 以上をまとめると制約 条件は全体で次式 0 an C N a y n 1 n n 0 ( SMO 1) ( SMO 2) (SMO-2)より、最適化の各ステップで更新され るaiの個数の最小値は2。なぜなら、1個のaiを更 新したときは、(SMO-2)を満たすために、最低 でもう1個のaiを調整のために更新する必要がある から。 S’の2点を最適化する更新式 S '=更新の対象となる 2点 x1 , x 2 とする。 y a k x , x y a K N N j 1 a2 new j j a2 i old j j 1 j j i, j f xi y2 f (x1 ) y1 f (x 2 ) y2 K11 K 22 2 K12 a1new a1old y1 y2 (a2old a2new ) ( SMO9) ( SMO8) 2点の更新式の導出 対象とする2点をa1 、 a2とする。 動かすのが2点をa1 、 a2だけなので次式が成立 a1new y1 a2new y2 a1old y1 a2old y2 定数 ( SMO 3) ただし yi 1か 1(i 1,2) まず、 a2をa2oldからa2newに変えることにする。 a2の取る範囲の制約 0≤a2≤Cから当然 0≤a2new≤C ただし、(SMO-3)から次の制約が加わる。 y1 y2の場合 ( SMO 3)より a2new a1old a2old a1new a2newは最大になっても a1newが最大値 0だから、 a2new a1old a2old は最小になっても a1newが最小値 Cだから、 a2new a1old a2old C よって、 U max(0, a1old a2old C ), U a2new V V min(C , a1old a2old ) とおくと ( SMO 4) y1 y2の場合 ( SMO 3)より a2new a2old a1old a1new a2newは最大になっても a1newが最大値 Cだから、 は最小になっても a1newが最小値 0だから、 a2new C a1old a2old a2new a2old a1old よって、 U max(0, C a1old a2old ), U a2new V V min(C , a2old a1old ) ( SMO 5) とおくと a2newの更新式の導出 N 1 N N ~ max L (a) max an an am yn ym k (x n , x m ) ( SVM 70) 2 n1 m1 n1 を、 a1 , a2に関連する部分だけに 注目して最適化するこ とにする。 vi y j a j k xi , x j f xi y j a j k xi , x j N 2 j 3 j 1 for i 1,2 と定義する。 すると ( SVM 70)の a1 , a2に関連する部分 W (a1 , a2 )は次のように書ける。 ただし、 K ij k xi , x j と略記する。 1 1 K11a12 K 22 a22 y1 y2 a1a2 K12 y1a1v1 y2 a2v2 定数 2 2 ここで a1new y1 a2new y2 a1old y1 a2old y2 a1 y1 a2 y2の両辺に y1を掛け、 W (a1 , a2 ) a1 a2 y12 1に注意し、 s y1 y2とおくと上の式は a1new sa2new a1 sa2 1 1 2 K11 sa2 K 22 a22 2 2 s sa2 a2 K12 y1 sa2 v1 y2 a2v2 定数 W (a2 ) sa2 a2 ( SMO6) W (a2 )の最大化のために a2で微分して 0とおく。 W (a2 ) 0 a2 1 s sK11 sa2 K 22 a2 K12 a2 sK12 sa2 y2v1 y2v2 0 s 2 1 sy1 y1 y2 y1 y1 y2 y2に注意。 2 new またこの式の a2が更新された a2 であるから a2 new ( K11 K 22 2 K12 ) 1 s s K11 K12 y2 (v1 v2 ) y2 y2 y1 y1 K11 K12 v1 v2 2 ここで ( SMO7) vi f (xi ) y j a j K ij に入っている a1 , a2は古い値なので、 j 1 上記 ( SMO7)が更新式となる。 ( SMO7)の両辺に y2を掛け、もう少し書き a2 new 直して整理してみよう 。 y2 ( K11 K 22 2 K12 ) 2 2 j 1 j 1 y2 y1 y1 K11 K12 f (x1 ) y j a j K1 j f (x 2 ) y j a j K 2 j a1 sa2 および y1 y1a1 sy1a2 y1a1 y2 a2に注意し書き直すと y2 y1 f (x1 ) f (x 2 ) y1a1 y2 a2 K11 K12 y1a1K11 y2 a2 K12 y1a1K 21 y2 a2 K 22 y2 y1 f (x1 ) f (x 2 ) y2 a2 K11 K 22 2 K12 K12 K 21 a2 の更新式は、両辺に y2を掛け、K11 K 22 2 K12 で割れば、 a2 a2 として new old a2 new a2 この結果の old y2 f (x1 ) y1 f (x 2 ) y2 K11 K 22 2 K12 ( SMO8) new a2 の値に対して ( SMO 4)( SMO5) の条件で制約した new ものを a2 の更新値とする。 a1newは a1new y1 a2new y2 a1old y1 a2old y2の両辺に y1を掛け、今更新した a2 によって new a1new a1old y1 y2 (a2old a2new ) ( SMO9) SVMによる回帰 SVMは本来、2クラス分類器であり、識別モデルで ある。 しかし、回帰すなわち生成モデルにも使える。 線形回帰では次の式を最小化した。 N 2 2 y y x || w || n n n 1 この考え方を拡張する。 0 E ( y (x) y ) | y ( x) y | if | y ( x) y | otherwise 下 図参照 この関数を用いると回 帰は、次の 関数の最小化問題とな る。 N 1 min C E ( y (x n ) yn ) || w ||2 2 n1 E y x y y x y y y x 赤、青の2個のヒン ジ損失の組み合わ せであることに注意 -ε 0 +ε y x y y+ε ξ>0 yn y ( x n ) y y-ε ˆ 0 y (x n ) yn ここで、上図の赤い線 の上で正となるスラッ ク変数 と、 青い線の下で正となる スラック変数 ˆを導入する。 すなわち y ( x n ) yn y ( x n ) で0、その外側で yn y ( x n ) n y ( x ) y ˆ n n n ( SVM 100) ( SVM 101) 0という条件は下記。 こうすると最適化問題 N は 1 ˆ minˆ C n n || w ||2 w , n , n 2 n 1 subject to yn y ( x n ) n y (x ) y ˆ n n n ( SVM 100) ( SVM 101) n 0 ( SVM 102) ˆn 0 ( SVM 103) Lagrangianは N L C n 1 N N 1 2 n ˆn || w || n n ˆ nˆn 2 n 1 N an yn n y x n aˆn yn ˆn y x n n 1 n 1 ( SVM 110) N N 1 2 L C n ˆn || w || n n ˆ nˆn 2 n 1 n 1 N N an n y x n yn aˆn ˆn y x n yn n 1 n 1 y ( x ) w, x w0 N ( SVM 110) を代入すると N 1 L C n ˆn || w ||2 n n ˆ nˆn 2 n 1 n 1 an yn n w, x n w0 aˆn yn ˆn w, x n w0 N N n 1 n 1 その上で w, w0 , n , ˆnで微分 Lの最小化のために微分 L 0 w L 0 w0 L 0 n N w an aˆn x n n 1 N an aˆn 0 n 1 L 0 aˆn ˆ n C ˆn ~ この結果を Lに代入し最大化すべき L を求めると an n C 1 N N ~ L (a,aˆ ) an aˆn am aˆm x n , x m 2 n 1 m 1 N N n 1 n 1 an aˆn an aˆn yn ( SVM 120) k ( x n , x m ) x n , x m とも書く ~ この L を最適化する an , aˆnを求める問題に帰着し た。 この式の導出は次々ペ ージ以降に記述 上の導出過程から次の 制約が得られる。 0 an C 0 aˆn C また、回帰モデルは以 下のようになる。 N y ( x ) an aˆn x, x n w0 n 1 ( SVM 120) an 0, aˆn 0のときは ( SVM 110)より N w0 yn w, x n w an aˆn x nを代入し n 1 N yn am aˆm x n , x m m 1 (SVM120)の導出 KKT条件は以下のようにな り、導入された変数と an yn n y x n 0 ( a 1) aˆn yn ˆn y x n 0 ( a 2) (C a ) 0 ˆ ˆ (C aˆ )ˆ 0 制約条件を消せる。 ε+ξ>0, ε+ξ^>0 n n n n n n n n not ( yn n y x n ) 0かつ( yn ˆn y x n ) 0 N N 1 2 L C n ˆn || w || n n ˆ nˆn 2 n 1 n 1 an aˆn 0 an yn n w, xn w0 aˆn yn ˆn w, xn w0 N N n 1 n 1 n C an N ˆ n C aˆn N L n L 0 ˆ n (C an ) n (C aˆn )ˆn (C an ) n (C aˆn )ˆn n 1 n 1 N N 1 2 || w || an yn w, xn w0 aˆn yn w, xn w0 2 n 1 n 1 N N (C an ) n (C aˆn )ˆn (C an ) n (C aˆn )ˆn n 1 n 1 N N 1 || w ||2 an yn w, x n w0 aˆn yn w, x n w0 2 n 1 n 1 N w an aˆn x n と n 1 L 0 w0 N a n 1 n aˆn 0 により N N 1 N N an aˆn am aˆm x n , x m an aˆn an aˆn yn 2 n 1 m 1 n 1 n 1 N N 1 N N an aˆn am aˆm x n , x m an aˆn an aˆn yn 2 n 1 m 1 n 1 n 1 カーネル ( Mは教師データの次元数 , Nは教師データ数 ) Φ x1 ,..., x N T 1 x1 M x1 x x M N 1 N 1 x1 M x1 1 x1 1 x N K ΦΦT x x x x M N M 1 M N 1 N M i x1 i x1 i 1 M i x N i x1 i 1 M 計画行列 Design Matrix カーネル関数:k(xi,yj)を要 素とするグラム行列 i x1 i x N k x , x k x , x 1 1 1 N i 1 M k x , x k x , x i x N i x N N 1 N N i 1 M i x k x kの第 i成分 : xkiなら k x k , x l xki xli x k , x l : 内積 i 1 正定値カーネル: 対称行列k(xi,xj)が半正定値:グラム行列: 既存のカーネル関数から別のカーネル関数を構成する方法 k ( x, y ) ck1 ( x, y ) ( k 1) k ( x, y ) f ( x )k1 ( x, y ) f ( y ) k ( x, y ) q( k1 ( x, y )) fは任意の関数 qは係数正の多項式 k ( x, y ) exp(k1 ( x, y )) ( k 5) k ( x, y ) k1 ( x, y )k2 ( x, y ) ( k 6) k ( x, y ) xT Ay x (x a , x b ) ( k 3) ( k 4) k ( x, y ) k1 ( x, y ) k2 ( x, y ) k ( x, y ) k1 ( ( x ), ( y )) ( k 2) ( k 7) Aは対称半正定値行列 y (ya , yb ) ( k 8) ( x, yとも同じ次元に分割) k ( x, y ) k1 ( x a , y a ) k2 ( x b , y b ) ( k 9) k ( x, y ) k1 ( x a , y a )k2 ( x b , y b ) ( k 10) のとき カーネルの例 問題の非線形性あるいは高次性を非線形な カーネルで表すことになる k (x, y ) xT y 線形カーネル k (x, y ) (xT y 1) M M 1,2,... 多項式カーネル Gaussianカーネル:RBF || x y ||2 k (x, y ) exp 2 2 以下の分解によりGaussianカーネルがカーネル関数 だといえる by (k-1)(k-2)(k-4) || x y ||2 xT x y T y 2xT y xT x yT y xT y k ( x, y ) exp( 2 ) exp( 2 ) exp( 2 ) 2 2 表現定理 SVMなどの最適化は下のような形 N 1 2 min || w || an 1 tn y (x n ) where 2 n 1 y (x n ) w, x n w0 min f losstn ,xn f f H 教師データに対す る損失 正の単調増加関数 である正則化項 このとき上の最適化問題の解fは下記の形 N f x i k x, x n i 1 よって、一般的なカーネルであっても(SVM100)の 形の解を想定できる。 よもやま話:スイスロール-1 多様体に写像 してから識別 境界を切る よもやま話:スイスロール-2 同じ色のデータ のうち近接するも のを繋いで、多 様体を近似的に 求め 色が違うデータを 繋ぐところで切る この多様体による 制約を考慮して分 類する最適化問題 の定式化は? 捕捉:線形回帰、識別からカーネル関数へ y ( w ) wT (x) という一般化した線形 回帰式に対して T 1 N T J ( w ) w ( x n ) tn w w 2 2 n 1 2 ただし 1 ( x n ) (x n ) (x ) M n tnは w T ( x n )がとるべき値。 ( Mは教師データの次元数 , Nは教師データ数 ) という正規化項つきの 2乗誤差を考えるとき 、 ( x )についてもう少し組織 的に考えてみよう。 カーネル関数と呼ばれる k x , y で回帰や識別を考え直す ことにより、より効率の良い方法が見えてくる。 双対表現 まず、L2-正規化項つきのL2-損失(=2乗誤差関数)を考える。 J ( w) 1 2 2 w ( x ) t w w 2 N T tnはwT (x n )がとるべき値。 T n n 0 n 1 J w 0 からJ(w)を最小化するwを求め、その右辺をaとΦで表す。Nは教師データ数 w w w (x 1 N n 1 a ( a1 ,, a N )T ) tn ( x n ) an ( x n ) ΦT a N T n n 1 an w (x 1 T n ) tn 以上の表記を用い、J(w)をJ(a)として書き直すと 1 T 1 T T T T T T J (a) a Φ Φ Φ Φ a a Φ Φ t t t a Φ ΦT a 2 2 2 t (t1 , , t N )T wがφ(xn)の anを重みとす る線形結合 で書けること に注目 ここで下記の要素を持 つN Nの Gram行列 K Φ ΦT を定義する。 K nm (x n )T (x m ) k (x n , x m ) : カーネル関数という 。 カーネル関数を用いると、J(a)、a、y(w)は次のように書ける 1 T 1 T T T J (a) a KKa a Kt t t a Ka 2 2 2 J (a) 1 ここで 0 より a K Ι N t a y ( x ) w T ( x ) aTΦ ( x ) M個の基底関数φiがあったとすると、カーネル関数は、内積の 形で以下のように書ける。 k (x, y ) (x)T ( y ) M i 1 i (x)i ( y ) (x) ( 1 (x),M (x))T
© Copyright 2024 ExpyDoc