cloretsblackのテクニカルノート

言葉の意味はよくわからんがとにかくすごい自信だ

NPStudy#8で発表しました(追記)

前のエントリで発表について書いていたのですが、 思ったよりも反応を頂いておりまして、 その中で鋭いご指摘があったので追記したいと思います。

今回発表した機能には、「フィルタ」と呼んでいるモジュールがありまして、これは私が10年以上に及ぶ国内外でのトラブルシューティング経験と採り溜めた数百ケースのパケットキャプチャを分析した結果を元に、マニュアルで実装されているものです。

機械学習というと、このようなフィルタをコンピュータが賢く自動生成するようなイメージがあり、結局手で書いてるのか、という意味で少し期待はずれだったのではないかと思います。スミマセン。。(ご指摘有難うございます!)

ただ、このフィルタを自動生成するのはパケットというデータの構造と性質上、技術的に難しい気がしています。(もし「出来るよ」という方がいれば是非教えていただきたい部分です。)

結局、どこに機械学習的な要素を入れたのかというと、フィルタを通して検出された値が、警告に値するか否かの判断基準の部分です。 外れ値としてのボーダーラインを、設置環境における過去データから導かれる平均値との距離で判断しているという考え方になります。計算コストや実装難易度、説明のしやすさなども考慮して採用しました。

ネットワーク障害対応の常として、問題の検出だけでなく、人間によるパケットキャプチャの検証作業を平行して行うため、機械学習アルゴリズムはその判断過程を検証できるものを選択する必要があると思っています。 そのため、決定木のようなものを検討中ですが、まだまとまっておらず未実装です。。

この機能についてはまだまだ発展させていけると思っていますので、手元にある豊富な実データを元に、様々に分析してみたいと思っています。