Más contenido relacionado
La actualidad más candente (20)
Similar a FPGAX6_hayashi (20)
FPGAX6_hayashi
- 2. 2
はじめに
慶應義塾大学理工学部 4年
松谷研究室
林 愛美(はやし あみ)
2014年 2月 ハードウェアの研究室に強制的に配属
7月 FPGAと出会う
12月 外れ値検出FPGA NICが完成!
2015年 1月29日 リコンフで研究会デビュー
1月30日 卒論提出
1月31日 卒論発表
2月1日 fpgaxに呼んでもらった!
祝!学部卒業決定!(多分)
- 3. 3
はじめに
慶應義塾大学理工学部 4年
松谷研究室
林 愛美(はやし あみ)
2014年 2月 ハードウェアの研究室に強制的に配属
7月 FPGAと出会う
12月 外れ値検出FPGA NICが完成!
2015年 1月29日 リコンフで研究会デビュー
1月30日 卒論提出
1月31日 卒論発表
2月1日 fpgaxに呼んでもらった!
昨日発表した卒論の研究
+
今後どうやって研究を広げようかな
祝!学部卒業決定!(多分)
- 5. 今回の研究目的
Storage
5
NIC Host CPU
気温
20.0, 20.0, 20.0,
20.0, 20.0, 20.1,
20.0, 20.0, 20.0,
20.0, 20.0, …
20.1
20.020.0
20.0
19.9
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
センサデータは
ストレージに全部置くと
非効率になる場合がある
- 7. 今回の研究目的
7
StorageNIC Host CPU
Data Mining
Storage
気温
20.1
20.020.0
20.0
19.9
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
NIC内で選択処理
をする!
センサデータは
ストレージに全部置くと
非効率になる場合がある
アプリケーションレベルで
選択処理をすると負荷が高くなる FPGA NIC の利用
- 8. NetFPGA-10G
• Xilinx Virtex-5 XC5VTX240TFFG1759 -2
- HDL(Verilogなど)でNICが実装されている
- GitHubでフリーのライブラリもダウンロード可能
- 10G MACはXilinx のIPコア(商用)
• 4 SFP+ interfaces
• PCI Express Gen 2 x8
8
- 9. 9
FPGA NIC向けデータマイニング
StorageNIC Host CPU
Data Mining
Storage
気温
20.1
20.020.0
20.0
19.9
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
20.0
通常の「FPGAによるデータマイニングの高速化」と何が違うのか?
FPGA NIC内で不必要なデータを捨てることで
ホストのネットワークプロトコルスタック上の処理による負担を
軽減することができる
ホストは入力データセットの全体を知ることができない
- 11. 選択的取得のための手法
• 外れ値検出
- マハラノビス距離の利用
- LOF法
• 変化点検出
• 異常行動検出
- ナイーブベイズ
今回のターゲット
11
• k-means
• Random forest
• Apriori
• FP-Tree
アイテムセットマイニング
クラスタリング
異常検出
頻出するアイテムセット
特定のクラスタに属する
データ
異常なデータ
- 12. 0 2 4 6 8 10 12
0
2
4
6
8
10
12
マハラノビス距離 大
マハラノビス距離 小
分散 小
分散 大
マハラノビス距離を用いた外れ値検出
特徴ごとの分散の相関を考慮した距離
New Sample 1
New Sample 2
Center of
Gravity
マハラノビス距離が
大きいほど
外れ値の可能性が
高い!
12
- 13. 𝝁 =
1
𝑚
𝑖=1
𝑚
𝒙𝑖
𝒙 − 𝝁 𝑇Σ−1 𝒙 − 𝝁 > 𝜃
マハラノビス距離を用いた外れ値検出
Σ =
1
𝑚
𝑖=1
𝑚
𝒙𝑖 − 𝝁 𝒙𝑖 − 𝝁 𝑇
𝒙𝑖 ∶ サンプル 𝝁 ∶ 平均ベクトル
マハラノビス距離
𝑚 : データセット内のサンプル数
• 共分散行列
- 各特徴の分散を相関づけるための行列
- ホストから定期的に与えられる
13
- 16. Smp 1
Smp 2 Smp 1
Smp 3 Smp 2 Smp 1
Smp 3 Smp 2 Smp 1
Smp 3 Smp 2 Smp 1
Smp 3 Smp 2 Smp 1
Smp 3 Smp 2 Smp 1
Smp 3 Smp 2 Smp 1
Smp 3 Smp 2 Smp 1
Smp 3 Smp 2
Smp 3
Packet
Header
check
FIFO
Op
Multiply
Cal
Tmp
Add
Total
Cal
Multiply
Cal
Total
Add
Outlier
check
Packet
Filtering
clock
cycle
2
FPGA NIC 内のサンプルの流れ
1サンプルあたり2サイクルで選択的取得が可能
NetFPGA-10Gは160MHzで動作しているので…
(理論上)秒間8000万サンプルを処理可能
16
- 18. 64 128 192 256 320 384 448 512
0
2000000
4000000
6000000
8000000
10000000
12000000
14000000
16000000
パケット長(Byte)
送信可能パケット数(packet/sec)
外れ値フィルタリングNICによるサンプル処理数
NetFPGA-10Gからホストへの最大サンプル転送数
95.8%
5.6%
評価:最大スループット
外れ値フィルタリングNICの実機評価による最大スループット
10GbEにおけるパケット受信数の理想値
FPGA NIC - ホスト間の帯域に制限されない
18
- 19. 評価:面積
19
16 32 64 128 256 512 1024 2048
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
2
3
4
5
2 3 4 5
0
20
40
60
80
100
120
140
24
48
80
120
Register Slice
CLB使用個数
DSP48Eスライス使用個数
特徴数
FIFOバッファの深さ 特徴数
DSP
149760
96
NetFPGA-10G(Virtex-5 XC5VTX240TFFG1759 -2)の資源
{特徴数×(特徴数 + 1)} × 4 のDSPが必要
BRAMを利用しなくても 512 ~ 1024 の深さの32bit幅FIFOを用意することは可能
- 21. 評価環境(データセットの生成)
評価:精度
• 特徴数 2 (相関 0.8)
• 各特徴はガウス分布に沿って生成
𝑓 x =
1
2𝜋𝜎2
exp −
𝑥 − 𝜇 2
2𝜎2
𝜇 = 30
𝜎 = 3
𝜇 = 300
𝜎 = 10
通常値
(外れ値以外)
外れ値
• 1000万サンプルをソフトウェアによるマハラノビス距離を用いた
外れ値検出により分類
• 外れ値の割合は1%
• 上式 x や外れ値の分布はrand関数により生成
21
- 22. 16 32 64 128 256 512 1024 2048
0
20
40
60
80
100
Int, 0
Int, 30000
Double, 0
Double, 30000
16 32 64 128 256 512 1024 2048
0
20
40
60
80
100
Int, 0
Int, 30000
Double, 0
Double, 30000
評価:精度
FIFOバッファの深さ(マハラノビス距離を計算するために
使うサンプルデータの数)による精度の変化
外れ値は通常値の10倍、データセットは純粋なガウス分布に基づく
外れ値検出率100% 外れ値検出率99%
誤認率(%)
FIFOバッファの深さ
FIFOバッファの深さを十分に確保できれば、精度に差は出ない
22
- 23. 0 1000 10000 20000 30000 40000 50000 100000
0
0.2
0.4
0.6
0.8
1
1.2
評価:精度
共分散行列の計算頻度による精度の変化
誤認率(%)
整数型アルゴリズムの精度の変化
外れ値検出率100% 浮動小数点型の時は計算頻度に
かかわらず誤認率0%
共分散行列の計算頻度
(サンプルn個ごとに計算)
外れ値は通常値の10倍、データセットは純粋なガウス分布に基づく
整数型でも誤認率は最大でも
1%強に留まり、
外れ値検出率を99.999%まで
下げると誤認率は0%になる
理想的なデータセットを扱う場合、
共分散行列の計算頻度はほぼ
精度に影響しない
23
- 27. 選択的取得のための手法
• 外れ値検出
- マハラノビス距離の利用
- LOF法
• 変化点検出
• 異常行動検出
- ナイーブベイズ
27
• k-means
• Random forest
• Apriori
• FP-Tree
アイテムセットマイニング
クラスタリング
異常検出
頻出するアイテムセット
特定のクラスタに属する
データ
異常なデータ
主成分分析(次元削減)
- 28. 28
LOF法
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
外れ値
特徴 1
特徴2
• 密度ベースの外れ値検出
• ノンパラメリック
例えば…
FPGA上に大きなデータセットを保持する
ためのメモリを確保したくない(忘却が早い)
↓
比較的小さな集合は集合として見れない
(外れ値と判定されてしまう)
LOF法とは別にフィルターを用意して、
外れ値としてホストに送られてくるパケット
が高頻度だった場合、
ホストがフィルターを更新して小集合を
フィルター
- 30. 30
k-means
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
大
小
大
小
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
クラスタ更新前 クラスタ更新後
クラスタの重心
A
B
A
B
𝐶1
𝐶3𝐶2
𝐶1′
𝐶3′𝐶2′
特徴 1
特徴2
• クラスタリングアルゴリズム
• k-means++, k-means # など
• オンライン処理なので、
一度クラスタに配属されたら
後からの変更なしとする
(重みで更新する)
例えば…
古いサンプルは忘却したいので、
サンプルの順序を覚えておく必要
↓
FPGA内で全部データセットを保持し
たくない
- 32. 32
主成分分析
0 1 2 3 4 5 6 7 8 9 10
0
1
2
3
4
5
6
7
8
9
10
特徴空間の再構成をするための手段
次元削減 • 画像認識、マーケティングなど
幅広く利用される
• データマイニングの前処理にも
低頻度でも行えば精度向上するかも?
マハラノビス距離を用いた外れ値検出
も含めて、データマイニングアルゴリズム
の前処理として載せてみたい
やり方はまだ考えてません…
でも卒論の手法でできるかな?