ディープラーニングによる異常検知手法ALOCCを実装した

はじめに
ディープラーニングを用いた異常検知手法であるALOCCをChainerで実装し,MNISTで実験しました。
全体のコードはGitHubのリポジトリにアップロードしました。
ALOCCについて
ALOCCは画像データに対して異常検知を行うための手法です。
多くの場合,異常データは正常データに比べて極めて少ないか,全く無いです。
そこで,ALOCCでは正常データのみを利用して学習し,その分布から外れたデータを検出します。
学習
ALOCCのモデルは以下のようなオートエンコーダとGANを組み合わせたような構造をしています。
オートエンコーダ部分はGANのGeneratorに相当し,Reconstructor (${\cal R}$) と呼ばれます。
学習時には正常画像にノイズを加えたデータを入力し,元通りに復元することを学習します。
Discriminator (${\cal D}$) の役割はGANと同じで,入力された画像が${\cal R}$の出力なのか本物の正常画像なのかを見分けるように学習します。
以上の事柄を踏まえ,ALOCCの学習は以下の2つの目的関数の最適化によって行われます。
{\cal L}_{{\cal R}+{\cal D}}=\mathbb{E}\left[ \log ({\cal D}(X)) \right]+\mathbb{E}\left[ \log \left( 1-{\cal D}\left( {\cal R}\left( \tilde{X} \right) \right) \right) \right] \\
{\cal L}_{\cal R}=\mathbb{E}\left[ \| X-{\cal R}\left( \tilde{X} \right) \|^2 \right] ここで$X$は正常画像,$\tilde{X}$はノイズを加えた正常画像を表します。
${\cal L}_{{\cal R}+{\cal D}}$は${\cal R}$の出力を${\cal D}$が見破れたかどうかを表します。
${\cal D}$はこれの最小化を目指し,${\cal R}$は逆に${\cal D}$を欺けるように最大化を目指します。
${\cal R}$は${\cal D}$を欺くだけではダメで,オリジナルに近い画像を

AINOW

人工知能専門メディアAINOW(エーアイナウ)です。人工知能を知り・学び・役立てることができる国内最大級の人工知能専門メディアです。2016年7月に創設されました。取材のご依頼もどうぞ。https://form.run/@ainow-interview

サイト名: Qiita

無料メールマガジン登録

週1回、注目のAIニュースやイベント情報を
編集部がピックアップしてお届けしています。

こちらの規約にご同意のうえチェックしてください。

規約に同意する