SVM(Support Vector Machine,サポートベクターマシーン)その2
前回の記事の続きです. 前回導出した SVM の双対問題を導出します.
導入
前回の記事では,ハードマージンSVMが解く最適化問題を求めました.
これは 変数,制約は 個の最適化問題です. 今回はこの問題の双対問題を考えてみようと思います.
双対形の導出
まずは,ラグランジュ乗数 を導入してラグランジュ関数 を定義します (, は主問題の変数, は双対問題の変数なのでセミコロンで区切りました).
この関数を主問題の変数 , について最小化します.
明らかに は凸関数ですので,最小値が存在します.主問題の変数で偏微分すると
となるので,これらを に代入すると
となり,双対形の目的関数が得られます.
以上より,SVM の双対問題は
となります.双対問題は 変数,制約は 個です.
ここで,
とすれば はグラム行列と呼ばれる半正定値行列ですので, 目的関数
は上に凸な二次関数(Quadratic function)であることがわかりやすくなります.
主問題と双対問題の関係
また,KKT条件から主問題の最適解 と双対問題の最適解 に対して
が成り立つので,双対問題の最適解 から主問題の最適解 を構築できます. 主問題の最適解 に関しては,次の考察からわかります.
サポートベクター
さて,相補正条件から得られる主問題の最適解 と双対問題の最適解 の関係式
より,各 に対して次が成り立ちます.
を で偏微分して得られた関係式
が主問題の最適解 と双対問題の最適解 について成り立つことを思い出すと, 最適解 は となるような を組み合わせて構成されることがわかります. のとき,相補正条件の式から が成り立つので,
- のとき.
となるので,訓練例 は 超平面の正例側で, 超平面との距離が最小()となるような例であることがわかります. - のとき.
となるので,訓練例 は 超平面の負例側で, 超平面との距離が最小()となるような例であることがわかります.
このような, となる のことをサポートベクター(Support Vector)と呼びます. は一意に定まりますが, を構成する の組み合わせは必ずしも一意には定まりませんので注意が必要です.
また,各サポートベクター に関しては,相補性条件より が成り立つので
得られます.従って最適な が求まれば,最適な が求まり, それから も双対問題の最適解を使って構築できることがわかります.
以上より,主問題の代わりに双対問題を解けば良いこともわかります.
おわりに
さて,これまでの式変形でハードマージンSVM で扱う最適化問題と,その双対問題を求めました. しかし,一般にはデータは超平面でラベルが+1のデータと-1のデータを分離できません(言い換えると,線形分離可能でないということです). そういう場合には,これまで展開してきた話の仮定が崩れることになりますので,定式化をやり直す必要があります. こうして新たに定式化し直されたSVMを ソフトマージンSVM と呼びます.
次の記事では,ソフトマージンSVMについて話をし, 余力があればハードマージンSVM,ソフトマージンSVMの汎化誤差の保証について話をしたいと思います.