Support vector machineとは? わかりやすく解説

Weblio 辞書 > 学問 > OR事典 > Support vector machineの意味・解説 

サポート・ベクター・マシーン

読み方さぽーと・べくたー・ましん
【英】:support vector machine

概要

線形判別関数求め教師付き機械学習法のひとつである. 判別関数複雑さ度合い判別精度双方考慮した二次計画問題として定式化され,判別関数算出される. ここで用いられる二次計画問題構造特化した最適化アルゴリズム知られており, データ数が多い大規模な判別問題でも, 多く場合実用的な速度最適化を行うことが可能である. また,カーネル関数用いることで, 非線形判別関数算出することも可能である.

詳説

 サポート・ベクター・マシン (SVM) は, 判別関数求め教師付き学習法のひとつである.

 今, N\, 個の属性持ったデータM\, 与えられており,これを,N\, 次元空間\mathbb{R}^{N}\, の点\boldsymbol{a}_{1}, \boldsymbol{a}_{2},\ldots, \boldsymbol{a}_{M} \in \mathbb{R}^{N}\, 考える. 各点\boldsymbol{a}_{j}\ (j=1,2,\ldots,M)\, 2種類クラスいづれか一方属しており, 対応する2値のラベルy_{j} \in \{-1,+1\}\, 与えられているとする. このとき, ラベルの値にしたがって点を判別する2クラス判別問題考える.

 SVMでは線形関数用いた判別を行う. N\, 次元法線ベクトル\boldsymbol{w} \, および実数b\, 定まる線形関数f(\boldsymbol{x}) = \boldsymbol{x}^{T} \boldsymbol{w}- b\, とすれば, 与えられデータおよびラベルにしたがって,



