IT/인공지능

[논문] Improving Performance of Autoencoder-Based Network Anomaly Detection on NSL-KDD Dataset

kykyky 2024. 5. 31. 13:25

연구 배경

Internet에 연결된 device들이 많아짐에 따라 (IoT device) 보안 문제가 점차 대두되고 있어, 네트워크 보안을 위한 안정적 해결책이 요구된다.

요즈음에는 여기에 AI의 활용이 제안되고 있으며, AutoEncoder 모델을 활용한 deep learning method는 거대한 네트워크 트래픽 샘플 상에서 anomaly를 탐지하는 task에 많이 사용되고 있다.

AutoEncoder는 unsupervised feed-forward neural network이며, input의 reconstruction을 주요 목적으로 한다. 그리고 그 구조는 input - hidden - outptut layer로 대칭적이다. 또한 가장 적은 neuron을 가진 hidden layer를 latent space 혹은 bottleneck layer라 칭하며, 이것이 즉 input의 압축된 representation이라 할 수 있다.

 

AutoEncoder의 원리에 대한 나의 이해

강아지 외의 동물을 anomaly로 detection하기 위한 AutoEncoder 모델이 있다고 하자.
이 모델은 training 과정에서 수많은 강아지 이미지에 대해, 각 강아지 이미지를 압축/복원한 결과 이미지가 원본과 최대한 가깝도록 최적화되므로, 강아지 이미지의 압축과 복원을 최소한의 error로 잘 수행하게 될 것이다.
따라서, 당연히 어떤 강아지 이미지 input을 압축/복원해 보면 그 error가 작아 threshold 아래일 것이다.
그러니, 만약 input이 강아지가 아니라 고양이라면,
모델 입장에서는 이것은 훈련받은 적 없는 input이므로 결과 error가 커서 threshold를 쉽게 넘어갈 것이고,
예상대로 고양이 이미지는 anomaly로 분류될 것이다.

 

과정

자세한 단계를 살펴보기 전 우선 전체 과정은 아래와 같다.

 

1. 데이터 전처리

논문에서는 아래와 같이 데이터 전처리를 진행하였다.

 

one-hot encoding

categorical feature를 n차원의 binary code로 전환한다.

여기서 n = 해당 feature의 attribute의 개수 

 

outlier analysis

95th percentile 밖의 sample은 outlier로 취급했다.

이 방식은 전체 샘플의 분포에 대한 전제 (데이터가 정규분포를 따를 것이라는)가 필요 없어서,

매우 unbalance한 논문의 데이터셋에도 적용될 수 있다.

다만 outlier의 배제는 training dataset에서만 수행한다.

 

data normalization

MinMax scaling을 통해 최소값 = 0, 최대값 = 1로 매핑함으로써, feature마다 각기 달리 가지는 scale의 영향을 없앤다.

 

2. Train & Test

논문에서 진행한 Train & Test 알고리즘과 모델 layer 구조는 아래와 같다.

각 layer의 neuron 개수는 122-32-5-32-122 이다.

 

training 단계

- 트래픽 데이터의 original feature가 추출된다.

- enoding 과정을 통해 reduce된다.

- latent space에 represent된다.

- decoding 과정을 통해 reconstruct된다. 

- mini-batch마다 input과 output 간 reconstruction error(loss)가 계산되고, loss를 줄이는 방향으로 parameter를 업데이트하기 위해 SGD를 수행한다.

- 전체 train dataset에 대해 input과 output 간 reconstruction error(loss)가 계산되며, 이 중 최대값이 anomaly detection을 위한 threshold로서 설정된다.

이때의 loss function은 아래와 같다.

 

test 단계

- test input이 reconstruct된 뒤, 이에 대한 reconstruction error가 계산된다.

- 위 값이 threshold보다 큰 샘플은 anomaly로 취급된다.