サポートベクターマシン(SVM)は、二項分類や回帰に使用できる教師あり学習のアルゴリズムです。サポートベクターマシンは、自然言語処理、音声認識、画像認識、コンピュータビジョンなどのアプリケーションでよく使われます。
サポートベクターマシンは、データ中の2つのクラス間の分離マージン(2つのデータを分離する境界と各データとの距離)を最大化する超平面を求めます。サポート ベクターとは,決定面の最適な位置を導出するための少数の学習観測値を示します。
サポートベクターマシンはカーネル法と呼ばれる機械学習アルゴリズムのクラスに属し、カーネルマシンとも呼ばれています。
サポートベクターマシンの学習には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™ご覧ください。