サポートベクターマシン(, SVM)は、教師あり学習を用いるパターン認識モデルの一つである。分類や回帰へ適用できる。1963年に Vladimir N. Vapnik, Alexey Ya. Chervonenkis が線形サポートベクターマシンを発表し、1992年に Bernhard E. Boser, Isabelle M. Guyon, Vladimir N. Vapnik が非線形へと拡張した。サポートベクターマシンは、現在知られている手法の中でも認識性能が優れた学習モデルの一つである。サポートベクターマシンが優れた認識性能を発揮することができる理由は、未学習データに対して高い識別性能を得るための工夫があるためである。サポートベクターマシンは、線形入力素子を利用して 2 クラスのパターン識別器を構成する手法である。訓練サンプルから、各データ点との距離が最大となるマージン最大化超平面を求めるという基準(超平面分離定理)で線形入力素子のパラメータを学習する。最も簡単な場合である、与えられたデータを線形に分離することが可能な(例えば、3次元のデータを2次元平面で完全に区切ることができる)場合を考えよう。このとき、SVMは与えられた学習用サンプルを、もっとも大胆に区切る境目を学習する。学習の結果得られた超平面は、境界に最も近いサンプルとの距離(マージン)が最大となるパーセプトロン(マージン識別器)で定義される。すなわち、そのようなパーセプトロンの重みベクトル formula_1 を用いて、超平面は formula_2 で表される。学習過程はラグランジュの未定乗数法とKKT条件を用いることにより、最適化問題の一種である凸二次計画問題で定式化される。ただし、学習サンプル数が増えると急速に計算量が増大するため、分割統治法の考え方を用いた手法なども提案されている。次のような学習データ集合 formula_3 が与えられた場合を考える。formula_5 は 1 もしくは -1 の値を持つ変数で formula_6 が属したクラスを意味する。formula_6 は formula_8 次元の特徴ベクトルである。ニューラルネットワークを含む多くの学習アルゴリズムは、このような学習データが与えられた時 formula_9 であるいくつかの点と formula_10 であるいくつかの点とを分離する超平面をさがすのが共通の目標であるが、SVMが他のアルゴリズムと差別化される特徴はただいくつかの点を分離する超平面を捜すことで終わるのではなく、いくつかの点を分離することができる幾多の候補平面の中でマージンが最大になる超平面 (maximum-margin hyperplane) を探す点にある。ここでマージンとは、超平面から各いくつかの点に至る距離の最小値を言い、このマージンを最大にしながらいくつかの点を二つのクラスで分類しようとすると、結局クラス 1 に属するいくつかの点との距離の中の最小値とクラス -1 に属するいくつかの点との距離の中の最小値とが等しくなるように超平面が位置しなければならず、このような超平面をマージン最大の超平面という。結論として、SVMは二つのクラスに属しているいくつかの点を分類する幾多の超平面の中で、最大限に二つのクラスのいくつかの点と距離を維持するものを探すアルゴリズムといえる。1963年に, Alexey Ya. Chervonenkis が発表した初期のサポートベクターマシンは、線形分類器にしか適用できなかった。しかし、の理論を取り入れたを用いてパターンを有限もしくは無限次元のへ写像し、特徴空間上で線形分離を行う手法が 1992年に Bernhard E. Boser, Isabelle M. Guyon, Vladimir N. Vapnik らによって提案された。これにより、非線形分類問題にも優れた性能を発揮することがわかり、近年特に注目を集めている。なお、カーネル関数を取り入れた一連の手法では、どのような写像が行われるか知らずに計算できることから、カーネルトリック (Kernel Trick) と呼ばれている。主に下記のカーネル関数がよく使われていて LIBSVM でも実装されている。2005年に Ioannis Tsochantaridis らが構造化SVM()を発表した。任意のデータ構造を扱えるように拡張したものである。通常の二値分類SVMは以下の値で分類する。これは、このようにも書ける。その上で、これを二値から一般の値に拡張する。formula_13 は入出力から特徴量を作り出す実数ベクトルを返す関数。問題ごとに定義する。そして、下記の損失関数を最小化するように、最適化問題を解く。ここではL2正則化を付けている。formula_15 は正則化の強さを表す定数。formula_16 は出力の類似度を表す実数を返す関数。問題ごとに定義する。formula_17 であり、異なる値同士なら 0 よりも大きくなるように設計する。上記の最適化問題を解くには工夫が必要であり、その後も提案が続いているが、2005年に提案された方法は下記のように上界となる関数 formula_19 を作る。その上で、下記の最適化問題を解く。formula_19 の作り方として2通りが提案された。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。