Keep Innovating! Blog

Keep Innovating! Blog

異常検知における生成モデルの手法

AI 異常検知
中西正樹

はじめまして、技術創発推進室の中西です!

私は2018年にオープンストリームに入社し、それからAI技術の特に中心となる機械学習の分野について取り組み始めました。学んでみると機械学習は非常に面白く、また目まぐるしい早さで新しい手法が提案されているので新鮮味もあります。また、日本ディープラーニング協会のE資格2020#1 も取得しております。

私たちが得意とするコア技術として画像処理技術があります。最近ではAI・機械学習を利用した画像処理技術の発展がめざましく、私たちもその研究を行っています。特に最近はこの記事でも触れるGAN(Generative Adversarial Networks)と呼ばれる手法に興味があり、キャッチアップを行なっています。

そのなかで、現在私は画像の異常検知の問題について取り組んでおり、精度向上を行おうと日々試行錯誤しています。

今回はその異常検知の手法について紹介したいと思います。

■異常検知のさまざまなアプローチ

異常検知の問題では、モデルを学習させる際にどのようなデータが手に入るかによってアプローチが変わります。本記事では正常画像と異常画像ともに充分な枚数が手に入る場合、正常画像のみ手に入る場合、正常画像と少量の異常画像が手に入る場合、の3パターンに分けて紹介します。

正常画像と異常画像ともに充分な枚数が手に入る場合

正常画像と異常画像ともに充分な枚数が手に入る場合、それらの特徴をモデルに充分学習させることができるため、精度は高くなる傾向にあります。

一方で現実の問題として充分な量の正常・異常画像が手に入ることは少なく、このアプローチを取りたくても取れないということが多々あります。特に異常画像の収集は難しい場面が多く見られます。例えば工場などで製品の異常検知を行いたい場合、異常品の発生頻度が低く異常画像が収集できない、などの問題に直面します。

また別の問題として、収集した異常画像に無いパターンの異常に対して精度を出すことが難しい、なども挙げられます。

正常画像のみ手に入る場合

正常画像のみ手に入る場合、モデルには正常画像の特徴のみを学習させます。そしてテスト時には対象が学習した正常画像の特徴からどれだけ遠いか、のような基準によって異常判定をします。

前述のように異常画像の収集が困難な場合でも、この方法であれば異常検知が可能です。また、正常の特徴からどれだけ遠いかという指標で判定するため、未知の異常画像に対しても一定の精度が見込めます。

これらの利点を踏まえ、異常検知の分野では正常画像のみで学習を行う手法の研究が盛んに行われています。

正常画像と少量の異常画像が手に入る場合

正常画像と少量の異常画像が手に入る場合でも、両方の特徴をモデルに学習させるアプローチがあります。しかし異常の特徴を学習させるには異常画像の量が充分で無いため、学習の方法に工夫を加えたモデルが利用されます。それには様々なバリエーションがあるため一概に言えませんが、近年は距離学習と呼ばれる方法を用いた論文が多く提案されています。

正常画像のみを利用する手法と比べて高い精度を出す手法や、充分な正常・異常画像を用いる手法と比べて高い汎化性能を出す手法などが提案されており、非常に注目されているアプローチです。

■生成モデルに基づく異常検知

今回は正常画像のみ手に入ることを想定し、その枠組みでよく提案される手法の一つ、生成モデルに基づく手法について掘り下げ、代表的な手法を紹介します。

生成モデルとはその名の通り画像を生成するモデルです。

異常検知の教師なしの枠組みでは学習に用いる正常画像の情報を使って元の正常画像を生成するようなモデルを作ります。そしてテスト時には、テスト画像からの特徴をもとに画像を生成します。この時、テスト画像が正常であった場合、モデルは正常な画像を出力します。

一方でテスト画像が異常であった場合を考えてみます。モデルは正常画像のみしか知らないため異常画像を入力とした場合でも正常な画像を出力します。このことを利用し、テスト画像とその特徴をもとに生成した画像の差分を取ることで、モデルが生成できない異常領域のみを浮かび上がらせて異常判定することができます。

図1. 生成モデルに基づく異常検知のイメージ

