用語集

サポートベクターマシン(SVM)

分類、回帰、異常値検出のためのサポートベクターマシン(SVM)のパワーを、実際のアプリケーションと洞察でご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

サポートベクターマシン(SVM)は、回帰(サポートベクター回帰 - SVR)や異常値検出にも効果的だが、主に分類タスクに使用される一般的で強力な教師あり機械学習(ML)アルゴリズムである。1990年代に開発されたSVMは、ウィキペディアで詳しく説明されているが、高次元空間で異なるクラスに属するデータ点を最もよく分離する、超平面と呼ばれる最適な境界を見つけることによって機能する。重要なアイデアは、マージン(超平面と各クラスから最も近いデータ点(サポート・ベクトル)との間の距離)を最大化することである。

Svmの仕組み

SVMの核となる原理は、データセットを分割する理想的な超平面を見つけることである。直線または平面で分離できるデータ(線形分離可能データ)に対して、SVMはクラス間に可能な限り大きな隔たりを作る超平面を特定する。この超平面の位置と向きを定義するのに重要な、この超平面に最も近い学習データのデータ点は、サポート・ベクトルとして知られている。このように境界付近の最も困難な点に焦点を当てることで、SVMは記憶効率が良くなる。なぜなら、学習後にモデルを定義するのに必要なのはこれらのサポートベクトルだけだからである。

クラスが線形境界で分離できないデータセット(非線形分離可能データ)の場合、SVMはカーネル・トリックと呼ばれる手法を用いる。この巧妙な手法により、SVMは元のデータを、線形分離が可能な高次元空間にマッピングすることができる。一般的なカーネル関数は以下の通りである:

  • 線形:線形分離可能なデータの場合。
  • 多項式:多項式関数を使用してデータを高次元にマッピングします。
  • 放射基底関数(RBF)複雑で非線形な関係によく使われる。
  • シグモイド: ニューラルネットワーク(NN)で使用される活性化関数に似ている。

カーネルとそのパラメータの選択は非常に重要であり、多くの場合、注意深くハイパーパラメータをチューニングする必要がある。

関連性と応用

SVMは、ディープラーニング(DL)の台頭にもかかわらず、特に高次元データ(多くの特徴)を持ちながら学習サンプルが限られているシナリオにおいて、依然として重要な役割を担っている。SVMは、理論的な保証とロバスト性、特に明確な分離マージンが存在する場合に優れていることで知られている。歴史的には、HOG(Histogram of Oriented Gradients)のような特徴抽出器と組み合わされたSVMは、物体 検出の進化で述べたように、物体検出のようなタスクでは最先端のものであった。

一般的な用途は以下の通り:

  • 画像の分類画像をその内容に基づいて分類する(例えば、異なる種類の花や動物を区別する)。SVMは、画像から抽出された手作りの特徴量と併用することで、特に適度な大きさのデータセットで効果を発揮する。
  • テキスト分類スパムメールの検出やカスタマーレビューの感情分析など、テキスト文書をあらかじめ定義されたカテゴリーに分類すること。SVMは(TF特徴のような)高次元のテキストデータをうまく扱う。
  • バイオインフォマティクス遺伝子発現データに基づくタンパク質分類や癌診断など、サンプル数に比べて特徴数が非常に多くなるようなタスクに使用される。
  • 顔認識顔の特徴に基づいて個人を識別または検証すること。

利点と限界

利点がある:

  • 高次元で有効:特徴数がサンプル数より多い場合でも優れた性能を発揮します。
  • メモリ効率が良い:決定関数に学習点のサブセット(サポートベクトル)のみを使用。
  • 多用途:決定関数にさまざまなカーネル関数を指定できるため、さまざまなデータ型に柔軟に対応できる。
  • 優れた汎化:マージン最大化の目的は、多くの場合、未知のデータに対して精度の高いモデルを導く。

制限:

  • 計算集約的:非常に大きなデータセットでは学習に時間がかかる。
  • カーネルとパラメータの感度:性能はカーネルとそのパラメータ(C、ガンマなど)の選択に大きく依存するため、慎重なチューニングが必要。
  • クラスが重なるとパフォーマンスが低下する:データクラスが大幅に重複している場合は理想的ではありません。
  • 直接的な確率推定なし:標準的なSVMはクラス割り当てを生成するが、直接的な確率スコアは生成しない。SVMの出力を確率に校正するにはプラット・スケーリングのような技術が必要である。

Svmと他のアルゴリズムとの比較

ロジスティック回帰のような単純なアルゴリズムと比較して、SVMは単に分離境界を見つけるのではなく、マージンを最大化することを目指す。決定木や ランダムフォレストのような木ベースの手法とは異なり、SVMは単一の最適超平面を構築する(おそらく高次元空間で)。最近の Ultralytics YOLOのような最近のディープラーニングモデルは、生データ(コンピュータビジョン(CV)におけるピクセルのようなもの)からの自動特徴抽出を得意としますが、SVMは、しばしば注意深い特徴エンジニアリングを必要としますが、より小さなデータセットや、特徴が明確に定義されている特定のタイプの構造化データでは、非常に優れた性能を発揮します。一般的な実装には、LibSVMや scikit-learnのSVMモジュールがあります。このようなモデルのトレーニングと管理は、他の様々なモデルとともに、MLOpsライフサイクルを簡素化するUltralytics HUBのようなプラットフォームを使用して合理化することができる。

すべて読む