こんにちは、ブレインズテクノロジーの原です。本日は、機械学習を用いた「異常検知」の基本的な考え方と、良く用いる学習手法を3パターンに分けてご紹介します。また、特に問題になる「過検出」をどのように抑制すればいいのかについても解説します。
異常検知とは、(当たり前かもしれませんが)通常ではないデータパターンを識別することを言います。特に、様々な因子が絡む複雑な状況下で異常検知をしたい場合(例:クレジットカードの不正利用、外観検査など)には、ルールベースの判断が難しいこともあり、機械学習を用いることが主流となっています。
さて機械学習と言うと、「異常データがたくさん必要なんだろうな。そんなデータあまり持ってないよ。」と思われる方も多いと思います。実際、異常は頻繁に起きるものではないため、収集できる異常データの数は必然的に少なくなります。また全ての発生パターンを網羅する異常データを収集することは通常困難です。
では異常データが少ない場合には、異常検知はできないのでしょうか?そんなことはありません。そこで活用されるのが、「良品学習」です。良品学習とは、正常データは容易に収集できることに着目し、それらを使って(逆に言えば異常データは使わずに)モデルを作ることを言います。
正常な状態とはどういうものかを覚え込ませることで、いつもと違うものを検出しますので、未知の異常が起きた場合でも異常と判定することができます。極端に言えば、異常データが一切手に入らない場合においても、異常検知モデルを学習することができます。
では、全ての異常検知問題について、良品学習だけで対応できるのでしょうか。いいえ、もちろん問題があります。良品学習で異常と判定されたものの中には、一般に、本当の異常(見つけたいもの)と、偽の異常(見つけたくないもの)が含まれてしまうためです。後者の偽の異常は「過検出」とも呼ばれます。
良品学習では、いつもと違うものを異常と判断するわけですが、いつもと違ったからと言って、必ずしも廃棄すべき不良品であるとは限らない事が、この問題の本質です。このような場合には、良品学習による判定を行ったあとに、更に本物の異常と偽物の異常を分別する、という2段構えを取ることが多いです。このような行為を、品質管理では「異常データを層別する」などと言います。
さて、上述した内容について、機械学習の用語を用いて再整理すると次のようになります。
本記事では、機械学習を用いた異常検知の代表的な3つのパターンと過検出を抑制する手法について紹介しました。お手持ちの課題に対して、どのように異常検知モデルを学習すれば良いか、お悩みの方はぜひ一度ご相談ください。
[1]Chandola, Varun; Banerjee, A.; Kumar, V. (2009). “Anomaly detection: A survey”. ACM Computing Surveys 41