f(\boldsymbol{a}_{j}) = \boldsymbol{a}_{j}^{T} \boldsymbol{w}- b \left\{
\begin{array}{ll}
 > 0 & \mbox{if}\ \ y_{j} = 1,\\
 < 0 & \mbox{if}\ \ y_{j} = -1,
\end{array}
\right.\quad j=1,2,\ldots,M
\,     (1)\,


となるベクトル\boldsymbol{w} \, スカラb\, 次に示す最適化問題を解くことで算出する.

 一般的には, 与えられた点全てに対して(1)満たす\boldsymbol{w},b\, 存在するとは限らないので, 非負変数\xi_{j}\ (j=1,2,\ldots,M)\, 導入し, 次の制約条件



 \begin{array}{lll}
 {\displaystyle \boldsymbol{a}_{j}^{T} \boldsymbol{w}- b + \xi_{j} \geq 1 }
 & \mbox{if}& y_{j} = 1, \\
 {\displaystyle \boldsymbol{a}_{j} \boldsymbol{w}- b - \xi_{j} \leq -1 }
 & \mbox{if}& y_{j} = -1
\end{array}
\,     (2)\,


のもと,\xi_{j}\, の和と\boldsymbol{w}\, ノルムできるだけ小さくなる線形関数考える. すなわち, 次の二次計画問題解き\boldsymbol{w},b\, 算出する [2].


\left| 
\begin{array}{l}
\\
\\
\\
\\
\\
\end{array} \right. 最大化 \textstyle \frac{1}{2}\| \boldsymbol{w} \|^{2}_{2} + C \ {\sum}_{j=1}^{M} \xi_{j}     (3)\,
制約 \textstyle 
 \boldsymbol{a}_{j}^{T} \boldsymbol{w}- b + \xi_{j} \geq 1,
 \quad \mbox{if } y_{j} = 1,
\textstyle
 \boldsymbol{a}_{j}^{T} \boldsymbol{w}- b - \xi_{j} \leq -1,
 \quad \mbox{if } y_{j} = -1,
\textstyle
 \xi_{j} \ge 0, \quad j=1,2,\ldots,M


ここで,C\, はあらかじめ設定された正の定数で, \textstyle \| \boldsymbol{w} \|^{2}_{2}\, \textstyle {\sum}_{j=1}^{M} \xi_{j}\, とのバランスコントロールするパラメータである. また, \textstyle \| \boldsymbol{w} \|^{2}_{2}\, 正則化項とも呼ばれ, これを小さくすることは判別関数用いデータ属性少なくし, 過学習を防ぐ役割があるとされる [6]. 問題 (3) は, 1ノルムソフトマージンSVM呼ばれる定式化である.

 通常は,この問題双対問題考え最適化を行う [5]. \alpha_{1},\alpha_{2},\ldots,\alpha_{M}\, 双対変数とすれば, 問題 (3)双対問題


\left| 
\begin{array}{l}
\\
\\
\\
\\
\end{array} \right. 最大化 \textstyle 
 - \frac{1}{2} \sum_{i=1}^{M}\sum_{j=1}^{M}
 y_{i}y_{j} \boldsymbol{a}_{i}^{T} \boldsymbol{a}_{j}\alpha_{i}\alpha_{j}
 + \sum_{j=1}^{M} \alpha_{j}     (4)\,
制約 \textstyle \sum_{j=1}^{M} y_{j} \alpha_{j}= 0,
0 \leq \alpha_{j} \leq C,\quad j=1,2,\ldots,M


と書くことができ, これは1本の等式制約と各変数の上下限制約のみの凹二次関数最大化となる. この特殊構造用いた最適化アルゴリズム [3, 4] が知られており, データ(M)\, が数10万超えるような大規模問題であっても, 高速最適化が可能である.

 双対問題 (4)最適解\alpha^{*}_{1},\alpha^{*}_{2},\ldots,\alpha^{*}_{M}\, とすれば,KKT条件より主問題 (3)最適解\boldsymbol{w}^{*},b^{*}\, とは, \textstyle \boldsymbol{w}^{*} = \sum_{j=1}^{M} \alpha_{j}^{*} y_{j} \boldsymbol{a}_{j}\, となる関係があり, さらに0<\alpha_{k}^{*}<C\, となる添え字k\, とすれば, b^{*} = \boldsymbol{a}^{T}_{k} \boldsymbol{w}^{*}-y_{k}\, となることが示される. また, 特に添え字集合SV=\{j|\alpha_{j}^{*} \not = 0 \}\, を定義すれば,j \in SV\, 対応するデータ\boldsymbol{a}_{j}\, をサポート・ベクターと呼ぶ.したがって, 判別関数双対問題最適解とサポート・ベクターにより次のように表されることとなる.


 f(\boldsymbol{x}) = \boldsymbol{x}^{T} \boldsymbol{w}^{*} - b^{*}
 = \sum_{j \in SV} \alpha_{j}^{*} y_{j} \boldsymbol{x}^{T} \boldsymbol{a}_{j} - b^{*}\,      (5)\,


さらに, 双対問題 (4) や主問題 (3) は, サポート・ベクター以外を全て取り除いて最適解不変であり, これらの点はSVMでの判別はまった寄与していないことになる.

 SVM最大特徴は, 双対問題(4)応用することで非線形判別関数構成できる点にある. 非線形判別関数構成するためには, まず, 適当な線形変換\phi: \mathbb{R}^{N} \to {\mathcal F}\, 使いデータ\boldsymbol{a}_{j}\, をより高い次元特徴空間{\mathcal F}\, 元へ射影する. 射影された{\mathcal F}\, の元\phi(\boldsymbol{a}_{1}),\phi(\boldsymbol{a}_{2}),\ldots,\phi(\boldsymbol{a}_{M})\, に対して, {\mathcal F}\, 上で線形判別関数求めれば, 元の空間見れば線形判別関数求めたこととなる.

 ここで, 双対問題 (4)注目すれば,{\mathcal F}\, 上の内積\phi(\boldsymbol{a}_{i})^{T}\phi(\boldsymbol{a}_{j})\, の値のみが得られれば定式化が可能であり, 特徴空間での点\phi(\boldsymbol{a}_{j})\, 座標を必ずしも必要としないことが分かる. そこで, SVMではカーネル関数呼ばれる特殊な関数\mathcal {K} ( {\cdot} , {\cdot} )\, 用い元のデータ\boldsymbol{x}, \boldsymbol{x}' \in \mathbb{R}^{N}\, から直接{\mathcal F}\, の元\phi(\boldsymbol{x}),\phi(\boldsymbol{x}')\, 内積\phi(\boldsymbol{x})^{T}\phi(\boldsymbol{x}')\, 算出し, 双対問題最適化により非線形判別関数求められる [1]. よく用いられる代表的なカーネル関数として, 多項式カーネル\mathcal{K} (\boldsymbol{x}, \boldsymbol{x}' ) = \left( \boldsymbol{x}^{T}\boldsymbol{x}' + c \right)^{d}\,RBFカーネル \mathcal{K} (\boldsymbol{x},\boldsymbol{x}' ) = \exp\left( -\| \boldsymbol{x} - \boldsymbol{x}' \|^{2}/ \sigma^{2} \right )\, , (ただしd\, 自然数パラメータ, c,\sigma\, 実数パラメータである) などがある.


 カーネル関数の値\mathcal{K} ( \boldsymbol{a}_{i}, \boldsymbol{a}_{j} ) \, i-j\, 成分とするM\, 次の対称行列K\, とすれば, K\, 半正定値行列となるようなカーネル関数をMercerカーネル(あるいは半正定値カーネル)と呼び, このようなカーネル関数であれば,\mathcal{K} ( \boldsymbol{a}_{i}, \boldsymbol{a}_{j} )=\phi(\boldsymbol{a}_{i})^{T}\phi(\boldsymbol{a}_{j})\, となる特徴空間へ変換\phi(\cdot)\, 存在することが保証される. 多項式カーネルRBFカーネルはMercerカーネルである [5].また, Mercerカーネル用いるのであれば, 対応した双対問題は常に凹二次関数最大化となり, 通常の二次計画問題解法用いれば大域的に最適化が可能である.

 すなわち, 双対問題最適解\alpha_{j}^{*}\, とすれば, カーネル関数用いた場合には, 次の線形判別関数求められることとなる.


f(\boldsymbol{x}) = \sum_{j \in SV}\alpha_{j}^{*} y_{j}
 \mathcal{K} ( \boldsymbol{x}, \boldsymbol{a}_{j} )- b^{*}.\,      (6)\,


 すなわち, 判別関数f(\cdot)\, は, サポート・ベクター \boldsymbol{a}_{j}\ (j \in SV)\, 対応するカーネル関数\mathcal{K} (\boldsymbol{x}, \boldsymbol{a}_{j} )\, 重ね合せとして算出されると見ることができる.



参考文献

[1] B. E. Boser, I. M. Guyon, and V. N. Vapnik, "A training algorithm for optimal margin classifiers," in Proceedings of the fifth annual workshop on Computationa learning theory, USA, 144-152, 1992.

[2] C. Cortes and V. Vapnik, "Support-vector networks," Machine learning, 20 (1995), 273-297.

[3] T. Joachims, "Making large-scale support vector machine learning practical," in Advances in Kernel Methods, B. Schölkopf, C. Burges, and A. Smola, eds., The MIT Press, 169-184, 1999.

[4] J. C. Platt, "Fast training of support vector machines using sequential minimal optimization," in Advances in Kernel Methods, B. Schölkopf, C. Burges, and A. Smola, eds., The MIT Press, 185-208. 1999.

[5] J. Shawe-Taylor and N. Cristianini, Kernel Methods for Pattern Analysis, Cambridge University Press, 2004.

[6] V. N. Vapnik, The nature of statistical learning theory, Statistics for Engineering and Information Science, Springer-Verlag, 2000.


サポートベクターマシン

(Support vector machine から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/22 06:20 UTC 版)

サポートベクターマシン: support-vector machine, SVM)は、教師あり学習を用いるパターン認識モデルの1つである。分類回帰へ適用できる。1963年ウラジミール・ヴァプニク英語版とAlexey Ya. Chervonenkisが線形サポートベクターマシンを発表し[1]1992年にBernhard E. Boser、Isabelle M. Guyon、ウラジミール・ヴァプニクが非線形へと拡張した。


  1. ^ V. Vapnik and A. Lerner. Pattern recognition using generalized portrait method. Automation and Remote Control, 24, 1963.
  2. ^ Why is the SVM margin equal to ”. Mathematics Stack Exchange. 20150530閲覧。
  3. ^ Ioannis Tsochantaridis; Thorsten Joachims; Thomas Hofmann; Yasemin Altun (2005). “Large Margin Methods for Structured and Interdependent Output Variables”. The Journal of Machine Learning Research 6 (9): 1453-1484. http://www.jmlr.org/papers/volume6/tsochantaridis05a/tsochantaridis05a.pdf. 




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Support vector machine」の関連用語

Support vector machineのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Support vector machineのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本オペレーションズ・リサーチ学会日本オペレーションズ・リサーチ学会
Copyright (C) 2024 (社)日本オペレーションズ・リサーチ学会 All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのサポートベクターマシン (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS