SVMをおさらい（様々なSVMの数式を俯瞰する）

　こんにちは、(株)日立製作所  Lumada Data Science Lab. の中川です。普段は人工知能を制御に適用する研究に従事しています。近年、機械学習が注目される中、機械学習理論および機械学習を使った技術開発環境は急速に進歩すると共に、多くの方がデータサイエンスに関わるようになってきました。すでにデータサイエンスに携わっている方や、これからデータサイエンスに関わってみようと思っている方の中で、理論の大切さをあらためて知りたいあるいは感じたいという方がいらっしゃいましたら、それをできるだけわかりやすく伝えられたら、という思いから基本的な内容で記事を書きます。今回は、SVM(Support Vector Machine)をおさらいします。<br>　表１は、代表的なSVMをまとめています。SVMはクラス分類器ですが、データの種類、データの分布、分類方式に応じて、適切なSVMを選ぶことができます。また、SVMは、説明性に優れる一方で、ディープラーニングなどのカッティング・エッジな手法と比較しますとその精度は劣るというのが一般的な評価ではないかと思います。しかし、SVMは前記のように説明性に優れることに加え、その学習は、凸最適化問題に帰着することから、大域最適解であることが保証されるなど、理論的には魅力的なところが多々あります。凸最適化問題は、局所解と大域最適解が同一である解空間での最適化問題で、局所解が複数存在するような最適化問題より容易に最適化が可能です。表中に示されますように、SVMには、さまざまな形態がありますが、いずれもラグランジュの双対問題における最適化パラメータを用いて、識別線(面)の数式が表されます。今回は、その形を比較することでSVMを俯瞰してみます。



![Table_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641763/265d250d-6dbf-8146-2a47-2f921172bfbd.png)






# 1. はじめに

　SVMには、いくつかの種類があります。以下に簡単にまとめます。

・分類と回帰の機能がある。

・分類機能には下記がある。

　　－ 線形SVMと非線形SVMがある。

　　－ １クラス SVMと２クラスSVMがある。

　　－ ２クラスSVMには、ハードマージンSVMとソフトマージンSVMがある。

・回帰機能には下記がある。

　　－ 線形SV回帰と非線形SV回帰がある。

非線形SVMおよび非線形SV回帰は、カーネル関数を用いますので、カーネルマシンとして扱われることもあります。以上を図１にまとめてみました。



![Fig_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641763/08d6d263-38e3-2211-94b8-75bc72cd3777.png)




　SVMを体系的に理解するには、次の順序で進めて行くのが良いのではないかと思います。

1. 分類器としての2クラスハードマージン線形SVM<br>
     　　↓<br>
2. 分類器としての2クラスソフトマージン線形SVM<br>
     　　↓<br>
3. 分類器としての2クラス非線形SVM<br>
     　　↓<br>
4. 分類器としての1クラス非線形SVM<br>
     　　↓<br>
5. 回帰としての線形SV回帰/非線形SV回帰<br>

今回は、「1. 分類器としての2クラスハードマージン線形SVM」～「4. 分類器としての1クラス非線形SVM」がいずれもラグランジュの双対問題に基づく最適化問題に帰着することを示して、その形を比較することでSVMという分類器の性質を俯瞰してみます。



# 2. どのような分類を考えるのか？
### 2.1 ２クラスハードマージン線形SVM

　まず、２クラスハードマージン線形SVMを簡単におさらいしておきます。分類器としての２クラスハードマージン線形SVMは、どのような分類を考えるのか、を図２に示します。わかりやすいように２次元で表しています。直線 $f({\bf x})={\bf\omega}^{T} \cdot {\bf x} + \gamma=0$​ によりデータが（<span style="color: Cyan;">○</span>と<span style="color: Red; ">×</span>に）２分可能なデータの分布を考えます。ここで、データの分布は図２にありますように直線で分離可能な分布とします（ハードマージンは、このような分布を前提としています）。${\bf x}$​が<span style="color: Cyan; ">○</span>のときは $f({\bf x})>0$​ となり、${\bf x}$​が<span style="color: Red; ">×</span>のときは $f({\bf x})<0$​ となるような $f({\bf x})$​ を求めること、すなわち、$\bf{\omega}$​ と $\gamma$​​​ を決めることを考えます。



