出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/22 06:20 UTC 版)
線形 SVM
2クラスのサンプルで学習したSVMの最大マージン超平面とマージン。マージン上のサンプルはサポートベクターと呼ばれる。
以下のような形式の 個のトレーニング・データセットが与えられる。
は1または−1であり、それぞれ、点が属するクラスを示す。は-次元の実数ベクトルである。となる点のグループととなる点のグループとを分ける「最大マージン超平面」を求めたい。この超平面は、超平面と各グループのもっとも近い点との距離が最大になるように定義される。
超平面は下記を満たす点の集合として記述できる。
ここで、は超平面への法線ベクトルである。ヘッセ正規形とよく似ているが、は単位ベクトルとは限らない。原点から超平面までの法線ベクトルに沿った距離は、で求められる。
ハードマージン
学習データが線形分離可能であるとき、なるべくその距離が大きくなるように、2つのクラスのデータを分離するような、2つの平行な超平面を選択することができる。2つの超平面の間はマージン、2つの超平面の中間に位置する超平面は最大マージン超平面と呼ばれる。
正規化ないし標準化されたデータセットでは、これらの超平面は次の式で表される。
- (この境界以上の点は、全てラベル1)
と
- (この境界以下の点は、全てラベル−1)
この2つの超平面の間の距離は、幾何学的には、点と平面の距離(英語版)の公式を用いて、となる[2]。だから、超平面の間の距離を最大化するためには、 を最小化したい。
点がマージンに入らず、正しい側にいるための制約条件は、全てのに対し、以下の式が成立することである。
つまり、全てに対し、次のようになる。
以上をまとめると、次の最適化問題が得られる。
- "Minimize subject to for ."
これを解いて得られるとを用いて、分類器を決定することができる。ここで、は符号関数である。
この幾何学的記述から、最大マージン超平面は、それと最も近い位置にあるによって定まるという重要な帰結が得られる。をサポートベクターと呼ぶ。
ソフトマージン
SVMを拡張して線形分離可能ではないデータを扱えるようにするためには、ヒンジ損失(英語版)関数が有用である。
ここで、は番目のターゲット(すなわち、1または−1)であり、は番目の出力である。
この関数の値は、(1) の制約が満たされている場合、つまり、がマージンの正しい側にある場合にはゼロとなる。マージンの反対側にあるデータに対しては、関数の値はマージンからの距離に比例する。
最適化の目的は、以下を最小化することである。
パラメータは、マージンサイズを大きくすることと、がマージンの正しい側にあることとのトレードオフを決定する。が充分に小さいとき、損失関数の第2項は無視可能になり、ハードマージンSVMと同様の振る舞いをする。