スタブ サポートベクターマシンとは何ですか? - Unite.AI
私達と接続
AI マスタークラス:

AI 101

サポートベクターマシンとは何ですか?

mm
更新中 on

サポートベクターマシンとは何ですか?

サポート ベクター マシンは機械学習分類器の一種であり、おそらく最も一般的な種類の分類器の 1 つです。サポート ベクター マシンは、数値予測、分類、パターン認識タスクに特に役立ちます。

サポート ベクター マシンは、データ ポイントをクラスに最もよく分離する (または最も一般化できる) 決定境界を目指して、データ ポイント間に決定境界を描画することによって動作します。 サポート ベクター マシンを使用する場合の目標は、特定のデータ ポイントと境界線の間の距離が最大になるように、ポイント間の決定境界をできるだけ大きくすることです。 それはその方法の簡単な説明です サポート ベクター マシン (SVM) SVM がどのように動作するのかをさらに深く掘り下げて、その動作の背後にあるロジックを理解してみましょう。

サポートベクターマシンの目標

X 軸と Y 軸で指定された特徴に基づいて、多数のデータ ポイントを含むグラフを想像してください。 グラフ上のデータ ポイントは XNUMX つの異なるクラスターに大まかに分類でき、データ ポイントが属するクラスターはデータ ポイントのクラスを示します。 ここで、グラフの下に XNUMX つのクラスを互いに分離する線を引き、あるクラスのすべてのデータ ポイントが線の片側にあり、別のクラスに属するすべてのデータ ポイントが反対側にあるとします。ラインの。 この分離線は超平面として知られています。

サポート ベクター マシンは、都市全体に「道路」を作成し、都市を道路の両側の地区に分割するものと考えることができます。 道路の片側にあるすべての建物 (データ ポイント) は XNUMX つの地区に属します。

サポート ベクター マシンの目標は、超平面を描画してデータ ポイントを分割することだけではなく、最大のマージン、つまり分割線と任意のデータ ポイントの間に最大のスペースを持ってデータ ポイントを分離する超平面を描画することです。 「道路」の比喩に戻ると、都市計画者が高速道路の計画を立てる場合、高速道路が住宅や他の建物に近づきすぎないようにする必要があります。 高速道路と両側の建物との間の余白が多ければ多いほど良いです。 このマージンが大きいほど、分類器はその予測に対してより「自信」を持つことができます。 二値分類の場合、正しい超平面を描くということは、XNUMX つの異なるクラスのちょうど真ん中にある超平面を選択することを意味します。 決定境界/超平面があるクラスから遠い場合、別のクラスに近くなります。 したがって、超平面は XNUMX つの異なるクラス間のマージンのバランスをとる必要があります。

分離超平面の計算

では、サポート ベクター マシンはどのようにして最適な分離超平面/決定境界を決定するのでしょうか? これは、数式を使用して可能な超平面を計算することによって実現されます。 超平面の計算式については説明しません。 極めて詳細に、ただし、ラインは有名な傾き/ライン公式で計算されます。

Y = ax + b

一方、線は点から作成されます。これは、任意の超平面が次のように記述できることを意味します。モデルの重みと、指定されたオフセット/バイアスによって修正されたフィーチャのセットの積によって決定される、提案された超平面に平行に走る点のセット(「d」)。

SVM は多くの超平面を描画します。 たとえば、境界線は XNUMX つの超平面ですが、分類器が考慮するデータポイントも超平面上にあります。 x の値は、データセット内の特徴に基づいて決定されます。 たとえば、多くの人の身長と体重を含むデータセットがある場合、「身長」と「体重」の特徴が「X」の計算に使用される特徴になります。 提案された超平面と、分割超平面の両側にあるさまざまな「サポート ベクトル」 (データポイント) の間のマージンは、次の式で計算されます。

W*X-b

SVM の背後にある数学について詳しく読むことはできますが、SVM をより直観的に理解したい場合は、提案された分離超平面/境界線と、それに平行に走る他の超平面との間の距離を最大化することが目標であることを知っておいてください (そしてその上にデータポイントが見つかります)。

写真: ZackWeinberg、Wikimedia Commons経由、CC BY SA 3.0 (https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

マルチクラス分類

これまでに説明したプロセスは、バイナリ分類タスクに適用されます。 ただし、SVM 分類器は非バイナリ分類タスクにも使用できます。 XNUMX つ以上のクラスを含むデータセットに対して SVM 分類を行う場合、より多くの境界線が使用されます。 たとえば、分類タスクに XNUMX つではなく XNUMX つのクラスがある場合、データ ポイントをクラスに分割するために XNUMX つの分割線が使用され、XNUMX つのクラスを構成する領域は XNUMX つではなく XNUMX つの分割線の間に収まります。 XNUMX つのクラスと決定境界の間の距離を計算するだけではなく、分類器は決定境界とデータセット内の複数のクラスの間のマージンを考慮する必要があります。

非線形分離

上で説明したプロセスは、データが線形分離可能な場合に適用されます。 実際には、データセットが完全に線形分離可能であることはほとんどないことに注意してください。つまり、SVM 分類器を使用する場合は、多くの場合、 XNUMXつの異なるテクニック: ソフトマージンとカーネルトリック。 異なるクラスのデータ ポイントが混在しており、あるクラスに属するいくつかのインスタンスが別のクラスの「クラスター」に属している状況を考えてみましょう。 分類子にこれらのインスタンスを処理させるにはどうすればよいでしょうか?

非線形分離可能なデータセットを処理するために使用できる XNUMX つの戦術は、「ソフト マージン」SVM 分類器の適用です。 ソフト マージン分類器は、誤って分類されたいくつかのデータ ポイントを受け入れることによって動作します。 データ ポイントのクラスターにはそれぞれのクラスに属するインスタンスの大部分が含まれているため、データ ポイントのクラスターを相互に最適に分離する線を引こうとします。 ソフト マージン SVM 分類器は、分類器の XNUMX つの要求 (精度とマージン) のバランスを取る分割線を作成しようとします。 マージンを最大化しながら、誤分類を最小限に抑えようとします。

SVM のエラー許容度は、「C」と呼ばれるハイパーパラメータを操作することで調整できます。 C値コントロール 決定境界を描画するときに分類子が考慮するサポート ベクターの数。 C 値は誤分類に適用されるペナルティです。つまり、C 値が大きいほど、分類器が考慮するサポート ベクトルが少なくなり、マージンが狭くなります。

カーネルはデータをだまして、非線形に変換します。 写真: Shiyu Ju、ウィクメディア・コモンズ経由、CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

カーネル トリックは、データセット内のフィーチャに非線形変換を適用することによって動作します。 カーネル トリックは、データセット内の既存の特徴を取得し、非線形数学関数の適用を通じて新しい特徴を作​​成します。 これらの非線形変換を適用すると、非線形の決定境界が得られます。 SVM 分類器は線形の決定境界の描画に制限されなくなったため、サポート ベクトルの真の分布をより適切にカプセル化して誤分類を最小限に抑える曲線の決定境界の描画を開始できるようになります。 最も人気のある SVM 非線形カーネルの XNUMX つは、Radial Basis Function と Polynomial です。 多項式関数は既存のすべてのフィーチャの多項式の組み合わせを作成しますが、放射基底関数は中心点と他のすべての点の間の距離を測定することによって新しいフィーチャを生成します。

専門分野を持つブロガーおよびプログラマー 機械学習 および 深層学習 トピック。 ダニエルは、他の人が社会利益のために AI の力を活用できるよう支援したいと考えています。