異常検知ナイトに参加してきました

本日2018/2/14に「異常検知ナイト」という異常検知に特化したTech勉強会に参加してきました。

dllab.connpass.com

会場は日本マイクロソフト。参加者が多くて早く行かないとメイン会場の席が取れない!ってことだったので早めに退社して会場に向かいました。なんとかメイン会場に入ることができました。 こんなにまでバタバタしてまで聞きたかった話がどんなものか、というのを以下に感想とともに書いていきます。

1. 異常検知入門

講演者はPrefered Networksの比戸さん。

異常検知とは何か?から始まり、異常検知の中の3つの大きな問題に分類されることを話していました。 その3つの問題とは - 外れ値検出問題 - 変化点検出問題 - 異常状態問題 になります。

外れ値検出は静的なデータ、他の2つは時間に対して動的なデータに対する異常検知になります。個人的な感覚だと外れ値検出はそこまで簡単ではない、という認識があるがその中で外れ値検出は比較的簡単な方らしいです(他の二つは…考えたら確かにえぐいです)

その外れ値の中でも教師あり、と教師なしがあるということも実は初めて知りました。目から鱗・・・というかなんで今まで俺気づかなかったんだろう?ということがあって、それは「外れ値検出を機械学習的手法でやるときはモデル学習に使うデータは正常時だけ」ということ。昔異常検出やったときは外れ値のデータもラベルづけして学習器に放り投げていたような…。

もちろん、教師ありの方が自分で答えをつけることができるので確実にこちらがいいだろう、と思っていましたが、教師なしには「自分が自覚していない異常値を検出することができる」という強みもあるというので一概にこれや!って決めることはできん、ちゅうことですね。。

あ、あと閾値の決め方は「誤検出を減らしたいか、見逃しを減らしたいかのどちらに重きに置くか」によって変わるらしい。。

教師なし外れ値検出で検索していたらこんな記事を見つけました。 https://research.preferred.jp/2013/01/outlier/

2. 最新異常検知研究紹介

講演者はPrefered Networksの中郷さん。

ここでは、異常検知、特に外れ値検出でよく使われる手法をいくつか紹介してした。その手法は以下の5つ。

  • Kernal Density Estimation

元々はデータから確率密度関数を求めるための手法。各データの数だけ正規分布を作りそれを重ね合わせて分布推定を行うというもの。ここの外れ値の定義は「データの存在確率が低いところ」が異常値であると考える。

  • Gausision Mixture Model

データを「n個の正規分布モデルの線形和」で近似する。ここでも外れ値の定義は「データの存在確率が低いところ」。

  • Local Outlier Factor

NN法を拡張したロジック。

  • isolation Forest

決定木を拡張したもの。ランダムフォレストっぽい。

  • one class SVN

SVMの改変版。境界面をデータを含む曲線で構成される領域の面積が最小になるように…みたいな感じで決めていくらしい。。。

3. 時系列データのリアルタイム異常検知

講演者はPrefered Networksの小松さん。

ここでは簡単なデータ(sinカーブを2つ重ね合わせ+Gaussianノイズ)を使って異常検知を行なっていました。

クイズ形式でどこが外れているか?みたいな感じで出してくれたのでわかりやすかったのと、簡単っぽく見えてCNNでなくてN近傍法ライクなものでもいいのでは?と思ったのですが、波形が二つあって、それが相関がある変化をされたら結構お手上げ…という風に見せてたのがCNNの重要さを訴えるのによかったかなと思いました。

この辺りの手法…確かに片方だけしか波形見せられなかったら正常か異常か区別つかないよなぁ。。。これでもまだ簡単な部類で実際のデータは何個も波形がありそのなかで異常かどうかを判定するんだからつらいっすよね。。

下手すりゃ、手持ちの波形だけだと状態がうまく掴みきれなくてもうお手上げ…というケースもありえるよなぁ、、、と思ってたりしました。(そのときこそHMMの出番なのかなぁ、、、とも逆に考えてたりしました)

4. 画像異常検知ソリューション gLupe の裏側

講演者はシステム計画研究所の井上さん。

gLupeの紹介とその裏で使われているアルゴリズムの一部の紹介。おっと思ったのは正常画像データ数十枚だけ食わせればしっかり学習して画像による異常検出を的確にやってくれるところ。これ、普通何百万枚という膨大なデータを集めないと絶対に難しいのですが…。

いろいろ聞いているとやっぱりCNNの転移学習とかfine-tuningとか使っているかなぁーとは思う。でもVGG16やRetNetなどの出回っているやつそのままでなくて、もう少し製造業の検査に特化した形での「事前学習済みモデル」を内蔵しているように見えます。

5. 画像データを用いた異常検知(劣化診断・予知保全)の事例・知見紹介

講演者はAlbertの安達さん。

Albertは新卒の頃いた会社でお客様だった企業でした。。外れ値検出についてオフィシャルブログに書いてあるようなことをつらつらと。。。見たことがある内容だったのである程度は理解できましたが、気づき的なものが芽生えなかったように思えます。これも自分が成長したから…もしくは本当は自分が本質を理解しきれていないのでは、、、と取れなくもないですが、一応前者というふうにしておこう。

ちなみにAlbertさんのオフィシャルブログはこちらです。

blog.albert2005.co.jp

LT

いわゆるお悩み相談的な感じのLT。カブクさんとはてなさんがお悩み相談役として登壇されていました。質問に対するPNFのパネラーの皆様の回答は為になります。(これを言ったら元も子もないでのですが、この手の分析に対する質問をする際には背景等含めてしっかり整理して(しかしコンプライアンスは意識して!)話した方が的確な回答を得やすいのかな、としみじみ思っていたりしました。。)

まとめと総括

懇親会ライクなものはないものの総じてためになる勉強会でした。時間がないという理由で勉強会前にピザを食べることができたりしたのは面白かったです。(でも、アルコールでなかったんだよなぁ)

事例紹介やアルゴリズム紹介、メリットデメリットがわかったという意味ではこれまでの機械学習系勉強会の中ではかなり有意義な勉強会だったと思います。もう少し欲を言うとクエスト形式で、この場合はどう言う手法を使えばいいかの意思決定の様子がみれるようなものがあるともっと嬉しかったかなぁ。。。と思いました。

ともあれ、ありがとうございました。またこう言う勉強会あったら参加したいです。

おまけ

この勉強会の様子を映した動画が上っていました。

www.youtube.com