ここからは、この分野の代表的な論文をピックアップしてご紹介します。

ちょっと余談ですが、現在のAIの研究開発において最も重要な情報源の一つが学術論文です。AI技術の進歩はとても早いので、まとまった教科書や技術書に掲載されるころには時代遅れの技術になりかねません。論文は世界中から日々発表されているので、全てに目を通すのは困難ですが、私たちも情報収集方法を工夫して主要な最新論文はチェックするように努力しています。

■AnoGAN

タイトル:Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery

URL: https://arxiv.org/pdf/1703.05921.pdf

GAN(Generative Adversarial Networks)と呼ばれる敵対的生成ネットワークを用いた生成モデルの手法を異常検知の問題に適用した手法で、この分野では先駆け的存在の論文です。

一般にGANでは潜在変数と呼ばれる、生成される画像のもととなる変数があることを想定します。AnoGANでは潜在変数から学習に使う正常画像を生成できるようにモデル(Generator)を学習します。

テスト時には、入力画像に対する潜在変数が分からないため、潜在空間の探索を行うことで対応する潜在変数を見つけて画像を生成します。

図1. AnoGANのアーキテクチャ

■EGBAD(Efficient GAN)

タイトル:Efficient GAN-Based Anomaly Detection

URL: https://arxiv.org/pdf/1802.06222.pdf

前述のAnoGANでは潜在空間に仮定をおいていないため、テストの度に潜在空間内で探索を行うことが必要です。そのため非常にコストがかかるという問題がありました。EGBADでは画像を生成するモデル(Generator)に加えて画像に対応する潜在変数を出力するモデル(Encoder)を用意します。そして Encoder と Generator を同時に学習することで、画像と潜在変数の対応付けができるようになります。

テスト時には Encoder を用いることで入力画像に対する潜在変数を特定することができ、それを元に画像の生成を行うことでテストにかかるコストを大幅に削減しています。

図2. EGBADのアーキテクチャ

■GANomaly

タイトル:GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training

URL: https://arxiv.org/pdf/1805.06725.pdf

GANomaly ではGANの敵対的な構造に加えて AutoEncoder と呼ばれるネットワークを導入します。

AutoEncoderは画像の圧縮と復元を行うネットワークであり、ノイズの除去や次元の圧縮などに利用されます。AutoEncoderとGANの構造を組み合わせ、潜在空間をAutoEncoderの圧縮された特徴表現によって構成したのが GANomaly です。

入力画像を圧縮したものを潜在変数とするため、比較的安定した画像の生成と潜在空間の構成が可能となります。

図4. GANomalyのアーキテクチャ

■Skip GANomaly

タイトル:Skip-GANomaly: Skip Connected and Adversarially Trained Encoder-Decoder Anomaly Detection

URL:https://arxiv.org/pdf/1901.08954.pdf

Skip GANomaly では前述の GANomaly をベースに Skip Connection と呼ばれる構造を取り入れます。

Skip Connection により、入力画像の様々なスケールの情報を画像生成時に利用することができるため、生成の精度が向上します。そのため、異常検知の精度も向上することが期待されます。

図5. Skip GANomaly のアーキテクチャ

■最後に

この記事では異常検知のアプローチの分類について紹介し、さらに生成モデルに基づく異常検知について、代表的な論文を紹介しました。

画像の異常検知の分野では紹介した手法以外にも非常に多くの手法が提案されています。これからも最新の手法を常にキャッチアップしていきたいと思います。

また私もいくつか改良アイデアを考えており、独自のモデルが作れないか検討中です。うまく行ったら、論文も書いてみたいと思っています。

このような画像処理AIや異常検知について、興味のある方、議論したい方はぜひ当社(https://solution.opst.co.jp/opst_other)までご連絡ください。よろしくお願いします!

プロフィール

著者:中西正樹

株式会社オープンストリーム/技術創発推進室

大学院時代から画像処理の研究に携わっており、2018年から画像の機械学習の案件に参画。案件では最新の論文を読み漁り、フルスクラッチで実装することが多い。TensorFlowよりPyTorch派。

タグ
メンバー
ページトップ