数学的に考えてみる(ソフトマージンSVM)
もっと数学的な説明が欲しい方のために、少しまとめてみました。
問題の定式化
ハードマージンSVMではマージンの中にデータが入ることを許さず、次の条件を満たす必要がありました。 この条件では、データが線形分離不可能な場合に解が求まらない場合があります。 そこで、この条件を次のように緩和します。 はスラック変数と呼ばれるもので、先ほどの条件をどの程度違反しているかを表します。 データがマージンの中に入ってしまったときは、 誤って分類してしまったときはとなります。
ハードマージンSVMの目的関数にスラック変数をペナルティとして加えます。 はどの程度誤りを許すかを表します。 が大きいほど誤りに対して厳しく、ハードマージンSVMに近づきます。
双対問題への置き換え
ハードマージンSVMと同様に双対問題へ置き換えます。 ラグランジュの未定乗数を導入し、 の最小化と置き換えます。 KKT条件から次の条件を満たす必要があります。 これから が得られます。するとに関する項が打ち消し合って、結局ハードマージンSVMと同じ式が得られます。 ただし、とから、という条件がつきます。 制約条件が違うだけなので、クリッピングの条件を変えるだけでハードマージンSVMと同じように解けます。
最後にサポートベクトルからの値を求めるわけですが、このベクトルの選び方が少し違います。 のときとなるため、を満たしません。 このようなベクトルからはを直接求めることができないので、 となるようなベクトルを選ぶ必要があります。