AIって何だろうと考えたとき、感覚的に思いつくことの1つとして「何かを教えてくれるコンピュータ上の何か」といのもあるのではないでしょうか?何かを教えてくれるぐらいですから、そこそこ性格のいいAIです。そんなもの作れるか! っとなりますが、AIっぽいデータ活用の中で、もっとも手軽に実現できそうなのが異常検知です。「これ、変ですよ!」と教えてくれるからです。
実は、異常検知は昔からあるデータサイエンスの技術です。ということで今回は「もっとも手軽なAIである異常検知」というお話しをします。
【目次】
1.仲間外れを探す
2.過去・現在・未来
3.教師ありと教師なし
4.どう使い分けるのか?
【この連載の前回:(その270)階層時系列データと予測モデル構築へのリンク】
◆【特集】 連載記事紹介:連載記事のタイトルをまとめて紹介、各タイトルから詳細解説に直リンク!!
1.仲間外れを探す
異常検知って何だろう? と考えたとき、最初に思い浮かんだのが「仲間外れを探す」というものです。異常検知とは、他のデータとは違うデータを探し、そして教えてくるものでしょう。データは、単に数値データだけでなく、画像データや音声データ、自然言語データなども含みます。
2.過去・現在・未来
異常検知の用途は幅広く、過去・現在・未来で活躍します。
例えば、データ整備中に過去データの外れ値などを探す作業はよくあることです。検知後、その理由を探り、どう対処するのかを決めデータ整備をします。
例えば、目の前にあるデータが正常か異常か検知する使い方もよくあることです。売上や受注件数、PV数などのモニタリングしている指標が異常かどうかを探ったり、工場などで外観検査をする際に画像データを利用し人手ではなく機械(コンピュータ)で外観検査をしたりします。
例えば、未来の異常を予測することもよくあります。顧客の離反という異常を予測したり、機械の故障という異常を予測したりし、未来の異常に対しあらかじめ対処できるようにする使い方もあります。
活躍の場面の多い異常検知ですが、異常検知をするためには、何かしら数理モデルのようなものを構築する必要があります。
3.教師ありと教師なし
機械学習の中に、教師あり学習と教師なし学習というものがあります。
異常検知も、教師あり学習によるものと、教師なし学習によるものがあります。教師あり学習による異常検知では、異常検知モデルを学習するとき、正常 or 異常のラベルが付いたデータを利用します。ということは、教師なし学習による異常検知モデルを学習するとき、そのデータには正常or異常のラベルが付いていないということです。
4.どう使い分けるのか?
一例として、データの取りはじめなど、データ量の問題で、教師なし学習による異常検知をすることがあります。データがそれなりに蓄積された段階で、教師あり学習による異常検知に切り替える、というものです。
通常、異常の発生頻度が小さいため、データ量が少ないと、異常のラベルの付いたデータが非常に少ないという問題があります。そして、多くの場合、精度は教師...