what is support vector machine machine learning
このチュートリアルでは、MLでのサポートベクターマシンと、超平面、サポートベクター、SVMのアプリケーションなどの関連概念について説明します。
の中に 前のチュートリアル 、遺伝的アルゴリズムと機械学習におけるそれらの役割について学びました。
以前のチュートリアルでは、機械学習における教師ありアルゴリズムと教師なしアルゴリズムをいくつか学習しました。バックプロパゲーションは教師あり学習アルゴリズムですが、Kohenenは教師なし学習アルゴリズムです。
このサポートベクターマシンのチュートリアルでは、サポートベクターマシンについて学習します。 SVMは、トレーニングデータセットの分類で広く使用されている、堅牢な数学的教師あり機械学習アルゴリズムです。
=> 完全な機械学習トレーニングシリーズを読む
学習内容:
- サポートベクターマシン(SVM)とは
- 超平面とは
- 分類および回帰アルゴリズムとは何ですか
- サポートベクターとは
- サポートベクターマシンはどのように機能しますか
- 超平面の位置を最適化する方法
- SVMのアプリケーション
- 結論
- 推奨読書
サポートベクターマシン(SVM)とは
SVMアルゴリズムは、分類手法に分類される教師あり学習アルゴリズムです。これは、トレーニングデータセットを使用して、n次元空間で最適な超平面を予測する二項分類手法です。
この超平面は、新しいデータセットを分類するために使用されます。二項分類器である超平面のトレーニングデータセットは、トレーニングデータセットを2つのクラスに分割します。
SVMアルゴリズムは、2次元平面と多次元超平面でデータを分類するために使用されます。多次元超平面は、「カーネル」を使用して多次元データを分類します。
分類されたデータポイントを最大限に区別することが常に望まれます。これは、それらが最大距離を持つか、超平面がデータポイント間に最大マージンを持つ必要があることを意味します。
超平面とは
超平面は、平面を分割する境界です。これは、データポイントを2つの異なるクラスに分類する決定境界です。 SVMはデータを多次元で分類するために使用されるため、2つの入力がある場合は超平面を直線にし、3つ以上の入力がある場合は2D平面にすることができます。
SVMアルゴリズムは回帰分析にも使用できますが、主に分類に使用されます。これらの各メソッドの詳細を見てみましょう。
分類および回帰アルゴリズムとは何ですか
分類アルゴリズムは、トレーニングデータを分析して結果を予測するアルゴリズムです。結果はターゲットクラスです、 例えば 、昼または夜、はいまたはいいえ、長いまたは短い。分類アルゴリズムの例は、パンを購入するスーパーストアの顧客がバターも購入するかどうかです。ターゲットクラスは「はい」または「いいえ」になります。
回帰アルゴリズムは、独立変数間の関係を見つけて、結果を予測します。線形回帰は、入力と出力の間の線形関係を見つけます。 例えば: 入力として「a」、出力として「b」の場合、線形関数はb = k * a + cになります。
サポートベクターとは
サポートベクターは、超平面を最適化するのに役立つデータポイントです。これらのベクトルは超平面に最も近く、分類するのが最も困難です。決定超平面の位置は、サポートベクターによって異なります。これらのサポートベクターが削除されると、超平面の位置も変更されます。
サポートベクターマシン(SVM)は、サポートベクターと呼ばれる入力データポイントまたは機能を使用して、決定境界、つまり超平面の周囲の空間を最大化します。 SVMの入力と出力はニューラルネットワークに似ています。以下に説明するように、SVMとNNの違いは1つだけです。
入力: SVMネットワークには、xなどのn個の入力を含めることができます。1、 バツ二、 …… ..、 バツ私、…。、 バツn。
出力: ターゲット出力t。
重み: ニューラルネットワークの重みのようにw1、で二、……、でn線形結合が出力yを予測する各入力に関連付けられます。
SVMとニューラルネットワークの違い
ニューラルネットワークのシナプスの重みは、ネットワークの出力yを計算するために削除されますが、SVMでは、ゼロ以外の重みが削減または削除されて、最適な決定境界が計算されます。
重みがなくなると、入力データセットがいくつかの重要な入力機能に削減され、分離可能な超平面の決定に役立ちます。
サポートベクターマシンはどのように機能しますか
ご存知のように、サポートベクターマシンの目的は、分類されたデータポイント間のマージンを最大化することです。これにより、トレーニングされていないデータの新しいセットを分類するためのより最適な結果が得られます。したがって、マージンが最大になる位置に超平面を配置することで実現できます。
線形に分離されたデータポイントの例を見てみましょう。
ステップ1: さまざまな可能性から正しい超平面を見つける:最適な超平面を決定するには、データを分割する可能性のあるすべての平面を見つけ、その中から入力データセットを最もよく分類する平面を選択します。下のグラフには、3つの超平面の可能性があります。超平面3は、データポイントをより適切に分割します。
ステップ2: 最も近いデータポイント間の最大マージンを持つ超平面を選択します。マージンは、超平面と最も近いデータポイント間の距離として定義されます。したがって、マージンを最大にすることが最適です。 2つ以上の超平面がデータを均等に分類している場合は、マージンを見つけます。
最大マージンの超平面が選択されます。次の図では、超平面2.1、2.2、および2.3がデータポイントを分割していますが、超平面2.2には最大マージンがあります。
ステップ3: 外れ値が存在する場合:外れ値は、データポイントのセットとは異なるデータポイントです。 2セットのデータポイントの場合、外れ値が存在する可能性があります。 SVMは、データ内のそのような外れ値を無視して、最大マージンの超平面を見つけます。
ステップ4: 非線形に分離されたデータポイントの場合、SVMはカーネルトリックを使用します。新しい次元を導入することにより、非線形に分離可能な平面を分離可能なペインに変換します。カーネルトリックは、超平面を最適化するために複雑なデータ変換を行う複雑な数式です。
次の図は、非線形に分離可能なデータポイントを示しています。これらのデータポイントは、z平面で高次元に変換されます。 2つのデータセットを分割する超平面は円です。
超平面の位置を最適化する方法
超平面の位置は、最適化アルゴリズムを使用して最適化されます。
SVMパラメーター:カーネル
線形分離不可能な問題で最適化された超平面を構築するには、カーネルを使用します。カーネルは、線形代数形式を使用して複雑な問題を変換する数学関数です。
線形カーネルの場合、方程式は次のようになります。
F(x)= b +合計(a私*(x、x私))
どこ、
xは新しい入力データです
バツ私サポートベクターです
b、a私は係数です。これらの係数は、アルゴリズムの学習フェーズ中に推定されます。
複雑な非線形分離可能問題の場合、カーネルトリックは、非線形分離可能問題を分離可能問題に変換するように機能します。複雑なデータを変換し、データポイントを出力に分割する方法を見つけます。
カーネル関数には、線形、多項式、シグモイド、ラジアルバイアス、非線形など、さまざまな種類があります。
上記のカーネル関数のいくつかの使用法を見てみましょう。
カーネル関数は、空間の2つの入力x、yの内積を計算します。
#1)放射基底関数: 最も使用されているカーネル関数は、x = (-1,1)の間にあるすべての値について、関数の値は1であり、それ以外の場合は0であると言います。私、|(xの場合、カーネル関数の値は1です。私– h)、(x私+ h)| xの場合私中心と見なされ、それ以外の場合は0と見なされます。
#2)シグモイド関数: シグモイドを使用するニューラルネットワークとして、SVMのカーネル関数は
#3)双曲線正接関数: ニューラルネットワークが使用するように、機能は
#4)ガウスカーネル関数: ガウスカーネル関数の状態
#5)多項式関数: k(x私、 バツj)=(x私* バツj+1)二
SVMのアプリケーション
SVMの実際のアプリケーションは次のとおりです。
#1)記事のさまざまなカテゴリへの分類: SVMは、書かれたテキストを区別し、エンターテインメント、健康、フィクションの記事などのさまざまなカテゴリに分類します。これは、SVMのトレーニング中に計算された事前設定されたしきい値に基づいています。
しきい値を超えると、カテゴリに分類されます。値が満たされない場合、分類のために新しいカテゴリが定義されます。
ddosプログラムの作成方法
#2)顔の認識: 与えられた画像は、ピクセルを使用して特徴を検出することにより、顔画像または非顔画像として分類されます。画像は顔または非顔として認識されます。
#3)健康情報: SVMは、遺伝子、生物学的パターンの認識などに基づいて患者を分類するために使用されます。
#4)タンパク質相同性の検出: 計算医学では、SVMはタンパク質配列のモデル化方法についてトレーニングされます。次に、SVMを使用してタンパク質の相同性を検出します。
結論
このサポートベクターマシンのチュートリアルでは、サポートベクターマシンについて学びました。 SVMアルゴリズムは、バイナリデータと線形分離可能データを分類するために使用される教師あり学習アルゴリズムです。最大マージンの超平面によってデータポイントを分類します。
非線形データポイントは、カーネルトリックを使用したサポートベクターマシンによって分類することもできます。実生活ではSVMの多くのアプリケーションがありますが、最も一般的なアプリケーションの1つは、顔認識と手書き認識です。
幸せな読書!!
=> 独占的な機械学習シリーズについては、こちらをご覧ください