機械学習の入門 評価方法 by 中川裕志(東京大学) 教師あり学習の評価 予測値の決め方 if p1 | x th then yˆ 1 (正解) otherwise yˆ (不正解) 1 機械学習の結果の予測器によって xが正解(1)である確率が閾値θthより大きけ れば予測値 ݕො=+1 小さければ ݕො=ー1 となる。 ここで、閾値への予測値の依存性に注意 閾値と正解の関係 閾値 一般的なデータ処理結果の状態 • 処理sで結果のデータ集合が得られた。しかし、結果の中には間違 いもあるし、得られなかったデータの中にも正解がありうる。 データ集合全体{x} TN(True Negative) 正解データの集合 ݕො=1の データ集合 FP (False positive) TP (True Positive) FN (False Negative) 性能評価尺度 再現率 適合率あるいは精度 フォールアウト 一般性 Accuracy or Rand Index TP recall TP FN precision TP TP FP fallout TN TN FP generarity accuracy TP TP TN FP FN TP TN TP FP TN FN 再現率 vs 精度 • よく使う評価の表現法 1.0 精度 再現率100%の自明 なシステム?? 0.0 0 0.5 再現率 1.0 再現率 vs 精度に関連した尺度 • • • Break even point 再現率と精度が一致する点 11点平均精度 再現率=0.0 , 0.1, 0.2, ….. 0.9, 1.0 の11点における 精度の平均値 F値 ただし、bは精度が再現率よりどれだけ重視されているかを示すパラ メタ― b=1がよく使われる。 (1 b 2 ) P R F b2 P R 2 PR 2 F 1 1 P R P R ROCとAUC ܶܲ ܶܲ ܰܨ ROC曲線 ROC曲線の下の部分の面積が AUC(Area Under Curve) ܲܨ ܲܨ ܶܰ 理想的な場合(表1.2) : 正解 : 不正解 θth=a: TPR=1/4 FPR=0 θth=b: TPR=4/4 FPR=0 θth=c: TPR=4/4 FPR=3/4 現実的な場合(表1.3) : 正解 : 不正解 θth=a: TPR=1/4 FPR=0 θth=b: TPR=2/4 FPR=2/4 θth=c: TPR=4/4 FPR=3/4 順位つき結果の評価 単純な識別では結果は全て同等 生成モデルの場合は、結果が適合性のよい 順番に並ぶ。(表示も適合順) この場合の評価法について Recall , Precision 処理qに適合する結果(以下、正解、という)の数: |Dq | 処理システムの順位つけられた結果: (d1…….dn) di が処理qへの正解なら ri=1、 そうでなければ ri=0 とする。すると、 第k順位まで拾ったときの 1 ri Recall(k ) | Dq | 1ik 1 Precision(k ) ri k 1i k 平均適合率:average precision 1 AveragePrecsion rk precision(k ) | Dq | 1 k N ただし、Nは正解が最後に現れた順位 • 例: 順位 AvPrec 1 1 2 2 1 4 0 . 75 1 2 3 4 5 6 正解 か 〇 〇 平均逆順位:Mean Reciprocal Rank(MRR) 1 RR : n は初めて正解がでた順 位 n もし、正解がひとつも 現れなければ MRR =0 MRR 全質問に対する RR の平均値 順位 • 例 1 1 MRR / 2 0.625 1 4 1 2 3 4 正解か 第1問 〇 第2問 〇 〇 nDCG DCG(Discounted Cumulative Gain) 結果には関連度(relevancy):Rが与えられている。Rは適 当な範囲の数値 順位i番目の結果の関連度をRiとする p位までの結果に対するCG(Cumulative Gain): CGp i 1 Ri p CGpに順位が低いものに関連度Rの高いものが現れた場 合のペナルティを考慮したのがDCGp p Ri DCGp R1 i 2 log2 i or more generally p i 1 f i Ri : f iはiの減少関数 DCGはRiの決め方や関数fiの定義に強く依 存 そこで理想的な場合のDCG(=IDCG)と実際 の結果に対するDCGの比を使う nDCG DCGp nDCGp IDCGp DCG,nDCGの例 結果: R1=4, R2=1, R3=4, R4=2, R5=1 log23=1.58, log24=2, log25=2.32 DCG5=4+1+4/1.58+2/2+1/2.32=8.96 IDCG5=4+4+2/1.58+1/2+1/2.32=10.70 nDCG5=8.96/10.70=0.83 もし、結果が関連度Rの大きい順に並んでいれば、 DCG=IDCGだから nDCG=1 もし、結果が逆順なら(1,1,2,4,4) DCG5=1+1+2/1.58+4/2+4/2.32=6.98 IDCG5=6.98/10.70=0.65 学習と評価(教師ありの場合) 正解データがある場合。 正解データ全部を教師データとして機械学習。学習結果のシ ステムをs s を教師データで評価 s を未知のデータで評価 本当は、未知データでの評価をしたいが、なにしろ未知 正解データを教師データとテストデータに分割 教師データで学習し、テストデータを未知データとみなして評価 正解データが少ない場合:N-fold cross validation(N-交差検定) 正解データをN等分。N-1個を教師データとして学習し、残りの1個で評価。 これをN種類繰り返す。 特殊なケースとして、1個だけを除いて学習し、その1個で評価。これを データ数繰り返す。Leave-one-out法 教師なしの場合 クラスタリングの場合 人手で正解データを作っておき、教師あり学習と 同じような評価。 一応、再現率も計測できる。 正解データが存在しない場合 学習結果をサンプリングして、人手で評価するし かない。 再現率は評価できない。 クラスタリングの評価:Purity 生成されたクラスタがどれだけ多数派で占めら れているかを表す尺度 N : データ数, C : 真のクラス集合 C1 ,...CK , 生成されたクラスタ数 L ni , j : 生成されたi番目のクラスタにおい て j番目の真のクラスに属 するデータ数 local purity max ni , j 1 L n j 1 global purity i, j L K n i 1 j 1 1 max ni , j j N i 1 L 1 i, j maxn L i 1 j i, j 1 2 3 5 4 6 purity (1) , purity (1) , purity (1) 7 8 10 local purity global purity purity 5 4 6 15 0.6 7 8 10 25 問題点 何もしない場合 全データが同一クラスタ 1クラスタが1データ purity purity 1 N 1 max ni , j N i, j 1 max n i, j j N i 1 L L 1 i 1 N 1 N クラスタiで捉えたクラ スjのデータ数 Inverse Purity max ni , j L K 1 j n InversePurity i , j N i 1 K j 1 ni , j i 1 1クラスタに1個のデータしかない場合も Inverse Purityは1より小さい。 そこでPurityとの調和平均であるF値で評価 F値 2 1 1 Purity InversePurity 再現率 のような もの 真のクラスjのデータ総数 1 2 5 4 6 15 Purity 7 8 10 25 InversePurity F値 3 8個、 7個、 1 5 4 6 7 8 10 0.598 25 8 7 10 2 1 1 0.6 0.598 0.599 10個 テストコレクション (a) 入力データ集合、(b) 解くべき問題(識別など)、(c)問題において <入力データ、推測結果>対の集合、を組にしたデータベースをテ ストコレクションと呼び、機械学習システムの性能評価において必須 の資源である ある入力データに対応する推定結果の個数が多いような問題(例え ば、情報検索)では、 <入力データ、推測結果>の大規模な集合を 作ることは大規模テストコレクションでは困難 Pooling method:、 同一の入力データ集合に対して、多数のシステム で同じ問題に対して出した上位N 個の結果を全て集める。N の値と して、100 程度が多い。この結果に対してのみその適合性を人手で 判断し、それを正解の集合とする 機械学習の入門 線形回帰および識別 by 中川裕志(東京大学) 線形モデル y=w1x+w0 y データ の分布状況 から線形回帰式を求 める w0 x 線形モデル 入力ベクトル:x から出力:y を得る関数がxの線形関数 (wとxの内積) K y x, w wi xi i 0 ただし、x [1, x1 ,, xK ]T , w [ w0 , w1 , , , wK ]T 一般に観測データはノイズを含んでいる。つまり y x, w はノイズでN (0, 2 )と考える。 得られたN個の観測データ の組(y,X)に対して最適なwを推 定する。 そこで、yと Xw の2乗誤差を最小化するようにwを選ぶ。 2乗誤差の最小化 y1 y yN x1T 1 x11 x1K X T x 1 x xNK N1 N w0 w w 1 wK ˆ arg min (y Xw)T ( y Xw) w の推定値w w (y Xw)T ( y Xw) 0 w を解くとXT Xw X T y w ( XT X) 1 XT y 正規方程式 と呼ばれる基本式 (y Xw )T 補遺:正規方程式の導出 (y Xw) y w X (y Xw) y y w X y y Xw w X Xw T T T T T T T T T wT XT y y T Xw w T XT Xw (y Xw)T (y Xw) 0 (1) w w w w T xT a wT XT y aT x y T Xw T aより X y aより y T X XT y w x w x T wT XT Xw wT XT Xw wT XT X w XT Xw wT XT X 2 XT Xw w w w (1) 2 XT y Xw 2 XT y 2 XT Xw 0 XT y XT Xw 1 w XT X XT y f ( g x ) g x f ( g x ) を使えば rule cf 行列で微分する場合 の chain x x g x (y Xw )T (y Xw) (y..) (y..)T (y..) (y..)T (y..)T (y..) w w (y..) w (y..)T XT (y Xw) XT (y Xw) 2 XT (y Xw) 正規方程式を解く簡単な例 1 x1 X 1 x N 1 x 1 y1 w 正規方程式 X T Xw X T yは y w 0 w1 y N y1 1 x1 1 1 1 w 0 w1 x1 x N xN y N 1 x N N N x i i 1 N y x i i w0 i 1 i 1 N N w xi2 1 xi yi i 1 i 1 N X X N w0 N xi2 xi i 1 i 1 N N N N 2 N N X T X w X T y xi i 1 N N 2 xi i 1N x i i 1 1 1 T N N N N w1 N i i 1 i i 1 i i 1 i i 1 N xi2 xi i 1 i 1 N N 2 i i i 1 N i i 1 N i i 1 i i i 1 i 1 N 2 N xi xi i 1 i 1 N N N xi yi xi yi i 1 i 1 i 1 N xi2 xi i 1 i 1 N N 2 N x y x x y y x Nx y x y 2 N 2 i 1 w0 N N N 1 yi w1 xi N i 1 i 1 用語:誤差、損失、目的関数 線形モデルで最小化したかったのは2乗誤差 真のモデルにおける値(2乗誤差におけるy)と 予測値(2乗誤差におけるXw)の差異を表す関数を 損失関数(単に損失)あるいはLossと呼び、Lで表す ことが多い。 上記のような最適化問題において最小化(一般的に は最適化)したい関数を目的関数と呼ぶ。 線形モデルの2乗誤差最小化では 2乗誤差=損失=目的関数 線形識別 と の領域の 境界面を線形関数 として求める 線形識別 x [ x1 , x2 , , xM ]T データ: xがいくつかのクラス(あるいはカテゴリー):Ckのどれか に属する。 例:新聞記事が「政治」「経済」「スポーツ」「芸能」「社会」などのクラ スのどれかに属する場合。この場合、データ:xは例えば、記事に 現れる単語の集合、など。 データ:xがK個のクラスの各々に属するかどうかの判定 は(-1=属さない,1=属する)の2値を要素とするK次 元ベクトル:yi=(-1,1,-1,..,1)で表される。 ただし、1つのクラスに属するか属さないかだけを識別すの場合は 2クラス分類という。当然、 yi=ー1 or yi = 1 この属するか否かの判断をする式が線形の場合を線形識 別という。 線形識別の関数 y (x) x, w w0 あるいは 1 ~ w0 ~ ~ とおくなら y (x) ~ x , w x, w x w 一般化線形識別の関数は以下 y (x) f ( x, w w0 ) fは非線形でもよい 2クラス分類 クラスC1に属するかC2(=notC1)に属するかは、次 の通り if y(x)≥0 then データ:xはC1に属する otherwiseデータ:xはC2に属する (すなわちC1に属さない) 2値分類の直観的説明 y={-1,1}、xは2次元とする。(下図を参照) {y,x}を教師データとして、2乗誤差の最小化を行っ て正規方程式を求めると、下図の のようなクラス を分類する分離平面が得られる。 x2 y=1 境界面 y=-1 x1 線形識別関数の幾何学的解釈 w0 xd || w || xa 識別境界線 xb xd y(x) || w || w xc y ( x a ) x a , w w0 0 , y ( x b ) x b , w w0 0 0 y ( x a ) y ( x b ) ( x a x b ), w wは ( x a x b )すなわち識別境界線と直交。 原点から識別境界線へ の垂線の交点を x dとおく。 0 y (x d ) x d , w w0 x d は w に並行で横ベクトルだ これを上式に代入して から、 x d , w | x d || || w || 整理すると x d , w w 0 || x d || || w || w 0 0 x | x d | w0 || w || 線形識別関数の幾何学的解釈 xa 識別境界線 xb x xd r w y(x) || w || xc w0 || w || x xc r w || w || 両辺とwの内積をとり、w0を足すと || w ||2 y (x c ) r y(x) x, w w0 x c , w w0 r || w || || w || y ( x) y(xc ) 0 だから r || w || w, w wの計算方法:2クラス分類の場合 ~ で書けるとする クラスC1 , C2の境界が y ( x) ~ x, w . ~ y (x ) が正ならクラス すると新規のデータ:xは C1に,負ならC2属する N個の教師データ~ xn , yn (n 1, N )があったとき . ただしクラス1ならyn 1, 0ならyn 1 T ~ x1 ~ X ~ T xN y1 Y y N ~~ XW ~ ~ x1 , w ~ ~ xN , w すると、観測データ(教師データ)において個々のクラスに 分類されたか否かの観点からの2乗誤差は次式となる T ~ ~ ~ ~~ E ( W ) XW Y XW Y もう少し詳しく書くと T ~ ~ ~~ XW Y XW Y ~ ~ x1 , w ~ ~ x1 , w ~ ~ y1 x N , w y N 2 ~ y y ~ x ,w 1 N N ~ ~ y x1 , w 1 ~ ~ y xN , w N 2 T ~ ~ ~ ~~ E ( W ) XW Y XW Y ~ ~ これを最小化する W は W で微分して0とおけ ば、線形回帰のときと同様の計算により求まる。 微分は次式: AT A AT ~~ ~ ~~ 2 A A XW Y 2 XT XW Y W W ~ E W ~ T ~ ~ ~ X XW Y 0 W ~ ~ T ~ 1 ~ T W (X X) X Y 新規のデータxnewに対する予測を行うy(xnew)も求ま る。 ~ ~ T ~ 1 ~ T W ( X X) X Y xnew ) y1 (~ ~ ~ ~ T ~ 1 ~ T ~ ~ y ( xnew ) xnew W xnew ( X X) X Y yK (~ xnew ) y(xnew)が大きいほどクラス C1 に属する可能性が高い。 機械学習の入門 サポートベクターマシン 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 min yn ( 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 n 1 N 0 an yn n 1 ( SVM 50) ( SVM 60) (SVM50)(SVM60)を(SVM40)に代入して、wとw0を消すと、 次のように双対問題としての定式化が得られる SVMの双対問題ー境界面で完全に分離できる場合 1 N N N ~ max L (a) max an an am yn ym k (x n , x m ) 2 n1 m1 n1 ( SVM 80) subject to an 0 n 1,.., N N a y n 1 n n 0 ( SVM 90) where k (x n , x m ) x n , x m ( SVM 70) これがカーネル関数(データ xn,xmの対だけによる) 後で説明する また、新規のデータに対する予測は次式のy (x)で行う N y (x) an yn k (x, x n ) w0 n 1 (SVM100) 上記(SVM70,80,90)を解くアルゴリズムは後に説明する。また、(SVM100)で良い 理由はカーネルの関する記述で述べる(表現定理) 双対化を最適化の観点から見なおそう 最適化問題 P min f x subject to gi x 0 i 1,.., m ラグランジュ関数 L x, f x i 1 i gi x m f x T g x , gはベクトルで書く 双対問題 Q q min L x, x max q subject to 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 ( SVM 40 ) 2 n 1 w , w0に関して微分すると以 下の条件が出る。 N w an yn x n n 1 ( SVM 50) N 0 an yn n 1 ( SVM 60) 上記の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 L x, Lx * , * max min L x, * x 0 0 x*は主問題, *は双対問題の解 前のページとの対応はww0=x, a=λ x スパースなデータに対する識別器 k (x n , xm ) xn , x m ;カーネル関数を利用して、回帰や 識別を行うことは k(x,y)において、 {x,y} のペアの観測デー タ(=教師データ)が膨大だと、正規方程式に現れた XTX (XTXがちょうどk(xn,xm)を(n,m)成分とする行列) の逆行列の計算が計算量的に困難! すべての観測データを使うと、重要な境界線が観測データの 集中的に集まっている部分に強い影響を受けてしまう。 限定された観測データを使って効率よく計算できないものだ ろうか。 正例データと負例データのうち、両者の境界にあるもの(これ をSupport Vectorという)だけを使えば、つまりスパースな データによるカーネルならずいぶん楽になる。 Support Vector Machine KKT条件 minimize f (x) subject to gi (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, xn w0 2 n 1 よって、全てのデータ は、 an 0 か yn y ( x n ) 1となる。 an 0の点は y (x) ( SVM 100)に寄与しない。 寄与するのは yn y ( x n ) 1の点だけ。 この点たちが support ve ctor である。 w0の求め方 support vector Sに含まれるデータnにおいては ym y (x m ) 1 N よって、ym an yn x m , xn w0 1 n1 2 両辺にymを掛け、ym 1に注意すると、 w0は以下の式で与えられる。 1 x , x w0 y a y m n n m n | S | mS nS SVMの定式化 境界面で完全に分離できない場合 y=ー1 y=0 ξ=1 負例側 無理やり分離する複雑な 境界面(over fitting) 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(xn ) 1 yn y(xn ) 0 1 yn y(xn ) n 1 yn y(xn ) n 0 where n 0 ...(SF10) ξn>1 が許容されるが、できるだけ小さく押さえたい! 最適化は以下のように形式化される。ただし、Cはスラック変 数ξのペナルティとmargin wの按配を制御するパラメター N 1 2 minmize C n || w || 2 n 1 where C 0 ...( SF 20) if 1 y y (x) 0 0 Loss (1 y y (x)) if 1 y y (x) 0 この関数を用いると次の 関数の最小化問題となる。 1 1 N N 2 2 min C Loss n (1 yn y (xn )) || w || min C n || w || 2 2 n1 n1 Loss n (1 y n y ( x n )) 1 || w ||2 2 n 0 1 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, xn 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 a n 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 an 0 an C 以上をまとめると制約条件は全体で以下のようになる 0 an C N a y n 1 n n 0 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 n 1 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だから、 a2new C a1old a2old は最小になっても a1newが最小値 0だから、 a2new a2old a1old よって、 U max( 0, C a1old a2old ), U a2new V V min( C , a2old a1old ) ( SMO 5) とおくと a2newの更新式の導出 1 N N N ~ max L (a) max an an am yn ym k (x n , x m ) ( SVM 70) 2 n1 m1 n 1 を、a1 , a2に関連する部分だけに 注目して最適化するこ とにする。 vi y j a j k xi , x j f xi y j a j k xi , x j N j 3 2 for i 1,2 と定義する。 j 1 すると( SVM 70)のa1 , a2に関連する部分 W (a1 , a2 )は次のように書ける。 ただし、K ij k xi , x j と略記する。 1 1 2 W (a1 , a2 ) a1 a2 K11a1 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を掛け、 y12 1に注意し、s y1 y2とおくと上の式は a1new sa2new a1 sa2 1 1 2 W (a2 ) sa2 a2 K11 sa2 K 22 a22 2 2 s sa2 a2 K12 y1 sa2 v1 y2 a2v2 定数 ( SMO6) W ( a2 )の最大化のためにa2で微分して 0とおく。 W (a2 ) 0 a2 1 s sK11 sa2 K 22 a2 K12 a2 sK12 sa2 y2v1 y2v2 0 2 s 2 1 sy1 y1 y2 y1 y1 y2 y2に注意。 new またこの式のa2が更新されたa2 であるから a2 new ( K11 K 22 2 K12 ) 1 s sK11 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 y2a2に注意し書き直すと 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 ) y2a2 K11 K 22 2 K12 K12 K 21 K11 K 22 2K12 で割れば、a2 a2 として a2 の更新式は、両辺にy2を掛け、 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 の更新値とする。 new a1newはa1new y1 a2new y2 a1old y1 a2old y2の両辺にy1を掛け、今更新したa2 によって a1new a1old y1 y2 (a2old a2new ) ( SMO9)
© Copyright 2024 ExpyDoc