見出し画像

TWLogAIAN:ログから機械学習によって異常検知する方法を調査中

雪の降る田舎から桜の咲く自宅に戻ったはずが、こっちも雪でした。
今朝は5時から開発開始です。
ログから機械学習によって異常検知する方法を移動中や田舎でも少し調べていましたが、ソースコードを読むには、大きな画面とまとまった時間が必要でした。なので昨日から本格的な調査をしています。
参考にしているのは

です。ソースコードは

で公開されているので、まじめに読んでみました。Javaのソースコードをまじめに読むのは10年振りかもしれません。他の人の書いたソースコードを読むといろいろ発見があります。本題から外れたことでも気になる技術が沢山でてきます。横道にそれていろいろ調べてしまいました。

高速化のための並列処理

処理を高速化するためにJavaのparallelStreamというものを多用しています。

	p( "Constructing vector list ..." );
	lines.parallelStream().map( x -> getVector( x ) ).toArray();

のような部分です。parallelStreamは

のようなものです。これと同じようなことがGO言語でもできないかと思って調べてみました。ありました。

世界中を探せば、同じようなことを考えている人がいるものです。試してみたいと思いますが、今は本題ではないので、楽しみはとっておきます。

異常検知のためのアルゴリズム

復刻版のTWSNMPでは、Tensorflow.jsでAutoEncoderを作りました。
TWSNMP FCはGO言語でLocal Outlier Factor

を使いました。
今回参考にしているサイトでは、Isolation Forestを使っています。
JavaScriptでの実装

がありました。GO言語の実装

もありました。

異常検知のTensorFlow.jsの実装を調べていると

のような面白いもの見つけました。これも試してみたいです。

本題からそれたまま、今朝は時間切れです。世界は面白いソフトで溢れています。

明日に続く


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。