![Fig_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641763/9e9a806d-b614-6ac0-849d-824fed7c5099.png)





### 2.2 ２クラスソフトマージン線形SVM

　次に、２クラスソフトマージン線形SVMを簡単におさらいしておきます。分類器としての２クラスソフトマージン線形SVMは、どのような分類を考えるのか、を図３に示します。わかりやすいように２次元で表しています。直線 $f({\bf x})={\bf\omega}^{T}{\bf x} + \gamma=0$​​​​​​​​ によりデータが、できるだけ（<span style="color: Cyan;">○</span>と<span style="color: Red; ">×</span>に）２分可能なデータの分布を考えます。ここで、データの分布は図２にありますように直線で全てのデータが分離することはできないような分布とします（ソフトマージンは、このような分布を前提としています）。できるだけ多くの${\bf x}$​​​​​​​​に対して、${\bf x}$​​​​​​​​が<span style="color: Cyan; ">○</span>のときは $f({\bf x})>0$​​​​​​​​ となり、${\bf x}$​​​​​​​​が<span style="color: Red; ">×</span>のときは $f({\bf x})<0$​​​​​​​​ となるような $f({\bf x})$​​​​​​​​ を求めること、すなわち、${\bf\omega}$​​​​​​​​ と $\gamma$​​​​​​​​ を決めることを考えます。



![Fig_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641763/bd9061f7-f87c-a525-af41-9ab0002af098.png)





### 2.3 ２クラス非線形SVM

　次に、２クラス非線形SVMを簡単におさらいしておきます。分類器としての２クラス非線形SVMは、どのような分類を考えるのか、を図４に示します。わかりやすいように２次元で表しています。(1)式で示される曲線 によりデータができるだけ（<span style="color: Cyan;">○</span>と<span style="color: Red; ">×</span>に）２分可能なデータの分布を考えます。
$$
f({\bf x})\,=\,{\bf \omega}^T{\bf\phi}({\bf x})\,+\,\gamma = 0\hspace{1cm}・・・(1)
$$

ここに、${\bf\phi}(\bf{x})$​​ は、図中にもありますが(2)式で示されるように、非線形関数$\phi_k({\bf x})$​​​​​​​​ のベクトルで表されます。
$$
{\bf\phi}({\bf x})=[\,\phi_1({\bf x}),\,\phi_1({\bf x}),\,\cdots,\,\phi_m({\bf x})\,]\hspace{1cm}・・・(2)
$$
すなわち、(1)式で表される曲線は、非線形関数 $\phi_k({\bf x})$​​​​ の線形結合です。ここで、データの分布は図４にありますようにある曲線で全てのデータが分離することはできないような分布とします。できるだけ多くの ${\bf x}$​​​​ に対して、${\bf x}$​​​​ が<span style="color: Cyan; ">○</span>のときは $f({\bf x})>0$​​​​ となり、${\bf x}$​​​​ が<span style="color: Red; ">×</span>のときは $f({\bf x})<0$​​​​ となるような $f({\bf x})$​​​​ を求めること、すなわち、$\bf{\omega}$​​​​ と $\gamma$​​​​ を決めることを考えます。



![Fig_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641763/fb61b27b-7e68-d38d-c4c4-b6a19103e635.png)






### 2.4 １クラス非線形SVM（１クラスνサポートベクトルマシン）

