深層学習×異常検出入門。技術の概要とビジネスへの応用

ディープラーニングの現実的な産業実装として注目を集める異常検知の分野。現在、数多くの深層学習を使った異常検知手法が提案されています。深層学習×異常検知に関わる研究まとめ論文も数多く存在しますが、1つのドメ イン/領域に絞った上でのレビューが多く見受けられます。この論文では、異常の定義から、手法の分類方法、広い産業適用での活用状況まで整理されており、ディープラーニング×異常検知を体系的、包括的に知るのにちょうど良いので、今回はこの論文をベースに深層学習×異常検知について紹介していこうと思います。

論文:DEEP LEARNING FOR ANOMALY DETECTION: A SURVEY

異常の考え方:異常と新規性の違いとは?

 

🔳異常

普通とは違う、逸脱した値、外れ値。下図N1, N2は大多 数の観測値の集合であり、正常と考えられます。一方、O1, O2, O3は少ない集合であり、大部分と乖離しているので異常値と考えられます。

 

🔳新規性

新規性検出とは、データ内の新規(新規)または未観察のパターンの識別です。
検出された新規性は、異常なデータポイントとは見なされず、通常のデータに適用されます。例えば下のトラをノーマルと定義した場合、ホワイトタイガーは、「新規」に分類されますが、チーターや、ライオン、馬などは、異常に分類されます。

 

異常の種類

異常検知とは、一言で言えば他の大多数のデータとは振る舞いが異なるデータを検出する技術のことです。大きく3つのタスクに分けられます。

 

🔳外れ値から検出

外れ値検出は静的で、あるデータ点が分布から大きく外れているかをみます。

多くの場合これに当てはまり、ラン ダムに発生し、特段理由もない場合 もあります。

 

🔳変化点検出

変化点検出は動的で、対象に変化が起きたか否か、その時点はどこかをみます。

正常状態の文脈と行動・パターンを 考慮した上で、乖離が見られる場合が当てはまります。時系列データを分析して、何らかのパラメータが変化した時点を推測する問題だといえます。

例えば、下画像の時系列モデルは、過去のデータの動きを表しています。一方変化点スコアは、「過去の動きと比べてどう異なる動きをしているか」をスコアにして表したものです。

この手法での異常検知は、変化点スコアが高い地点、つまり「過去と比べて急激に大きな違いが出た地点」を異常、とみなしています。

 

🔳異常状態検出

異常状態検出も動的で、対象の状態が正常か異常かをみます。

変化点検出と違い、複数の時系列に目を向け、複数の正常な時系列データの相関関係をモデリングし、関係性が通常と異なるセッションを見つけます。

 

異常検知の代表的な利点

診断:異常を自動で診断することにより人的工数を削減。

予知:現在の状態から将来的な異常を検知することで、突然の異常による人的、経済的ロスなどを低減。また流行の兆しを検出したりマーケティングにも活用可能

処方:検知だけではなく、将来的な異常を自動で修正することにより、稼働率・生産性を向上する。

なぜ深層学習で異常検知するの?

・従来手法では難しい画像や系列データーの複雑な構造データーを扱うのが難しい

・大量のデーターを扱う場合従来の手法では難しい

・深層学習手法はデーターを構造的に区別する特微量を学習するため、その道の専門家による手動の特微量設計の負担が軽減される

手法の整理

 

本論文では「教師情報の有無」及び、「訓練目的」から以下の5に分類して説明しています。

❶教師あり深層異常検知

・教師付けされたデーターから境界線を学習し、学習したモデルはテストデーターを正常と異常に分類する

・教師情報をもとに訓練するので、基本的に教師なし学習に比べ性能が良い

・しかし異常検知タスクにおいては異常データーが手に入りづらい事がほとんどであるため、教師あり異常検知はあまり利用されない

・教師なし手法がデーターの傾向の解釈に依存するのに対し、教師ありは教師付けされたデーターに依存する

・複数の正常クラスを持つ多クラス異常検知の事例も存在

 

❷半教師あり深層異常検知

・半教師あり異常検知では、訓練データに1クラスだけの教師情報を含む

・正常情報を囲む境界線を学習する

・大多数のクラスに所属しないものを異常とする

 

❸教師なし深層異常検知

・教師付けされたデーターは得るのが難しい事が多いため、利用される事が多い

・ヘルスケアやセキュリティといった分野でPCAやSVM、isolation Forestといった従来手法の性能を上回る成果が出ている

・元データもしくは潜在特微量の中で正常領域と異常領域を区別していく

・異常検知アルゴリズムでは、距離や密度といったデーターセットの中の内在的要素を捉え、外れ値を見つける

・未知の異常にも有効

 

❹ハイブリット深層異常検知

・従来手法と深層学習の両方を使う

Autoencoderの隠れ層で学習した特微量抽出してone class SVMのような従来手法に入力し、異常値を検出する

・訓練済みモデルを移転学習させて特微量を抽出するケースも成果を挙げてる

・欠点は異常検出に特化した訓練をするわけではないので、外れ値を特定する観点での特微量がそれほど抽出されてるわけではない。 この欠点に対処するために、One Classニューラルネットワークなどが提案された

 

One Classニューラルネットワーク

・カーネルベースのOne Class SVMに着想を得たもの

・1クラス(正常に)関わる表現情報をディープラーニング によって豊富に抽出し正常を囲むタイトな境界を引く

・異常のデーターから学習するわけではないので、外れ値特定のための表現獲得が上手くいかない場合もある

 

