製造業の外観検査システム案件で必要になったので、画像の異常検知のアプローチと手法について調べてみました。
異常検知のアプローチ
大まかに下記4つのアプローチに分けられる。(これ以外にもマイナーなアプローチもあり。)
-
分類アプローチ:データの正常・異常を分類する決定境界を学習する。
-
確率アプローチ:正常データの確率分布を推定し、生起確率が低いデータを異常と判定する。
-
生成アプローチ:正常データを再構成するモデルを学習し、再構成できなかったデータを異常と判定する。
-
距離アプローチ:正常データとの距離により、異常データを検出する。
画像用の異常検知に利用できる手法
見つけた機械学習ベースの手法を列挙しました。
非ディープラーニング系
SVM
SVM(Support Vector Machine)は、教師あり学習の機械学習モデルのひとつ。分類タスクや回帰タスクへ適用可能。
データが画像の場合、次元数が膨大(生データだと、次元数 = width * height * channel)となるため、PCA(Principal Component Analysis)などのアルゴリズムで次元削減してから使う。
異常検知問題では、正常データのみを学習するOC-SVM (One Class SVM)がよく利用される。
分類アプローチ。
MSPC(多変量統計的プロセス管理)
MSPC(Multivariate Statistical Process Control)は、多数の変数間の相関関係を考慮して異常を検知する手法。
画像の場合、SVMと同様に、PCAなどで次元削減して変数を抽出する。
また、異常の判定にはホテリングのT2法(Hotelling's T-squared method)などのアルゴリズムが主に使用される。
確率アプローチ。
ディープラーニング系
Auto Encoder(オートエンコーダ)
Auto Encoderは、入力と出力が等しくなるように学習するニューラルネットワークの手法。
中間層の次元を小さくすることで、特徴量を抽出(次元圧縮)するエンコーダと、その特徴量からデータを復元するデコーダを作成することができる。
正常データのみを学習させることで正常以外の特徴量が失われるようなモデルとなり、異常データが入力された時も正常データとして復元されるようになる。
その入出力の差分を利用することで異常を判定している。
生成アプローチ。
Deep Metric Learning(深層距離学習)
入力データ同士の類似度を学習するニューラルネットワークの手法。
特徴量が似ているデータ同士は距離が小さくなり、似ていないデータ同士は距離が大きくなるように学習を行う。
正常データとの類似度を算出するモデルを作成することで、異常を判定することができる。
距離アプローチ。
所感
いろいろなアプローチがあるが、手法によって適用できる条件やメリット・デメリットが異なるので、案件によって使い分けるのが良さそう。
ディープラーニング系の手法は学習データ用の画像が大量に必要になるので、そのあたりが現場では課題になっている。
なお、異常検知用の学習データセットについて前回の記事(下記URL)でデータセット一覧をまとめているので、異常検知モデルを開発したい方は、そちらもご参照ください。
異常検知の関連記事