　次に、１クラス非線形SVMの代表的な１形態であります１クラス$\nu$​サポートベクトルマシンを簡単におさらいしておきます。１クラス非線形SVMは、１クラスの名称が指してますように、データのクラスは一つしかない状態を前提とします。前節までに示しました図２、図３もしくは図４に基づけば、<span style="color: Cyan;">○</span>もしくは<span style="color: Red; ">×</span>のどちらかしかない状態を指します。１クラスのデータだけで分類を行うということは、得られている一つのクラスのデータだけでなんらかの領域を定義し、その領域内にあるデータとその領域外にあるデータで分類するというものです。<br>　図５は、１クラス$\nu$​サポートベクトルマシンの考え方を示しています。１クラス$\nu$​サポートベクトルマシンは、直線を境に<span style="color: Cyan;">○</span>と<span style="color: Red; ">×</span>を分類するものです。図５においては、<span style="color: Cyan;">○</span>を正常データとし、<span style="color: Red; ">×</span>を仮想異常データとしています。これは、一般に正常データを比較的多量に収集することが可能ですが、その一方で、異常データは得られにくいことが多いことを想定しています。すなわち、<span style="color: Cyan;">○</span>の正常データを用いた１クラス非線形SVMを考えています。なお、図５は、データ $\bf x$​ を非線形関数 $\phi({\bf x})$​ で射像した空間における表現です。すなわち元空間であるデータ $\bf x$​​​​ の空間では、図５における直線も非線形な形となります。また、図５は、２次元で表していますが、３次元以上でも同様の考え方が適用されます。その場合は、直線は超平面となります。



![Fig_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641763/cc0050f1-08d1-5c1a-56a4-22ad90b01f23.png)




このとき、識別直線は、次のi)とii)の条件を満たすように決めます。<br>　i) 識別直線は、異常データ<span style="color: Red; ">×</span>からできるだけ遠ざかるようにする。<br>　ii) 正常データ<span style="color: Cyan;">○</span>は、できるだけ多く、識別直線の上側に存在するようにする。<br>この条件i)はできるだけ直線を原点から遠ざけることを意味し、条件ii)はできるだけ直線を原点に近づけることを意味しますので、両条件はトレードオフの関係にあります。



### 2.5 １クラス非線形SVM（サポートベクトル領域記述法）

　次に、１クラス非線形SVMのもう一つの代表的な１形態でありますサポートベクトル領域記述法を簡単におさらいしておきます。<br>　図６は、サポートベクトル領域記述法の考え方を示しています。サポートベクトル領域記述法は、円の内側と外側で<span style="color: Cyan;">○</span>と<span style="color: Red; ">×</span>を分類するものです。なお、図６は、図５と同じく、データ $\bf x$​ を非線形関数 $\phi({\bf x})$​ で射像した空間における表現です。すなわち元空間であるデータ $\bf x$​ の空間では、図６における円も非線形な形となります。また、図６は、２次元で表していますが、３次元以上でも同様の考え方が適用されます。その場合は、円は超球となります。

![Fig_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641763/96d9332b-6603-34b2-2243-37d9e3a1f6a1.png)




このとき、円（中心と半径）は、次のi)とii)の条件を満たすように決めます。<br>　i) 円周は、異常データ<span style="color: Red; ">×</span>からできるだけ遠ざかるようにする。<br>　ii) 正常データ<span style="color: Cyan;">○</span>は、できるだけ多く、円の内側に存在するようにする。<br>この条件i)はできるだけ円の半径をできるだけ小さくすることを意味し、条件ii)はできるだけ円の半径をできるだけ大きくすることを意味しますので、両条件はトレードオフの関係にあります。




# 3. どのような最適化問題に帰着するのか？
### 3.1 ２クラスソフトマージン線形SVM

