サポートベクターマシン (SVM):分類のための機械学習アルゴリズム

サポートベクターマシン(SVM)は、二項分類や回帰に使用できる教師あり学習のアルゴリズムです。サポートベクターマシンは、自然言語処理、音声認識、画像認識コンピュータビジョンなどのアプリケーションでよく使われます。

サポートベクターマシンは、データ中の2つのクラス間の分離マージン(2つのデータを分離する境界と各データとの距離)を最大化する超平面を求めます。サポート ベクターとは,決定面の最適な位置を導出するための少数の学習観測値を示します。

サポートベクターマシンはカーネル法と呼ばれる機械学習アルゴリズムのクラスに属し、カーネルマシンとも呼ばれています。

サポートベクターマシンの学習には2つのフェーズがあります

  1. 予測変数(入力データ)を高次元の特徴空間に変換。ここでは,カーネルを指定するだけで十分であり、データは明示的に特徴空間に変換されません。このプロセスは,一般にカーネル トリックとして知られています。
  2. 変換された特徴量を2つのクラスに分類するための最適な超平面の導出に向け、2次最適化問題を解きます。変換された特徴量の数は,サポート ベクターの数に依存します。

決定面を構築するために、学習データから選択されたサポート ベクターのみが必要となります。一度学習されると、学習データの残りの部分は重要でなくなります。

以下が、一般的にSVMで使用される一般的なカーネルです。

サポートベクターマシン(SVM)の種類 Mercer カーネル 概要
ガウスまたは放射基底関数 (RBF) \(K(x_1,x_2) = \exp\left(-\frac{\|x_1 - x_2\|^2}{2\sigma^2}\right)\) 1クラス分類 \(\sigma\)はカーネルの幅
線形 \(K(x_1,x_2) = x_1^{\mathsf{T}}x_2\)
2クラス分類
多項式 \(K(x_1,x_2) = \left( x_1^{\mathsf{T}}x_2 + 1 \right)^{\rho}\)
\(\rho\) は多項式の次数
シグモイド \(K(x_1,x_2) = \tanh\left( \beta_{0}x_1^{\mathsf{T}}x_2 + \beta_{1} \right)\)
特定の \(\beta_{0}\) 、 \(\beta_{1}\)値のみのマーサーカーネル

サポートベクターマシンについての詳細はStatistics and Machine Learning Toolbox™ご覧ください。

参考: Statistics and Machine Learning Toolbox, Deep Learning Toolbox, machine learning, unsupervised learning

ディープラーニングと従来の機械学習: 適切なアプローチの選択