サポートベクターマシン
SVMを拡張して線形分離可能ではないデータを扱えるようにするためには、ヒンジ損失(英語版)関数が有用である。
max ( 0 , 1 − y i ( w T x i − b ) ) . {\displaystyle \max \left(0,1-y_{i}({\boldsymbol {w}}^{T}{\boldsymbol {x}}_{i}-b)\right).}
ここで、 y i {\displaystyle y_{i}} は i {\displaystyle i} 番目のターゲット(すなわち、1または−1)であり、 w T x i − b {\displaystyle {\boldsymbol {w}}^{T}{\boldsymbol {x}}_{i}-b} は i {\displaystyle i} 番目の出力である。
この関数の値は、(1) の制約が満たされている場合、つまり、 x i {\displaystyle {\boldsymbol {x}}_{i}} がマージンの正しい側にある場合にはゼロとなる。マージンの反対側にあるデータに対しては、関数の値はマージンからの距離に比例する。
ニューラルネットワークを含む多くの学習アルゴリズムは、このような学習データが与えられた時 y i = 1 {\displaystyle y_{i}=1} であるいくつかの点と y i = − 1 {\displaystyle y_{i}=-1} であるいくつかの点とを分離する超平面をさがすのが共通の目標である。SVMが他のアルゴリズムと差別化される特徴は、ただいくつかの点を分離する超平面を捜すことで終わるのではなく、いくつかの点を分離することができる幾多の候補平面の中でマージンが最大になる超平面 (maximum-margin hyperplane) を探す点にある。ここでマージンとは、超平面から各いくつかの点に至る距離の最小値を言い、このマージンを最大にしながらいくつかの点を2つのクラスで分類しようとすると、結局クラス1に属するいくつかの点との距離の中の最小値とクラス−1に属するいくつかの点との距離の中の最小値とが等しくなるように超平面が位置しなければならず、このような超平面をマージン最大の超平面という。結論として、SVMは2つのクラスに属しているいくつかの点を分類する幾多の超平面の中で、最大限に2つのクラスのいくつかの点と距離を維持するものを探すアルゴリズムといえる。