▶︎各手法のメリット、デメリットまとめ

 

その他の手法

🔳アンサンブルベース異常検知

ディープラーニング はノイズに弱く、ロバストな性能を出すには大量な訓練データが仏用となるため、訓練時間削減や過学習を避ける、多様性を改善するためにアンサンブルが用いられる

🔳クラスタリングベース異常検知

ディープラーニング によって入力データの次元を削減、特微量を抽出する

🔳転移学習ベースの異常検知

転移学習によって訓練データの量が限られていても効果をあげることができる

🔳強化学習ベースの異常検知

高次元データ空間の複雑な振る舞いを学習するための方法として注目されている

異常に関する情報はあらかじめ何も与えず、報酬を通して、異常に関わる知識を認識していく

新しい領域のため、実用化まではギャップがある

 

シチュエーション別の利用シナリオ

・教師付けされたデータが多く手に入る場合
→教師あり異常検知、半教師あり異常検知

・異常データはあまりに手に入らないが、データ自体が多く手に入る場合
→教師なし異常検知

・データ自体多く手に入らない場合
→訓練済みモデルを利用したハイブリット異常検知

 

異常検知の産業活用状況

センサーやネットワーク・計算機の飛躍的な発展によって、ビッグデータの活用が盛んになる中で、異常検知の応用先は多岐にわたっています。監視カメラ動画からの侵入者検知、身近な例だと、クレジットカードの不正利用検知なども異常検知の一例です。

他にも医療(例:喘息の発作の検知)や金融(例:ヘッジファンドの不正検出)分野での事例も見られ、産業機械の稼働状況や製造過程の画像による製品異常の検出、構造物の遠隔監視にも異常検知の適応が進んできています。

また異常の有無をデータから診断 (diagnose) することから一歩進み、異常の予兆を検知(prognoses)する予知保全の枠組みも注目を浴びており精力的に研究が行われています。事前に故障を予測し故障そのものの発生を回避することができれば、安全性の向上だけでなくメンテナンスコストの削減にもつながると期待されます

以下で代表的なタスクについていくつか紹介していきます。

🔳侵入検知(システムへの悪意のある侵入の検知)

・「ネットワーク型」と「ホスト型」とに大きく分けられる。ネットワーク型とは、リアルタイムでトラフィック(※ネットワーク上を流れるパケット)を監視するものであり、ホスト型は、コンピューターにインストールしてOSが記録するログファイルをチェックするもの。

・侵入者が既存の検知ソリューションを避けるために攻撃を変えてくるのが課題

 

🔳不正検知(価値のある資産に対しての意図的な詐欺行為)

・クレジットカード詐欺は一定のパターンがなく難しい
・典型的な方法は、使用状況を点検して、ユーザープロファイルからの逸脱を見つける方法

・モバイルは大量のネットワークと速さが難しさ

・保険詐欺は従来手法がある程度成果を上げている領域
・ロバストな特微量を取得するために専門家による手動設計が必要

 

🔳マルウェア検出(マルウェアからユーザーを守るための検知)

・従来手法におけるマルウェア検知の多くの手法は、特微量抽出と分類・クラスタリングの2段階に分けられる

・マルウェア攻撃は適用能力が高く、攻撃者は検知を免れるため高度な技術を利用してくるが、これらに対応した深層学習の手法がいくつか提案されている。

 

🔳医療系異常検知 (医療画像解析でレアパターンを特定し診断や予防治療に繋げる)

・結果の解釈性が重視されており、ディープラーニングのブラックBOX的な課題に対して、解釈性の高いモデルが提案されている。

・異常データが少ないのが課題

 

🔳ソーシャルネットワーク異常検知(ソーシャルネットワークにおけるスパムユーザー、性的不適切コンテンツ、詐欺、フェイクユーザー、デマの排除)

・不均一で動的なデータ質性が課題 

・ソーシャルメディアにおける従来手法の異常検知とその難しさについては研究が多くなされてる

 

🔳IOT異常検知(IOTデバイスにおける時系列センターデータ、ネットワークから不正動作、挙動を検知する)

・多様なデバイスがネットワークで繋がっており、システム全体としてかなり複雑な構成となる

 

 

🔳工業異常検知(風力タービン、発電所,高温エネルギーシステム,貯蔵庫などにおける)

・従来の機械学習が利用されているケースもあるが、ディープラーニングにおいても故障の早期検知で成果を上げてきている

・大規模なため、欠損の原因にかかわる要素が多く、データがかなり動的

 

 

🔳時系列異常検知(単変量と多変量、単一異常と文脈異常と集団外れ値)

・ディープラーニングによる豊富な階層情報抽出により検知性能は向上している。

・非定常で非線形で動的に傾向が変化していく場合があり継続的に学習が必要

 

 

🔳映像監視(監視はCCTVカメラでの撮影した映像をセキュリティの観点で解析)

・教師情報がない動画データーが大量にある

・明示的な異常が定義しずらい場合があり、アノテーションのコストが高い(同じ動作でも場所によって以上の定義が変わる)

 

まとめ

ディープラーニングベースの異常検出は活発な研究分野であり、アルゴリズム研究とソフトウェア開発が日々進展しています。ビジネス的にも重要な応用がたくさんあります。

今回は、深層学習に基づく異常検出における体系的で包括的なレビューを紹介しました。ある特定の分野やデータに応じた深い学習モデルを選択する時のガイドラインとして利用できそうです。