用語集

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

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

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

さらに詳しく

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

Svmの仕組み

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

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

  • 線形カーネル:線形分離可能なデータに使用。
  • 多項式カーネル:データを高次の多項式空間にマップする。
  • 放射基底関数(RBF)カーネル:複雑な関係を扱うことができ、データを無限次元空間にマッピングできる一般的な選択肢。
  • シグモイドカーネル: ニューラルネットワークで使用される活性化関数に似ている。

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

関連性と応用

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

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

  • 画像の分類手書きの数字を識別したり、異なる種類の物体を区別したりするなど、画像をあらかじめ定義されたカテゴリーに分類すること。例えば、SVMを学習させ、抽出された特徴量に基づいて、医療画像を腫瘍の有無で分類することができる。
  • テキストの分類:文書をトピックに分類、センチメント分析(肯定的/否定的レビュー)、スパム検出。例えば、ニュース記事を「スポーツ」、「政治」、「テクノロジー」などのカテゴリーに分類する。
  • 顔検出画像内の顔を識別すること。多くの場合、認識前の予備段階として行われる。
  • バイオインフォマティクス:複雑な生物学的データに基づいてタンパク質、遺伝子、患者サンプルを分類する。
  • 手書き文字認識:手書き文字を認識するシステムで使用される。

利点と限界

利点がある:

  • 高次元空間では、次元数がサンプル数を超えても有効。
  • 決定関数では学習点(サポートベクトル)のサブセットのみを使用するため、メモリ効率が高い。
  • さまざまなカーネル関数により、さまざまなデータ型に適応可能。
  • 一般に、クラスが十分に分離されている場合に高い精度を達成する。

制限:

  • 非常に大規模なデータセットの訓練には計算コストがかかり、時間がかかることがある。
  • 性能はカーネル関数とハイパーパラメータの選択に大きく依存する。
  • クラスが大きく重なるノイズの多いデータセットでは効果が低い。
  • SVMは直接確率推定値を提供しない。これらはさらなる処理(例えばプラット・スケーリング)を必要とする。

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

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

すべて読む