1. 序章

このチュートリアルでは、サポートベクターマシンとパーセプトロンアルゴリズムを簡単に紹介します。 次に、それらの違いとその使用方法について説明します。

焦点は、これら2つのアルゴリズムの類似点と相違点に関して私たちが抱く可能性のあるすべての疑問について議論することです。

2. サポートベクターマシン

サポートベクターマシン(SVM)メソッドは、さまざまな分野で応用できる人気のある効果的な機械学習メソッドです。 さらに、この方法のさまざまな修正がまだ開発されています。 この方法は、分類と回帰の両方の問題に使用できますが、分類に使用するのが一般的です。

要するに、この分類アルゴリズムの背後にある主なアイデアは、クラスを可能な限り正確に分離することです。たとえば、下の左の画像の赤と青のドットの分類を行うと、3つすべてがわかります。線(通常は超平面)は、赤と青のドットのクラスを正しく分離します。

ただし、これらのクラスの他のいくつかの点についても、一般的にどちらが最善の解決策であるかという疑問が生じます。 SVMは、超平面が両方のクラスの2つの最も近いポイントから可能な限り離れたままになるように、これら2つのクラスを分割することにより、この問題を解決します。 これは下の右の画像で見ることができます。

可能な最大マージンは、これら2つのクラスの間に、2つの平行な灰色の境界超平面間のスペースとして構築されましたが、その真ん中には分離の超平面があります。 これらの2つの平行な灰色の超平面は、サポートベクターと呼ばれる1つ以上の点と交差します:

すべてのサンプルがマージンの外側にあることを厳密に要求する場合、それはハードマージン分類です。この方法は、存在する可能性のある外れ値などの異常に非常に敏感です。 その結果、モデルのマージンが小さくなり、一般化が不十分なデータに適合しすぎる可能性があります。

したがって、実際に一般的に使用されるソフトマージン分類を導入します。基本的に、特定の数のサンプルがマージンに入るか、超平面の反対側に移動することができます。

3. パーセプトロン

Perceptron は、二項分類の問題を解決する教師あり機械学習アルゴリズムです。 つまり、入力データからパターンを認識して、ターゲットクラスに関する予測を行うことで機能します。 パーセプトロンは、最初のタイプの人工ニューラルネットワークでもあります。

このアルゴリズムは、ベクトルを入力として受け取り、線形結合を計算する線形分類器の一種です。

(1)  

重みベクトルとバイアスの場合。 その後、ステップ関数を適用します。

(2)  

正式には、1つのニューロンとステップ活性化関数で定義したモデルはパーセプトロンですが、ニューロンと他の活性化関数の層が多い他の多くのアーキテクチャがあります。 他のニューラルネットワークと同様に、トレーニングと重みの更新は、次のようにバックプロパゲーションによって行われます。

(3)  

ここで、は重みベクトル、は実際のクラス値、は予測されたクラス値、は学習率です。

4. 主な違い

これらの2つのアルゴリズムは非常に似ており、同じ問題を解決していますが、それらの間には大きな違いがあります。

4.1. インスピレーション

上で述べたように、パーセプトロンはニューラルネットワークタイプのモデルです。 パーセプトロンを作成するためのインスピレーションは、生物学的ネットワークのシミュレーションから生まれました。 対照的に、SVMは、統計的学習理論に触発された別のタイプの機械学習モデルです。

4.2. トレーニングと最適化

一般に、パーセプトロンとニューラルネットワークの重みをトレーニングおよび最適化するために、最急降下法を含むバックプロパゲーション手法を使用します。 逆に、SVMのマージンを最大化するには、二次計画法(QP)を使用して二次方程式を解く必要があります。

たとえば、人気のある機械学習ライブラリScikit-Learnでは、QPは逐次最小最適化(SMO)と呼ばれるアルゴリズムによって解決されます。

4.3. カーネルトリック

SVMアルゴリズムは、カーネルトリックと呼ばれる1つのスマートな手法を使用します。主なアイデアは、現在の次元でクラスを分離できない場合、クラスを分離できる別の次元を追加することです。

そのために、別の次元を任意に追加するだけでなく、カーネルと呼ばれる特別な変換を使用します。

最も一般的なカーネル関数は次のとおりです。

(4)  

たとえば、パラメータ、、、および:を持つ多項式カーネルを使用して、2つのベクトルとを2Dから3Dに変換できます。

(5)  

最後に、データのサンプルをより高い次元に明示的に変換する必要がないため、カーネルトリックは効率的です。 これは、SVMデュアルフォーミュレーションでカーネルトリックを直接適用できるためです。

(6)  

SVMとは対照的に、パーセプトロンはカーネルトリックを使用せず、データをより高い次元に変換しません。したがって、データがパーセプトロンの現在の構成で簡単に分離できない場合は、次のことができます。モデル内のニューロンまたは層の数を増やしてみてください。

4.4. マルチクラス分類

SVMはマルチクラス分類をネイティブにサポートしていません。したがって、SVMアルゴリズムを使用して複数のクラスを分離する場合、2つの間接的なアプローチがあります。

  • 1対1のアプローチ
  • One-vs-Restアプローチ

One-vs-One(OvO)アプローチは、マルチクラス問題を複数の二項分類問題に分割することを意味します。 たとえば、名前がX、Y、Zの3つのクラスがある場合、OvOアプローチはそれを3つの二項分類問題に分割します。

  1.  X対Y
  2.  X対Z
  3.  Y対Z

同様に、One-vs-Rest(OvR)アプローチは、マルチクラスの問題を複数の2項分類に分割し、現在のクラスを他のすべてのクラスと一緒に分離しようとします。 たとえば、上記と同じクラスを受講する場合、OvRアプローチは次のようになります。

  1.  X対[Y、Z]
  2.  Y対[X、Z]
  3.  Z対[X、Z]

1つのニューロンを持つ古典的なパーセプトロンは、マルチクラス分類問題を解決するために同じロジックを必要としますが、パーセプトロンアルゴリズムの今日の実装のほとんどは、各クラスの確率を直接予測できます。 これは、出力層のsoftmax活性化関数を使用して簡単に実行できます。

4.4. 予測の確率

最後に、SVMモデルは確率をネイティブに出力しません。したがって、予測の確率が必要な場合は、確率キャリブレーション方法を使用して間接的に取得できます。 標準的な方法の1つは、Plattスケーリングを使用することです。

SVMとは対照的に、出力層に確率的活性化関数を持つパーセプトロンは、各クラスの確率を直接予測します。最も一般的な確率関数は、シグモイド関数とソフトマックス関数です。

5. 結論

この記事では、SVMとパーセプトロンという2つの一般的な機械学習アルゴリズムについて簡単に説明しました。 また、それらの間のいくつかの重要な違いについても説明しました。 最後に、これら2つの方法を区別し、状況に応じて使用する方法を学びました。