【ハイブリッドモデルによる異常検知】異常検知連載シリーズその4

こんにちは。スキルアップAI編集部です。

[第1回の記事](https://qiita.com/skillup_ai/items/a2c2e60df71c7f835371)において、深層学習による異常検知は、大きく3つのアプローチに分けられるという話をしました。第4回となる本記事では、それらアプローチのうちの1つである、ハイブリッドモデルによる異常検知に焦点を当て、その派生手法を紹介していきます。ハイブリッドモデルによる異常検知の基本的な考え方については、[第1回の記事](https://qiita.com/skillup_ai/items/a2c2e60df71c7f835371)をご参照ください。

第3回は[こちら](https://qiita.com/skillup_ai/items/47bc4c8d9d8c030837b5)
深層学習（ディープラーニング）による異常検知に関するブログ一覧は[こちら](https://qiita.com/tags/%e6%b7%b1%e5%b1%a4%e5%ad%a6%e7%bf%92%e3%81%ab%e3%82%88%e3%82%8b%e7%95%b0%e5%b8%b8%e6%a4%9c%e7%9f%a5)

<目次>
1. ハイブリッドモデルによる異常検知
2. DAGMM
3. Deep SVDD
4. Deep SAD
5. もっと詳しく学びたい方へ
6. 参考文献

# 1. ハイブリッドモデルによる異常検知
[第1回の記事](https://qiita.com/skillup_ai/items/a2c2e60df71c7f835371)で、ハイブリッドモデルによる異常検知をご紹介しました。ハイブリッドモデルとは、次元が高いデータに対して次元削減を行い、その結果を従来の機械学習モデルに入力し、異常検知を行うというものです。近年、この一連の流れをニューラルネットワークを用いてエンドトゥエンド(end to end)に実装する方法がいくつか提案されています。

図1にハイブリッドモデルによる異常検知の主な手法を示します。ここからは、図1の3つの手法について解説していきます。
<img width="600" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/99d135d0-8ed3-7ef6-108a-1c6f48ca2a77.png">
図1. ハイブリッドモデルによる異常検知の主な手法

# 2. DAGMM
DAGMM[1]では、自己符号化器(autoencoder)により次元削減を行い、混合ガウスモデル(Gaussian Mixture Model；GMM)により異常検知を行うという処理をエンドトゥエンドで行います。DAGMMの登場以前にも、自己符号化器と混合ガウスモデルを組み合わせる手法はありましたが、その手法では、エンドトゥエンドではなく、それぞれを個別に学習していました。そのため、混合ガウスモデルが異常を判定するのに必要な情報を、自己符号化器が潰してしまう可能性がありました。

図2にDAGMMの模式図を示します。Compression Networkでは、入力された画像を、自己符号化器によって特徴を圧縮します。Estimation Networkでは、自己符号化器によって圧縮された特徴と再構成誤差から、各正規分布に属する確率(帰属度)を算出します。その後、圧縮された特徴と帰属度を用いて混合ガウスモデルのパラメータを推定します。
<img width="600" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/3c2efbf7-9969-fe88-3f3a-d40b81f58719.png">
図2. DAGMMの模式図

# 3. Deep SVDD
まず、サポートベクトルデータ記述法(support vector data description；SVDD)による異常検知について、簡単に解説します。図3にサポートベクトルデータ記述法による異常検知のイメージを示します。サポートベクトルデータ記述法では、正常と考えられるデータのほぼ全てを含みつつ、可能な限り小さな超球となるように、半径を最適化します。テスト時には、最適化された超球からどの程度離れているかによって異常判定を行います。
<img width="600" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/10b8191d-7c42-3a32-4acb-6d09621adcb6.png">
図3 . サポートベクトルデータ記述法による異常検知のイメージ

サポートベクトルデータ記述法を拡張したDeep SVDD[2]では、データをニューラルネットワークによって写像した特徴空間で、サポートベクトルデータ記述法(SVDD)を実行します。

# 4. Deep SAD
Deep SAD[3]は、Deep SVDDを半教師あり学習に拡張した手法です。半教師あり学習とは、ラベルありデータとラベルなしデータの両方を活用する学習方法です。

図4は、教師なし異常検知と半教師あり異常検知の結果を比較した図です。図4の左の図は学習用のデータを表しており、点の色は、ラベルなしデータ（unlabeled）、正常データ（normal）、異常データ（outlier）を意味します。
図4の中央の図は、教師なし異常検知を行った結果を表しています。コンタマップの色は、超球の中心からの距離を表しており、色が濃いほど超球の中心に近く異常度が低いことを意味します。学習には、図4の左図のデータを用いていますが、すべてのデータを正常データとみなして学習を行っています。
図4の右の図は、半教師あり異常検知を行った結果を表しています。学習には、図4の左図のデータを用いており、そのラベルも考慮されています。図4の左図において異常データが存在していた部分を見ると、異常度が高くなっていることがわかります。
<img width="600" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/d811f052-e324-c067-173c-6dc59be2005b.png">
図4. 教師なし異常検知と半教師あり異常検知の結果比較
(参考文献[3]より引用)

異常検知では通常、「得られるデータのほとんどが正常データである」という前提をおきます。Deep SADでは、この考え方に基づいてラベルなしデータを正常データと同等に扱います。Deep SADでは、全てのラベルなしデータと正常データが超球の中心に写像され、異常データが超球の中心から遠い場所に写像されるように、ニューラルネットワークを学習します。
その際、ラベルありデータをラベルなしデータに比べて、どの程度重要視するかをハイパーパラメータによって調整することができます。

# 5. もっと詳しく学びたい方へ
本記事では、ハイブリッドモデルによる異常検知について、概括的に解説しました。スキルアップAIの[現場で使える異常検知基礎講座](https://bit.ly/3mr2yW4)では、機械学習による異常検知について、実務で使える知識を学ぶことができます。是非ともご検討ください。また、深層学習について詳しく学びたい方は、[現場で使えるディープラーニング基礎講座](https://bit.ly/3gVTw2r)もご検討ください。

第3回は[こちら](https://qiita.com/skillup_ai/items/47bc4c8d9d8c030837b5)
深層学習（ディープラーニング）による異常検知に関するブログ一覧は[こちら](https://qiita.com/tags/%e6%b7%b1%e5%b1%a4%e5%ad%a6%e7%bf%92%e3%81%ab%e3%82%88%e3%82%8b%e7%95%b0%e5%b8%b8%e6%a4%9c%e7%9f%a5)

# 6. 参考文献
[1] [Z. Bo, Q. Song, M. R. Min, W. C. C. Lumezanu, D. Cho, and H. Chen: Deep autoencoding gaussian mixture model for unsupervised anomaly detection, In International Conference on Learning Representations, (2018).](https://sites.cs.ucsb.edu/~bzong/doc/iclr18-dagmm.pdf)
[2] [L. Ruff, R. A. Vandermeulen, N. Görnitz, L. Deecke, A. Binder, S. A. Siddiqui, E. Muller, and M. Kloft: Deep one-class classification, In International Conference on Machine Learning, pp 4393–4402, (2018).](http://data.bit.uni-bonn.de/publications/ICML2018.pdf)
[3] [L. Ruff, R. A. Vandermeulen, N. Görnitz, A. Binder, E. Mller, K.-R. Mller, and M. Kloft: Deep semi-supervised anomaly detection, In International Conference on Learning Representations, (2020).](https://arxiv.org/pdf/1906.02694.pdf)

# 25卒向け！AIエンジニアになるための長期インターンプログラム参加者募集中！
25卒学生向けに、AIの基礎を学びながら就活も一括サポートする無料カリキュラムを提供しています。
修了するとE資格の受験資格も獲得できるプログラムとなっています！

<img width="700" alt="長期インターン" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/bfce4c26-1ebe-c54d-bacb-e804048a7a08.png">

**特長①AIエンジニアやデータサイエンティストの基礎が身に付く**
AIジェネラリスト基礎講座や機械学習のためのPython入門講座など、市場価値向上のための基礎を習得。

**特長②AI・データ分析領域の優良求人を紹介**
非公開求人や選考直結型インターンをご紹介し、早期内定の獲得をサポート。

**特長③長期インターンプログラム専用の学生コミュニティ参加可**
学生同士で就活情報をシェアしたり、学習を進めるうえでアドバイスをしあったりできるコミュニティに参加可能。

＞＞[長期インターン詳細](https://bit.ly/3pXW5JM)

☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。
配信を希望される方は[こちら](https://share.hsforms.com/1_XlReV-4Te-zcxCl9lhffA2mtef)

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Twitterは[こちら](https://twitter.com/SkillupAi)
Facebookは[こちら](https://www.facebook.com/skillupai)
LinkedInは[こちら](https://www.linkedin.com/company/skillup-ai)