AI(人工知能)って何だろうと考えたとき、定義は非常に難しいですが、、、 感覚的に思いつくことの1つとして、「何かを教えてくれるコンピュータ上の何か」といのもあるのではないでしょうか?
何かを教えてくれるぐらいですから、そこそこ性格のいいAIです。
そんなもの作れるか! っとなりますが、AIっぽいデータ活用の中で、もっとも手軽に実現できそうなのが異常検知です。
「これ、変ですよ!」と教えてくれるからです。
実は、異常検知は昔からあるデータサイエンスの技術です。
ということで今回は、「もっとも手軽なAIである異常検知」というお話しをします。
数理的なお話しは一切でてきません。
仲間外れを探す
異常検知って何だろう? と考えたとき、最初に思い浮かんだのが「仲間外れを探す」というものです。
異常検知とは、他のデータとは違うデータを探し、そして教えてくるものでしょう。
データは、単に数値データだけでなく、画像データや音声データ、自然言語データなども含みます。
過去・現在・未来
異常検知の用途は幅広く、過去・現在・未来で活躍します。
例えば、データ整備中に過去データの外れ値などを探す作業はよくあることです。検知後、その理由を探り、どう対処するのかを決めデータ整備をします。
例えば、目の前にあるデータが正常か異常か検知する使い方もよくあることです。売上や受注件数、PV数などのモニタリングしている指標が異常かどうかを探ったり、工場などで外観検査をする際に画像データを利用し人手ではなく機械(コンピュータ)で外観検査をしたりします。
例えば、未来の異常を予測することもよくあります。顧客の離反という異常を予測したり、機械の故障という異常を予測したりし、未来の異常に対しあらかじめ対処できるようにする使い方もあります。
活躍の場面の多い異常検知ですが、異常検知をするためには、何かしら数理モデルのようなものを構築する必要があります。
教師ありと教師なし
機械学習の中に、教師あり学習と教師なし学習というものがあります。
異常検知も、教師あり学習によるものと、教師なし学習によるものがあります。
教師あり学習による異常検知では、異常検知モデルを学習するとき、正常or異常のラベルが付いたデータを利用します。
ということは、教師なし学習による異常検知モデルを学習するとき、そのデータには正常or異常のラベルが付いていないということです。
どう使い分けるのか?
一例として、データの取りはじめなど、データ量の問題で、教師なし学習による異常検知をすることがあります。データがそれなりに蓄積された段階で、教師あり学習による異常検知に切り替える、というものです。
通常、異常の発生頻度が小さいため、データ量が少ないと、異常のラベルの付いたデータが非常に少ないという問題があります。そして、多くの場合、精度は教師あり学習による異常検知の方が高いです。
もう1つの例として、両方を併用し、教師あり学習による異常検知で既知のパターンの異常を検知し、教師なし学習による異常検知で未知のパターンの異常を検知する、という使い方もあります。
教師あり学習の場合、正常or異常のラベルが付いたデータで学習するということは、異常のラベルのデータと似たようなパターンを異常と見なす、ということです。未知のパターンの異常を見逃す可能性があります。
教師なし学習の場合、他のデータと違うデータを探すので、未知のパターンの異常を検知する可能性があります。
今回のまとめ
今回は、「もっとも手軽なAIである異常検知」というお話しをしました。
AI(人工知能)って何だろうと考えたとき、定義は非常に難しいですが、、、 感覚的に思いつくことの1つとして、「何かを教えてくれるコンピュータ上の何か」といのもあるのではないでしょうか?
何かを教えてくれるぐらいですから、そこそこ性格のいいAIです。
そんなもの作れるか! っとなりますが、AIっぽいデータ活用の中で、もっとも手軽に実現できそうなのが異常検知です。
「これ、変ですよ!」と教えてくれるからです。
異常検知って何だろう? と考えたとき、最初に思い浮かんだのが「仲間外れを探す」というものです。
異常検知とは、他のデータとは違うデータを探し、そして教えてくるものでしょう。
異常検知の用途は幅広く、過去・現在・未来で活躍します。
例えば、データ整備中に過去データの外れ値などを探す作業はよくあることです。例えば、目の前にあるデータが正常か異常か検知する使い方もよくあることです。例えば、未来の異常を予測することもよくあります。
実は、異常検知は昔からあるデータサイエンスの技術です。
従来からある統計解析技術などで十分なケースも多いので、難しい最新の機械学習の技術を無理に使い異常検知をいきなりすうのではなく、統計的仮説検定あたりから実施してみるのもいいでしょう。
例えば、ある生産工程で異常検知をする際、外観検査の画像データを使い深層学習(ディープラーニング)で実装しようとしていました。
しかし、画像データではなく数値のセンサーデータを利用した方が、低コストで異常検知を実現でき、さらに予兆検知(外観検査を実施する前に、外観検査で異常であると判定されるであろうと予測)までできたケースも、まぁまぁあります。