ANN(人工ニューラルネットワーク)とSVM(サポートベクターマシン)は、教師付き機械学習と分類のための2つの一般的な戦略です。どの方法が特定のプロジェクトに適しているのかはっきりしないことが多く、その答えは常に「依存している」と確信しています。多くの場合、ベイジアン分類とともに両方の組み合わせが使用されます。
Stackoverflowに関するこれらの質問は、ANNとSVMに関してすでに質問されています。
私の分類質問におけるANN、SVM、およびKNNの違いは何ですか
テキスト処理用にVector Machineまたは人工ニューラルネットワークをサポートしますか?
この質問では、ANN(具体的にはMultilayer Perceptron)のどのような側面がSVM上での使用が望ましいのか具体的に知りたいですか?私が尋ねるのは、反対の質問に答えるのが簡単だからです。サポートベクターマシンは、ANNの2つの大きな弱点を回避するので、しばしばANNより優れています。
(1)ANNは大域的最小値よりもむしろ局所的最小値に収束することが多く、本質的に "全体像を見逃す"ことがある(または木の森を見逃すこと)
(2)ANNはトレーニングが長すぎるとオーバーフィットします。つまり、任意のパターンに対して、ANNはノイズをパターンの一部と見なし始める可能性があります。
SVMは、これら2つの問題のどちらにも悩まされることはありません。ただし、SVMがANNの完全な代替品であることを意味していることは容易にはわかりません。それでは、ANNがSVMよりも特定の状況に適用できるようにする特定の利点は何ですか? ANNに勝るSVMの特定の利点をリストしましたが、今はANNの利点(もしあれば)のリストを見たいと思います。
あなたが提供する例から判断すると、私はANNによって、あなたがSVMと直接競合しているので、多層パーセプトロンのような多層フィードフォワードネットワーク(略してFFネット)を意味すると思います。
これらのモデルのSVMに対する特別な利点の1つは、サイズが固定されていることです。モデルはparametricモデルで、SVMはノンパラメトリックです。つまり、ANNには、サイズ=hの隠れ層がたくさんあります。1 スルーhn 特徴の数、プラスバイアスパラメータ、そしてそれらがあなたのモデルを構成します。対照的に、SVM(少なくともカーネル化されたもの)は、トレーニングセットから選択された、それぞれに対する重み付きのサポートベクトルのセットからなる。最悪の場合、サポートベクトルの数は正確にトレーニングサンプルの数になります(ただし、これは主に小さなトレーニングセットまたは縮退の場合に発生します)、一般的にそのモデルサイズは線形的に増減します。自然言語処理では、それぞれ何十万もの特徴を持つ何万ものサポートベクトルを持つSVM分類器は前例のないことではありません。
また、FFネットの オンライントレーニング は、オンラインSVMフィッティングに比べて非常に簡単で、予測はかなり高速になります。
EDIT:上記のすべては、カーネル化SVMの一般的なケースに関するものです。線形SVMは、がパラメトリックであり、確率的勾配降下法などの単純なアルゴリズムでオンライン学習を可能にするという点で特別な場合です。
サポートベクターマシンに対する人工ニューラルネットワークの1つの明らかな利点は、人工ニューラルネットワークは任意の数の出力を有することができるが、サポートベクターマシンは1つしか持たないことである。サポートベクターマシンを使用してn進分類子を作成する最も直接的な方法は、n個のサポートベクターマシンを作成し、それらを1つずつトレーニングすることです。一方、ニューラルネットワークを用いたn-ary分類器は一度に訓練することができます。さらに、ニューラルネットワークはそれが1つの全体であるためより意味がありますが、サポートベクターマシンは独立したシステムです。出力が相互に関連している場合、これは特に便利です。
たとえば、手書きの数字を分類することが目的であれば、10個のサポートベクターマシンでうまくいきます。各サポートベクターマシンは正確に1桁を認識し、それ以外のすべてを認識することはできません。各手書きの数字は、そのクラスだけでなく、より多くの情報を保持することを意味するものではないため、これを人工ニューラルネットワークで解決しようとするのは意味がありません。
ただし、目標は、最後の食事からの経過時間、心拍数など、簡単に測定できる生理的要因の関数として、人のホルモンバランスを(いくつかのホルモンについて)モデル化することだったとします。ネットワーク回帰は、サポートベクターマシン回帰よりも意味があります。
注意すべき1つのことは、この2つは実際には非常に密接に関連しているということです。線形SVMは単層NN(すなわちパーセプトロン)と等価であり、多層NNはSVMに関して表すことができる。詳細については こちら をご覧ください。
カーネルSVMを使いたい場合は、カーネルを推測する必要があります。しかし、ANNは普遍的な近似値であり、幅(近似精度)と高さ(近似効率)のみを想定しています。最適化問題を正しく設計していれば、過剰適合しません(過剰適合については参考文献を参照してください)。それらが正しくかつ一様にサーチスペースをスキャンするならば、それはトレーニング例にもよります。幅と深さの発見は整数計画法の主題です。
例えば、範囲がI = [0,1]の境界関数f(.)と境界のある普遍近似子があり、それらがコンパクトなサポートの実数列Uによってパラメータ化されているとします。 (。、a)を持つシーケンスのシーケンスが存在するという特性を持つ
lim sup { |f(x) - U(x,a(k) ) | : x } =0
そしてIxI
に分布Dを付けて例とテスト(x,y)
を描きます。
処方された援助のために、あなたがすることはそのような最善を見つけることです
sum { ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal
確率変数であるこのa=aa
をさせてください!
D and D^{N} of ( y - U(x,aa) )^{2}
を使った平均
誤差を最小にするようにaa
を選択した場合、稀な値のセットに対して完璧にフィットする理由を説明しましょう。ただし、それらはまれであるため、平均値は0にはなりません。Dに離散近似であるにもかかわらず、秒を最小化したいと思います。また、サポートの長さは自由であることに留意してください。
一つの答えがここに欠けています:多層パーセプトロンは特徴間の関係を見つけることができます。例えば、生の画像が学習アルゴリズムに提供されそして今や洗練された特徴が計算されるとき、それはコンピュータビジョンにおいて必要である。基本的に中級レベルは新しい未知の特徴を計算することができます。
また、SVMシステムは、ラベル付きグラフや文字列のセットなどの非メトリック空間に直接を適用できることも考慮する必要があります。実際、内部カーネル関数は、カーネルの明確な正当性要件が満たされるという条件で、事実上あらゆる種類の入力に適切に一般化することができます。一方、ラベル付きグラフのセットでANNを使用できるようにするには、明示的な埋め込み手順を考慮する必要があります。