機械学習異常検知

ワンクラスSVM

わんくらすえすぶいえむ · One-Class Support Vector Machine
15 views

ワンクラスSVMは、正常データのみを学習させて「正常」の境界を決定し、そこから外れたデータを「異常」と判定する機械学習アルゴリズムです。教師なし学習による異常検知の代表的な手法であり、システム障害の検知や製造業における外観検査など、異常データの収集が困難な場面で広く活用されています。

ワンクラスSVMとは

ワンクラスSVM(One-Class SVM)とは、データ群の中から「正常なデータ」の特徴だけを学習し、その範囲から外れた未知のデータを「異常(外れ値)」として検出する、教師なし学習に分類される機械学習アルゴリズムです。

詳しく解説

従来のサポートベクターマシン(SVM)は、2つのクラスを分類するためにクラス間の境界を求めますが、ワンクラスSVMは1つのクラス(主に正常データ)のみを学習データとして使用します。具体的には、カーネルトリックと呼ばれる技術を用いて高次元空間にデータを写像し、原点からデータを最も遠ざける境界を決定します。この境界の内側を「正常」、外側を「異常」と定義することで、正常データの分布を包み込むような決定境界を構築します。異常データが極めて稀で、事前に十分な量の異常データを収集することが不可能な状況において、高精度な異常検知を実現できるため、非常に重要な手法とされています。

具体例・使われ方

具体的な利用例としては、工場における製造ラインでの外観検査が挙げられます。正常な製品の画像データだけをワンクラスSVMに学習させておくことで、キズや汚れといった未知のパターンの不良品を検出できます。また、ITインフラにおけるサーバーのアクセスログ監視でも活用されます。日常の正常なアクセスパターンを学習させることで、サイバー攻撃やシステム障害による急激なトラフィック変化を異常として即座に検知することが可能です。

似た用語との違い

混同されやすい概念として、通常の「サポートベクターマシン(2クラスSVM)」があります。サポートベクターマシンは、正常データと異常データの両方が十分に存在し、それらを分ける境界線を学習する教師あり学習です。これに対して、ワンクラスSVMは正常データのみから学習を行う教師なし学習である点が異なります。また、同じ異常検知手法である「アイソレーションフォレスト」がデータの疎密や分割回数に基づいて異常を検知するのに対し、ワンクラスSVMは境界を定義して領域を区切るというアプローチの違いがあります。

注意点

注意点として、ワンクラスSVMはハイパーパラメータの設定、特にカーネルの幅や、異常とみなす割合を制御するパラメータの調整が極めて難しいという性質があります。また、学習データに多くの異常(ノイズ)が含まれていると、それらも含めて正常な境界を学習してしまうため、検知精度が著しく低下します。さらに、高次元データに対しても強力ですが、データの規模が大きくなると計算コストが非常に高くなる点にも留意する必要があります。

更新日時: 2026年9月9日 17:21