AI研究所 - AI(人工知能)に脅かされないために、AI(人工知能)を作る側の人間になる -

HOME  >  ニューラルネットワークによる異常検知の仕組みを徹底解説

公開日:2020.10.20 

ニューラルネットワークによる異常検知の仕組みを徹底解説

機械学習

AI(人工知能)が普及している中で、特に実用化が進んでいる分野に「異常検知」という技術があります。
異常検知は私たちの生活の中のさまざまな場所ですでに使われており、サービスや製品の向上を担っています。
今回は、その技術の中でもニューラルネットワークを用いた異常検知の仕組みを解説していこうと思います。

本記事の内容

異常検知とは?
ニューラルネットワークによる異常検知技術
・変分オートエンコーダ(VAE)における異常検知
・畳み込みニューラルネットワーク(CNN)における異常検知
最後に

異常検知とは?

「異常検知」と一言に言っても、その内容は分野ごとにさまざまです。
例えば、ものづくりにおいては工場で製造する製品における不良品の検出があります。
これまで人の手で行ってきた検査や仕分けを、異常検知の技術を取り入れることで、現場の負担を減らすことができます。
医療の分野では、CTやレントゲン、心臓MRI、超音波エコーなどの画像診断において異常な細胞、つまり癌などを早期のうちから見つけ出すことができます。
農業の分野では、生育不良な場所や虫が発生している場所を探し出すことにも使われます。
最近では、クレジットカードでの不正なお金の流れを異常として検知して、不正取引が行われないようにすることでも実用化され、実績をつんでいます。
このように、「異常」な状態は、それぞれの分野で変わってきます。
異常検知とは、その領域の状態や多くの情報(データ)の中で、他のものとは異なった状態や情報(データ)を検知することになります。
異常検知を取り入れることは、より品質の良いものができたり、人の負担を減らすことにつながります。
それにより、安全・安心な社会を作ることや仕事の効率化にもつながります。

ニューラルネットワークによる異常検知技術

それでは、ニューラルネットワークによる異常検知について詳しく見ていきましょう。
主なニューラルネットワークを用いた学習方法には、正常データのみを用いた学習と正常データと異常データを用いた学習があります。
前者を生成モデル、後者は識別モデルになります。
本記事では、生成モデルの例として変分オートエンコーダ(VAE)について、識別モデルの例として畳み込みニューラルネットワーク(CNN)について説明します。

変分オートエンコーダ(VAE)における異常検知

生成モデルはデータそのものを生成するものです。
元のデータがどのようになっているかを推測し、元データと同じようなデータをサンプリングすることを目的としたモデルになります。
画像生成では、元のデータ(訓練データ、traindata)から画像の持つ潜在空間を学習し、それをベクトルとして表現しています。
オートエンコーダとは、入力と出力が同じになるようなニューラルネットワークになります。
入力データを圧縮する処理をエンコード、そのデータを復元する処理をデコードと言います。
従来のオートエンコーダでは、上記のような処理を行いますが、サンプリングには役に立ちませんでした。
これに対し、変分オートエンコーダは入力データを統計分布に変換し、平均と分散を表現するように学習するものです。
エンコーダーが統計分布へ変換し、デコードでランダムにサンプリングした点を復元します。
そうすることで、新しいデータを生成することができるのです。
それでは、これを異常検知に取り入れた場合どうなるのでしょうか。
正常データを学習した変分オートエンコーダ上で、正常なデータが入力された場合はそれを見事に復元し出力データを得ることができます。
しかし、そこに異常なデータが入力された場合、異常についての復元はできず、学習より異常のないデータとして復元された出力データを得ます。
そこで、それぞれの入力データと出力データの差分には違いが出てきます。
前者は差分がなく、後者は差分が抽出されます。
この結果をもとに異常を発見するのが変分オートエンコーダにおける異常検知になります。
オートエンコーダを用いた異常検知に関する動画はこちらになります。

畳み込みニューラルネットワーク(CNN)における異常検知

正常データのみを用いる手法は、学習データの準備は簡単ですが見分けが難しい点がいくつかあります。
それは、生成データをどのくらい実データに近づけられるかということと、差分を本当の違いとしてよいかというところです。
よりよい結果を出すためには、正常データと異常データの両方で学習することが良さそうです。
そこで用いられる一般的な手法が、畳み込みニューラルネットワークになります。
畳み込みニューラルネットワークは、そもそも画像処理分野で用いられるニューラルネットワークであり、異常検知のみならず、画像データに関する研究が今活発に行われています。
畳み込みニューラルネットワークの基本の形は、入力には画像のまま2次元データを用い、畳み込み層とプーリング層からなる2種類の層を交互に組み合わせたものになっています。
畳み込み層では、カーネルと呼ばれるフィルタを用いて画像から特徴量を抽出します。
これにより、通常のニューラルネットワークでいう重みが特徴マップとして得られます。
また、プーリング層では決められたルールに従って画像サイズを小さくします。
そして、ニューラルネットワークでよく用いられる誤差逆伝番法をここでも用いて重みを調整していきます。
こうして学習された分類器を用いて、正常か異常かの判定をしていくことになります。
畳み込みニューラルネットワークにおいて、過学習を防ぎながら少量データで学習させる方法として、次にあげる手法も用いられています。
例えば、転移学習、データの水増し、ドロップアウト、バッチ正規化などがあげられます。
画像データを使った異常検知についてこちらで試してあるのでご覧ください。

最後に

今回はニューラルネットワークを用いた異常検知の仕組みを解説しました。
主に変分オートエンコーダと畳み込みニューラルネットワークを用いた異常検知の仕組みについて説明しました。
現在では、他にも様々な手法や、それぞれの問題点を考慮したテクニックなどが開発されています。
しかし、特にニューラルネットワークを応用したディープラーニングを用いた手法はより活発に研究されています。
ニューラルネットワークやディープラーニングを用いた手法はどんどん進歩しており、ここ数年は様々な手法を組み合わせたものなども多くなってきています。
異常検知が私たちの生活に取り入れられることで、より安全・安心の社会になり、仕事の効率化につながっていくことが期待できそうですね。
最後までご覧いただきありがとうございました。

 


参考になったら「いいね!」と「シェア」をお願いします!!

このエントリーをはてなブックマークに追加
AI(人工知能)セミナー開催中