　前章でご紹介しました各SVMの学習（パラメータ値の決定）は、２次計画問題の形となります。２次計画問題とは、目的関数が２次形式であり、制約条件が１次関数である最適化問題です。２次計画問題には様々な解法がありますが、SVMの場合は、２次計画問題を主問題として、それと対で存在するラグランジュの双対問題を解くのが一般的です。そして、このラグランジュの双対問題は、双対変数に関する最適化問題に帰着します。本章では、前章でご紹介しました様々なSVMがそれぞれどのような双対変数に関する最適化問題に帰着するかを示し、似たような形になるということをご紹介したいと思います。<br> 　まず、２クラスソフトマージン線形SVMがどのような双対変数に関する最適化問題に帰着するかを示します。前章でご紹介しました２クラスハードマージン線形SVMは、全てのデータが（<span style="color: Cyan;">○</span>と<span style="color: Red; ">×</span>に）２分可能な特殊な２クラスソフトマージン線形SVMと解釈できますので、２クラスソフトマージン線形SVMのみを示します。(3)式と(4)式は、２クラスソフトマージン線形SVMの学習（パラメータ値の決定）を示した２次計画問題です。
$$
\underset{{\alpha}^i}{max}\,-\frac{1}{2}\sum\sum{\alpha}^iy^i{\alpha}^jy^j{{\bf x}^i}^T{\bf x}^j\,+\,\sum{\alpha}^i\hspace{1cm}・・・(3)
$$

$$
s.t.\;{\alpha}^i\geq0,\;\sum{\alpha}^iy^i=0,\;C-{\alpha}^i={\mu}^i\geq0\hspace{1cm}・・・(4)
$$

