【深層学習（ディープラーニング）による異常検知】異常検知連載シリーズその1

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

近年の深層学習の発展は目覚ましく、多くの分野で活用が進んでいます。この動きは異常検知の分野でも同様で、異常検知に深層学習を用いた事例が増えています。そこで、本ブログでは、近年注目されている深層学習による異常検知について、今回から４回にわたって解説していきます。第1回目の本記事では、深層学習による異常検知について概括的に解説していきます。（深層学習による異常検知の記事一覧は[こちら](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.機械学習による異常検知](#1-機械学習による異常検知)
[2.自己符号化器による異常検知](#2-自己符号化器による異常検知)
[3.敵対的生成ネットワークによる異常検知](#3-敵対的生成ネットワークによる異常検知)
[4.ハイブリッドモデルよる異常検知](#4-ハイブリッドモデルよる異常検知)
[5.もっと詳しく学びたい方へ](#5-もっと詳しく学びたい方へ)
[6.参考文献](#6-参考文献)

# 1. 機械学習による異常検知
異常検知とは、データに対して正常か異常かを判定することです。具体的には、図１に示すような、交通違反者の検出や病気の検出、マルウェアの検出、IoTでの外れ値の検出などが挙げられます。
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/f65dbe3c-643c-1a29-a2e0-6a07539f9ed7.png">
図1. 異常検知の事例(参考文献[1]より引用)

従来の機械学習による異常検知では、まず、混合ガウスモデルなどによって、大量の正常データから正常データの分布をモデリングします。次に、観測したデータが得られた正常データの分布からどれだけ離れているかによって異常を判別します。混合ガウスモデルとは、データを複数の正規分布の重ね合わせで表現する手法です。

混合ガウスモデルを用いた異常検知のイメージを図2に示します。この例では、3つの正規分布の重ね合わせで正常データ(青色の点)の分布を表現し、その分布から外れたデータ(オレンジ色の点)を異常と判定しています。
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/b0b80f6a-e20b-9481-a16c-4df840e2ee94.png">
図2. 混合ガウスモデルによる異常検知のイメージ

しかし、この混合ガウスモデルのような従来の方法では、画像や自然言語のような高次元のデータに対しては、その特徴をうまく捉えることができず、正常データの分布を適切に推定することができませんでした。

この課題を解決してくれるのが深層学習です。異常検知に深層学習を利用した手法はいくつも提案されていますが、それらの手法は大きく3つのアプローチに分けられます。図3に3つのアプローチを示し、それのアプローチに該当する具体的な手法名を図4に示します。
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/d8fe3d89-84db-ab00-5ed4-61fb117b3f34.png">
図3. 深層学習による異常検知の3つのアプローチ
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/82572f1b-5b5a-8fc4-1fbc-e6070a7fc956.png">
図4. 各アプローチに該当する手法名

ここからは、図3の3つのアプローチについて解説していきます。

# 2. 自己符号化器による異常検知
自己符号化器[2]は、2006年にHintonらによって発表されました。自己符号化器は、入力されたデータから特徴を抽出するエンコーダと抽出した特徴からデータを復元するデコーダで構成され、入力データと全く同じデータを復元するように学習されます。このときの、入力データと復元データの差分を復元誤差と言います。

自己符号化器による異常検知の模式図を図5に示します。自己符号化器による異常検知では、まず、正常データだけで自己符号化器を学習させます。次に、判定したいデータを学習済みの自己符号化器に入力し、復元誤差を算出します。このとき、学習済みの自己符号化器は、正常データで学習されているため、当然ながら正常の特徴は復元できます。しかし、異常のデータでは学習されていないため、異常の特徴は上手く復元できません。そのため、異常のデータに対しては復元誤差が大きくなります。
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/31c6a5ef-07ec-1ba4-187c-c9871850ca1e.png">
図5. 自己符号化器による異常検知

# 3. 敵対的生成ネットワークによる異常検知
敵対的生成ネットワーク（generative adversarial networks：GAN）[3]は、2014年にGoodfellowらによって発表されました。敵対的生成ネットワークの仕組みについては、 [こちらの記事](https://bit.ly/2K59Cdm)をご参照ください。

敵対的生成ネットワークによる異常検知のベースとなるアイデアは、自己符号化器による異常検知と似ていて、「正常データのみで学習させた敵対的生成ネットワークは異常データを表現できない」というものです。
敵対的生成ネットワークを異常検知に応用した手法の先駆けであるAnoGAN[4]では、判定したい画像に似た画像を生成するためのノイズを勾配法によって求めます。勾配法によって求めたノイズから画像を生成した後、テスト画像と生成画像の差分とどの程度識別器をだませているかによって異常度を算出します。図6にAnoGANによる異常検知の模式図を示します。
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/b06ed41e-0cf8-3f16-40a4-b46b59da2834.png">
図6 . AnoGANによる異常検知の模式図

# 4. ハイブリッドモデルよる異常検知
画像や自然言語などのデータは次元が高すぎるため、上手く異常検知ができないという問題がありました。「次元が高すぎるのであれば、深層学習を用いて次元を減らせばいい」というのがハイブリッドモデルに共通する発想です。ハイブリッドモデルでは、その名称に表れているように、深層学習と従来の異常検知モデルを組み合わせて、異常検知を行います。
図7にハイブリッドモデルによる異常検知の模式図を示します。ハイブリッドモデルではまず、深層学習の何らかのモデルによって特徴を抽出(次元削減)します。取り出された特徴は、入力データの次元数よりも圧倒的に少ない次元数で表現されます。この抽出された特徴を混合ガウスモデルなどの従来の機械学習モデルに入力データとして渡します。ほとんどのハイブリッドモデルでは、この一連の流がエンドトゥエンド(end to end)で実装されます。
<img width="500" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/7505823f-ec51-b680-4127-d2fe103c79fe.png">
図7. ハイブリッドモデルによる異常検知

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

第2回は[こちら](https://qiita.com/skillup_ai/items/24b746dea43e2b876de0)
深層学習による異常検知の記事一覧は[こちら](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] [Raghavendra Chalapathy, and Sanjay Chawla: DEEP LEARNING FOR ANOMALY DETECTION: A SURVEY, arXiv preprint arXiv:1901.03407(2019)](https://arxiv.org/pdf/1901.03407.pdf)
[2] [G. E. Hinton and R. R. Salakhutdinov: Reducing the dimensionality of data with neural networks, science, vol. 313, no. 5786, pp. 504-507 (2006).](https://www.cs.toronto.edu/~hinton/science.pdf)
[3] [I. J. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. WardeFarley, S. Ozair, A. Courville, and Y. Bengio: Generative adversarial nets, In Advances in Neural Information Processing Systems 27, pp. 2672–2680. (2014).](https://papers.nips.cc/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf)
[4] [T. Schlegl, P. Seeböck, S. M. Waldstein, U. Schmidt-Erfurth, and G. Langs: Unsupervised anomaly detection with generative adversarial networks to guide marker discovery, In International Conference on Information Processing in Medical Imaging, pp. 146–157. (2017).
](https://arxiv.org/pdf/1703.05921.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)