4기(20200711)/데이콘

산업제어시스템 보안위협 탐지 AI 경진대회 HAI 2.0 baseline model

KAU-Deeperent 2020. 8. 28. 18:09

작성자: 김종헌

79개의 column이 존재

HAI 1.0에서 주어진 data sheet를 보면 압력, 온도 등의 값이었음

-> 단위나 범위가 너무 다양하므로 정규화를 진행한다.

 

그 방법은 최댓값을 1, 최솟값을 0이 되도록 (data-최솟값)/(최댓값-최솟값)을 이용

단, 값이 일정할 경우 전체를 다 0으로 처리한다.

 

정규화 이후에 exponential weighted function을 통과시킨다. 그 이유는 센서에서 발생하는 noise를 smoothing 시켜주기 위함이다.

 

 

 

사전 공개된 HAI 1.0에는 data sheet를 통해 각 데이터들 간의 관계나 단위 등을 알 수 있었다. 하지만 본대회용 HAI 2.0에서의 column에 대한 label이 따로 존재하지 않아서 unsupervised learning으로 진행해야한다.

 

모델이 예측하는 값과 실제로 들어온 값의 차이가 크면 이상으로 간주하는 방식으로 진행할 것이다. (Stacked RNN 이용)

 

Stacked RNN

 

 

Optimizer는 AdamW, Loss function은 MSE를 이용한다. epoch loss가 가장 좋았을 때의 parameter를 저장한다.

 

Test 데이터셋도 정상 데이터셋의 최솟값, 최댓값을 이용해 정규화한다. 공격상황에서는 정상 데이터의 최댓값 최솟값을 벗어나는 데이터들이 나타난다.

데이터를 순차적으로 보며 모델의 예측값과 실제값의 차를 구해 Inference함수를 이용하여 기록하고 같은 시각전체 필드가 산출하는 차의 평균을 계산한다. 그 결과 오차의 크기를 이용한 공격탐지가 아래 그림과 같이 가능해진다.

 

파란색 선 = (평균)오차의 크기

주황색 선 = 공격 위치

빨간색 선을 넘어가면 공격으로 간주