ここに、$y^i$ は、下式で表されるように、学習データ ${\bf x}^i$（ $i$​：データ番号 ）​ ひとつひとつに付与される正解ラベルです。
$$
y^i=\left\\{
    \begin{array}{ll}
        \,+1（\,{\bf x}^iが○のとき\,） \\\
        \,-1（\,{\bf x}^iが×のとき\,） \\\
    \end{array}
  \right.
$$

また、$\alpha$​​​ は、双対変数と呼ばれるパラメータで、係数 $C$​​​ は、ソフトマージンの性質を調節するパラメータで、誤分類を許容させない程度を調節する係数と言えます。すなわち、係数 $C$​​​​ の値が大きいほど、誤分類が少なくなるように学習します。(3)式は、$\alpha^i$​​​ に関する２次形式となっておりますので、$\alpha^i$​​​​​ に関する凸最適化問題に帰着していることがわかります。(3)式と(4)式を解くことで、(5)式で示されるソフトマージン線形SVMの識別線の式が得られます。
$$
f({\bf x})\,=\,\sum{\alpha}^iy^i{{\bf x}^i}^T{\bf x}\,+\,(\,{y’}^i – \sum{\alpha}^i{y}^i{{\bf x}^i}^T{{\bf x}'}^i\,)\,=0\hspace{1cm}・・・(5)
$$
ここに、${\bf{x}'}^i$​​および${y'}^i$​は、${\alpha}^i$​の値が下記の条件を満たすときの ${\bf x}^i$​ および ${y}^i$​​ です。
$$
\begin{array}{l}
\,&{{\bf x}’}^i : 0 < {\alpha_l}^i < C\,のときの\,{\bf x}\\\
\,&{y’}^i : 上記の{{\bf x}'}^iに対応した正解ラベル\,y
\end{array}
$$

(5)式において、${\bf x}^i,\,{{{\bf x}}'}^i$​​​ は学習データであり、$y^i$​​ は正解ラベル、${\bf x}$​​ はテストデータです。(5)式をみますと、ソフトマージン線形SVMの識別線は、双対変数 $\alpha^i$​ が決まれば、一意に決まることがわかります。なお、２クラスハードマージン線形SVMおよび２クラスソフトマージン線形SVMの詳細は、それぞれ別記事でまとめておりますので、ご興味のある方は、ご参考頂ければと思います。




### 3.2 ２クラス非線形SVM

　次に、２クラス非線形SVMがどのような双対変数に関する最適化問題に帰着するかを示します。(6)式と(7)式は、２クラス非線形SVMの学習を示した２次計画問題です。

$$
\underset{{\alpha}^i}{max}\,-\frac{1}{2}\sum\sum{\alpha}^iy^i{\alpha}^jy^jK({\bf x}^i,{\bf x}^j)\,+\,\sum{\alpha}^i\hspace{1cm}・・・(6)
$$

$$
s.t.\;{\alpha}^i\geq0,\;\sum{\alpha}^iy^i=0,\;C-{\alpha}^i={\mu}^i\geq0\hspace{1cm}・・・(7)
$$

ここに、 $K({\bf a},{\bf b})$  は、(8)式で定義される非線形関数の内積として表されるカーネル関数です。
$$
K({\bf a},{\bf b})={\bf\phi}({\bf a})^T{\bf\phi}({\bf b})\hspace{1cm}・・・(8)
$$
(6)式は、$\alpha^i$​ に関する２次形式となっておりますので、$\alpha^i$​ に関する凸最適化問題に帰着していることがわかります。(6)式と(7)式を解くことで、(9)式で示される２クラス非線形SVMの識別線の式が得られます。
$$
f({\bf x})\,=\,\sum\alpha^iy^iK({{\bf x}^i,\, {\bf x}})\,+\,(\,{y’}^i – \sum\alpha^i{y}^iK({{\bf x}^i},\, {{{\bf x}'}^i})\,)=0\hspace{1cm}・・・(9)
$$
ここに、${\bf{x}'}^i$​​​ および ${y'}^i$ ​​は、${\alpha}^i$​​ の値が下記の条件を満たすときの ${\bf x}^i$​​ および ${y}^i$​​​ です。
$$
\begin{array}{l}
\,&{{\bf x}’}^i : 0 < {\alpha_l}^i < C\,のときの\,{\bf x}\\\
\,&{y’}^i : 上記の{{\bf x}'}^iに対応した正解ラベル\,y
\end{array}
$$

(9)式において、${\bf x}^i,\,{{{\bf x}}'}^i$​​ は学習データであり、$y^i$​​ は正解ラベル、${\bf x}$​​ はテストデータです。(9)式をみますと、２クラス非線形SVMの識別線は、双対変数 $\alpha^i$​​ が決まれば、一意に決まることがわかります。<br>　２クラスソフトマージン線形SVMの学習を示した(3)式と２クラス非線形SVMの学習を示した(6)式を見比べますと、よく似ていることがわかります。(3)式において、${\bf x}^i$​​ → $\phi({\bf x}^i) $​​、${\bf x}^j$​​ → $\phi({\bf x}^j) $​​ と置き換えて、さらに、${\bf\phi}({{\bf x}^i})^T{\bf\phi}({\bf x}^j) → K({{\bf x}^i},\, {{\bf x}}^j)$​​ と置き換えることで、(6)式が得られます。(4)式には、非線形の項 $\phi({\bf x}^j) $​​ が含まれないので、(4)式と(7)式は同じです。また、２クラスソフトマージン線形SVMの識別線の式であります(5)式と２クラス非線形SVMの識別線の式であります(9)式を見比べますと、同じく、よく似ていることがわかります。(5)式において、${\bf x}^i$​​ → $\phi({\bf x}^i) $​​、${{\bf x}'}^i$​​ → $\phi({{\bf x}'}^i) $​​、${\bf x}$​​ → $\phi({\bf x}) $​​ と置き換えて、さらに、${\bf\phi}({{\bf x}^i})^T{\bf\phi}({\bf x}) → K({{\bf x}^i},\, {{\bf x}})$​​ 、${\bf\phi}({{\bf x}^i})^T{\bf\phi}({{{\bf x}'}^i}) → K({{\bf x}^i},\, {{{\bf x}'}^i})$​​ と置き換えることで、(9)式が得られます。${\bf{x}'}^i$​​ および ${y'}^i$​​ の定義は、２クラスソフトマージン線形SVMと２クラス非線形SVMで同じです。<br>　このように、２クラスソフトマージン線形SVMと２クラス非線形SVMは、良く似ていることがわかります。なお、２クラス非線形SVMの詳細は、別記事でまとめておりますので、ご興味のある方は、ご参考頂ければと思います。




### 3.3 １クラス非線形SVM（１クラスνサポートベクトルマシン）

　次に、１クラス非線形SVMの１形態である１クラス$\nu$サポートベクトルマシンがどのような双対変数に関する最適化問題に帰着するかを示します。(10)式と(11)式は、１クラス$\nu$サポートベクトルマシンの学習を示した２次計画問題です。
$$
\underset{{\alpha}^i}{max}\,-\frac{1}{2}\sum\sum{\alpha}^i{\alpha}^jK({\bf x}^i,{\bf x}^j)\hspace{1cm}・・・(10)
$$

$$
s.t.\;0\leq{\alpha}^i\leq\frac{1}{M\nu},\;\;\sum\alpha^i=1\hspace{1cm}・・・(11)
$$

ここに、$M$​はデータ数（正常データ数）です。また、$\nu$​ は、図５において、識別直線の位置を調節するためのパラメータです。その値が大きくなると、識別直線は原点（仮想異常データ<span style="color: Red; ">×</span>）から遠ざかり、その値が小さくなると、識別直線は原点（仮想異常データ<span style="color: Red; ">×</span>）に近づくようなパラメータです。(10)式および(11)式を解くことで、​識別直線の式を表す(12)式が得られます。
$$
f(x) = \sum\alpha^i K({\bf x}^i, {\bf x}) － \sum\alpha^i K({\bf x}^i, {\bf x'}^i) = 0\hspace{1cm}・・・(12)
$$

${\bf{x}'}^i$​​は、${\alpha}^i$の値が下記の条件を満たすときの ${\bf x}^i$ です。

$$
{{\bf x}’}^i : 0 < \alpha^i < \frac{1}{M\nu}\,のときの\,{\bf x}^i
$$

ここに、${\bf x}^i$ および ${{\bf x}'}^i$は学習データ、${\bf x}$ はテストデータです。(12)式をみますと、１クラス$\nu$サポートベクトルマシンの識別線は、双対変数 $\alpha^i$ が決まれば、一意に決まることがわかります。<br>　２クラス非線形SVMの学習を示した(6)式と１クラス$\nu$サポートベクトルマシンの学習を示した(10)式を見比べますと、似ていることがわかります。(6)式において、$y^i=1$（全て正常データ） とし、 $\sum\alpha^i=1$（ (11)式の制約条件 ）とすると、(10)式が得られます。また、(9)式において、$y^i=1$ とすると、(12)式が得られます。 <br>　このように、２クラス非線形SVMと１クラス$\nu$サポートベクトルマシンも、似ていることがわかります。なお、１クラス$\nu$サポートベクトルマシンの詳細も、別記事でまとめておりますので、ご興味のある方は、ご参考頂ければと思います。



### 3.4 １クラス非線形SVM（サポートベクトル領域記述法）

　次に、１クラス非線形SVMの１形態であるサポートベクトル領域記述法がどのような双対変数に関する最適化問題に帰着するかを示します。(13)式と(14)式は、サポートベクトル領域記述法の学習を示した２次計画問題です。

$$
\underset{{\alpha}^i}{max}\,-\frac{1}{\nu}\sum\sum{\alpha}^i{\alpha}^jK({\bf x}^i,{\bf x}^j)+\sum{\alpha}^i K({\bf x}^i,{\bf x}^i)\hspace{1cm}・・・(13)
$$

$$
s.t.\;0\leq{\alpha}^i\leq\frac{1}{M},\;\;\sum{\alpha}^i=\nu\hspace{1cm}・・・(14)
$$

ここに、$M$​はデータ数（正常データ数）です。また、$\nu$​ は、図６において、円の半径の大きさを調節するためのパラメータです。その値が大きくなると、円の半径は小さくなり（仮想異常データ領域から遠ざかり）、その値が小さくなると、円の半径は大きくなる（仮想異常データ領域に近づく、あるいは包含する）ようなパラメータです。(13)式および(14)式を解くことで、円の中心 $\bf c$​ と $\phi({\bf x})$​（データ $\bf x$​ を非線形関数 $\phi$​ で射像した結果） との距離 $l$​ の二乗値を与える(15)式が得られます。
$$
\begin{eqnarray}
l^2&=&||\,{\bf\phi}({\bf x})\,–\,{\bf c}\,||^2\\\
\\\
&=&K({\bf x},{\bf x})-\frac{2}{\nu}\sum\alpha^iK({\bf x},{\bf x}^i)+\frac{1}{{\nu}^2}\sum\sum\alpha^i\alpha^jK({\bf x}^i,{\bf x}^j)\hspace{1cm}・・・(15)
\end{eqnarray}
$$
このとき、円の半径の二乗値 $R^2$​​ は、(15)式の ${\bf x}$ ​​に、下記の条件を満たす ${{\bf x}'}^i$​​​ を代入して得ます。
$$
{{\bf x}’}^i : 0 < \alpha^i < \frac{1}{M}\,のときの\,{\bf x}
$$
上記の条件は、 ${{\bf x}'}^i$ が円周上にあることを意味し、いわゆるサポートベクトルであることを意味します。テスト時は、テストデータ ${\bf x}$ と円の中心の距離 $l$ の二乗値を(15)式から求めます。$l^2\leq R^2$ のとき、テストデータ ${\bf x}$ は、正常範囲である円の内側もしくは円周上にありますので、正常と判定します。$l^2>R^2$ のとき、テストデータ ${\bf x}$ は、正常範囲である円の外側にありますので、異常と判定します。２クラス非線形SVMの学習を示した(6)式とサポートベクトル領域記述法の学習を示した(13)式を見比べますと、よく似ていることがわかります。あるいは、１クラス$\nu$サポートベクトルマシンの学習を示した(10)式とサポートベクトル領域記述法の学習を示した(13)式を見比べてみても、よく似ていることがわかります。なお、サポートベクトル領域記述法の詳細も、別記事でまとめておりますので、ご興味のある方は、ご参考頂ければと思います。




# 4. まとめ

### 4.1 パラメータ値を決めるための最適化の式　

前章で示しました各SVMのパラメータ値を決めるための最適化の式をまとめます。

・２クラスソフト－マージン線形SVM
$$
\underset{{\alpha}^i}{max}\,-\frac{1}{2}\sum\sum{\alpha}^iy^i{\alpha}^jy^j{{\bf x}^i}^T{\bf x}^j\,+\,\sum{\alpha}^i\hspace{1cm}・・・(3)
$$

$$
s.t.\;{\alpha}^i\geq0,\;\sum{\alpha}^iy^i=0,\;C-{\alpha}^i={\mu}^i\geq0\hspace{1cm}・・・(4)
$$

・２クラス非線形SVM
$$
\underset{{\alpha}^i}{max}\,-\frac{1}{2}\sum\sum{\alpha}^iy^i{\alpha}^jy^jK({\bf x}^i,{\bf x}^j)\,+\,\sum{\alpha}^i\hspace{1cm}・・・(6)
$$

$$
s.t.\;{\alpha}^i\geq0,\;\sum{\alpha}^iy^i=0,\;C-{\alpha}^i={\mu}^i\geq0\hspace{1cm}・・・(7)
$$

・１クラス非線形SVM（１クラス$\nu$サポートベクトルマシン）
$$
\underset{{\alpha}^i}{max}\,-\frac{1}{2}\sum\sum{\alpha}^i{\alpha}^jK({\bf x}^i,{\bf x}^j)\hspace{1cm}・・・(10)
$$

$$
s.t.\;0\leq{\alpha}^i\leq\frac{1}{M\nu},\;\;\sum\alpha^i=1\hspace{1cm}・・・(11)
$$

・１クラス非線形SVM（サポートベクトル領域記述法）
$$
\underset{{\alpha}^i}{max}\,-\frac{1}{\nu}\sum\sum{\alpha}^i{\alpha}^jK({\bf x}^i,{\bf x}^j)+\sum{\alpha}^i K({\bf x}^i,{\bf x}^i)\hspace{1cm}・・・(13)
$$

$$
s.t.\;0\leq{\alpha}^i\leq\frac{1}{M},\;\;\sum{\alpha}^i=\nu\hspace{1cm}・・・(14)
$$

あらためて、各SVMの最適化の式は、お互いによく似ていることがわかります。



### 4.2 識別線の式

同様に、前節で示した最適化の式により最適化したパラメータ値を用いた識別線別線の式をまとめます。

・２クラスソフト－マージン線形SVM
$$
f({\bf x})\,=\,\sum{\alpha}^iy^i{{\bf x}^i}^T{\bf x}\,+\,(\,{y’}^i – \sum{\alpha}^i{y}^i{{\bf x}^i}^T{{\bf x}'}^i\,)\,=0\hspace{1cm}・・・(5)
$$
・２クラス非線形SVM

$$
f({\bf x})\,=\,\sum\alpha^iy^iK({{\bf x}^i,\, {\bf x}})\,+\,(\,{y’}^i – \sum\alpha^i{y}^iK({{{\bf x}'}^i},\, {\bf x})\,)=0\hspace{1cm}・・・(9)
$$
・１クラス非線形SVM（１クラス$\nu$サポートベクトルマシン）
$$
f(x) = \sum\alpha^i K({\bf x}^i, {\bf x}) － \sum\alpha^i K({\bf x}^i, {\bf x'}^i) = 0\hspace{1cm}・・・(12)
$$

・１クラス非線形SVM（サポートベクトル領域記述法）
$$
l^2=K({\bf x},{\bf x})-\frac{2}{\nu}\sum\alpha^iK({\bf x},{\bf x}^i)+\frac{1}{{\nu}^2}\sum\sum\alpha^i\alpha^jK({\bf x}^i,{\bf x}^j)\hspace{1cm}・・・(15)
$$
サポートベクトル領域記述法における式は、識別線ではなく、距離を示していますので、数式の形は、その他のSVMの数式とは、やや異なりますが、２クラスソフト－マージン線形SVM、２クラス非線形SVM、１クラス$\nu$​​サポートベクトルマシンの識別線の式は、お互いによく似ていることがわかります。



# 5. おわりに

　今回は、さまざまなSVMがいずれも帰着するラグランジュの双対問題の形とその双対問題における最適化パラメータを用いた識別線の数式を俯瞰し、それらがお互いによく似ていることをご紹介しました。本記事でご紹介しました内容のようにSVMを整理しておきますと、頭の中でうまくSVMを収めておくことができるかもしれません。なお、本文中でも述べておりますが、本記事でご紹介しました様々なSVMの詳細は、それぞれ記事にまとめておりますので、ご興味のある方は、ご参考頂ければと思います。

[SVMをおさらい（ハードマージン線形SVMの編） - Qiita](https://qiita.com/s-nakagawa2/items/67ea439a2e83adeae628)

[SVMをおさらい（ソフトマージン線形SVMの編） - Qiita](https://qiita.com/s-nakagawa2/items/2845e601180aef0765ef)

[SVMをおさらい（2クラス非線形SVMの編） - Qiita](https://qiita.com/s-nakagawa2/items/742285fd68a1aa5372bb)

[SVMをおさらい（１クラスνサポートベクトルマシンの編） - Qiita](https://qiita.com/s-nakagawa2/items/dc1f9196f8d9d11d2aeb)

[SVMをおさらい（サポートベクトル領域記述法の編） - Qiita](https://qiita.com/s-nakagawa2/items/a0d898635f475e24cca9)

　今回も、理論の大切さをあらためて知りたいあるいは感じたいという方がいらっしゃいましたら、それをできるだけわかりやすく伝えられたら、という思いから記事を書かせて頂きました。より詳しく知りたいという方は、参考文献などをご参考頂ければと思います。




# 参考文献

竹内 一郎、鳥山昌幸：サポートベクトルマシン

赤穂昭太郎：カーネル多変量解析