Help us understand the problem. What is going on with this article?

ネットワークの不正検知モデル Kitsune についてまとめてみた。

概要

ネットワークの不正検知モデルSoTA(多分今も?)のKitusneについて講義を受ける機会があったので、いいタイミングだと思い少しまとめてみることにしました。

Kitsune とは

Kitsune は、原論文 Kitsune: An Ensemble of Autoencoders for Online
Network Intrusion Detectionで2018年に発表された、ネットワーク侵入検知システム(Network Intrusion Detection System: NIDS)で(たぶん2019年12月現在も)SoTAのスコアを叩き出している異常検知の機械学習モデルになります。ネットワーク侵入検知とは、通常のネットワークトラフィックと、外部から侵入などを受けた異常トラフィックを区別し、検知することです。
コードもOSSとしてここにあります。

論文のアブストラクトやイントロのところにも書いてある通り、既存のNNを用いた異常検知モデルが非常に重く、ネットワーク検知のニーズ(ルーターとかにモデルをデプロイしたいため、軽いモデルが必要)に合わなかったり、教師あり学習のモデルが使われていることが多く、ネットワークエンジニアがラベリングをする手間だったりかかる費用が膨大になる、といったところを解決するのが、Kitsuneであるということです。

基本的なビルディングブロック

Screen Shot 2019-12-26 at 22.29.02.png
入力ベクトルに対してAuto Encoder (AE)を用いて、出てきたものと入力の誤差をMSEでとって、それの誤差と閾値によって異常を検知する、といういたってスタンダードなアイディアにはなっていますが、先ほど出てきたネットワーク検知のニーズにより合った工夫がいくつもなされているので紹介します。

入力の工夫

入力に入るべきものはネットワークのトラフィックデータです。ネットワーク検知に使われるマシンのスペックは、マシンの導入量が膨大であるなどの理由から安価な物で補えるだけのモデルの複雑さであればより好ましいです。したがって、メモリなども限られているので入ってくる全てのデータをログとして記憶するのではなく、データの統計量をトラッキングします。各統計量の詳しいところは原論文をお読みください。
Screen Shot 2019-12-26 at 22.47.25.png

また、時間軸には
Screen Shot 2019-12-26 at 22.35.35.png
のように表現される簡単な時間で衰退するようなものを掛け合わせて、ある時間より古いものは入力データから完全に落としています。統計量は各時間ごとに更新され、古いものは消えるのでメモリにも優しいです。

AEの工夫

入力ベクトルを大きなAEに入れ込むのではなく、入力ベクトルを類似度計算し、その類似度が高いものから順に樹形図でクラスタリングします。
Screen Shot 2019-12-26 at 22.41.45.png
そのクラスタリングされたグループをそれぞれ別のAEに入れ、全体ではなくそのグループたちをAEで自己生成させます。こうする理由はパラメータ削減です。このように1つの大きなAEではなく複数の小さなAEを用いることから、AEアンサンブルというような題名がついているわけです。

アウトプット層の工夫

先述のいくつかのAEで作られた類似度の高いグループの自己生成されたものは、そのあとに大きなAEに入力され、その結果が異常スコアに使われることになっています。異常スコアは閾値によって決定され、指標としては単純に元の入力とのMSEが使われています。
Screen Shot 2019-12-26 at 22.46.03.png

以上のような工夫を用いて、軽量でも以下のような素晴らしい結果を出しており、注目されているようです。
Screen Shot 2019-12-26 at 22.48.58.png

終わりに

めちゃくちゃ真新しいことが組まれているわけではないですが、マシンスペックのニーズに応じた制約の中で最大のアキュラシーを出すような工夫が詰まっている素晴らしいモデルだと感じました。興味のある人は原論文およびOSSになっているコードをぜひ見てみてください。今回はこの辺で。

おわり。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした