今更 Support Vector Machine を実装してみる(1)
例の本、

- 作者: 荒木雅弘
- 出版社/メーカー: 森北出版
- 発売日: 2014/03/29
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
色々端折って書いてあるので、まずはそれを補足して本題に入りたいと思います。
補足1:式(7.12)を極とするパラメータの計算式の導出
を線形条件
の下で最小化する問題が解を持つための必要十分条件は KKT 条件
で与えられます。はラグランジュの未定係数です。
新しい式
では最小を与える点は w, w0 の微分が0になっているはずですが、w については考慮済みなので、
w0に関して微分すると教科書通り、 が
導出されるので、最小化するべき式は
となります。(教科書と符号が逆になっています。)
新しい制約条件を取り込むために再度ラグランジュの未定係数 を導入すると KKT 条件は
wをで書き直した式を w, w0 に関する境界条件に代入してみると
なので、 であることが分かります。(制約条件がいわいる「有効制約」になっている
ことにも注意します。)
をカーネル
と書き、(カーネルは可換であることに注意)
更にと置くと、上式は
ただし、 とします。
また左辺に出てくる行列をここだけの用語として「Aの拡大行列A'」と呼ぶことにします。
この式は解けるのか?
前節最後に導出した式は行列が半正定値、または半負定値であれば逆行列を持ちます。
Aの拡大行列A'の固有値をとした時、
という対角行列 D と直交行列 P が存在しますが、
なので、もし
で
あったとすると、
つまり、は行列 A の固有値になっていますので、A'の他の固有値は
全て0以上、または全て0以下となるはずです。よって二次形式
は任意ので0以上または0以下となるはずですが、この二次形式を
成分に展開してみると
となって例えばAが正定値の場合は
というを取ると二次形式は負となってしまい、矛盾します。
従って は非ゼロであり、逆行列が存在します。
線形方程式を解く
得られた方程式はサンプルの数次数の線型方程式となり、陽解法で解くのが難しくなります。
ここでは収束が比較的早い共役勾配法(
共役勾配法 - Wikipedia
)で解いてみる予定です。手法の詳細は Wikipedia を参照してください。
サンプルを解いてみる
サンプルとして、xor を考えます。 とします。
となるので、
となります。解くべき式は
この式を解くと
となります。
明日はこれらの式を Java で書き、Weka 付属のデータを食わせてみます。