딥러닝에서 데이터 전처리는 필수적인 단계이다. 아웃라이어, 측정오류 등 사전에 데이터를 가공하지 않으면 성능에 큰 문제가 발생할 수 있기 때문이다. 그 중에서 데이터의 분포, modality 로 인해 딥러닝의 성능이 좌우되는 경우가 많다. uni-modal 한 환경이라면 큰 문제가 되지 않지만, real data 들은 multi-modal 한 경우가 대부분이기 때문에 이를 위한 전처리가 필수다. 특히 시계열 데이터는 데이터의 분포(평균, 분산)의 변동성이 매우 큰 데이터이기 때문에 정규화 작업이 필수적이다. 대표적인 방법이 minmax, z-score 정규화인데 두 기법 모두 장단점을 가지고 있다. 일반적으로 z-score 정규화를 사용하게 되는데, 특히 z-score 정규화는 multi-modal 한 데이터에 취약하다는 단점이 있다. 이를 극복하기 위해 슬라이딩 윈도우를 도입해 윈도우 단위로 z-score 정규화를 적용하는 방법이 제안되었지만 마찬가지로 한계점(변동성의 차별성을 반영하지 못함) 이 존재한다. 해당 논문은 윈도우 단위의 정규화를 기본으로 하며 딥러닝 모델의 학습 성능을 높이는 방향으로 정규화에 사용할 통계(평균, 분산)을 end-to-end로 학습하겠다는 내용이다.
Algorithm
Deep Adaptive Input Normalization (DAIN) 은 3가지 과정을 거쳐 데이터 정규화를 진행한다.
Adaptive Shifting 해당 단계에서는 입력 데이터의 평균을 계산한다고 생각하면 된다. 입력 데이터의 실제 평균ai을 계산한 후에 해당 값을 MLP 에 입력하여 학습된 평균αi을 계산한다.
Adaptive Scaling 첫 번째 단계에서 평균을 구했으니까 여기서는 표준편차를 계산한다. 이전 단계에서 구한 학습된 평균α를 사용해서 일반적으로 표준편차를 계산하는 공식대로 편차b를 구한다. 그리고 마찬가지로 MLP 에 넣어서 학습된 편차β를 계산한다.
Adaptive gating 마지막 단계는 일종의 압축 단계라고 생각할 수 있다. 위의 2단계는 평균, 표준편차를 학습할 뿐 사실상 z-score 정규화와 틀은 다를 것이 없다. DAIN 은 마지막에 학습에 도움이 되는 feature 까지 분류할 수 있는 gating을 추가했다. 과정은 크게 어렵지 않은데, 위의 단계를 지나 정규화된 데이터에서 다시 평균c를 계산한 후에 MLP 에 넣어주어γ를 계산한다. 계산한 값을 정규화된 입력 데이터와 entrywise 하게 곱해주어 최종적으로 각 feature 별로 중요도가 곱해진 output을 얻게 된다.
Experiment
실험 결과는 DAIN 을 사용했을때 일반적으로 성능이 향상되었다고 한다. 아직 실험 결과는 자세히 보지 못했다.
Anomaly Attention, Feed Forward 2개의 블록이 하나의 인코더를 구성하며 L 개의 인코더를 쌓아올리는 구조
2.1 Anomaly Attention
입력 데이터 : x (time series)
출력 데이터 : z (hidden state)
입력 데이터를 받아서 prior, series association, hidden state를 계산하는 블록
Query, Key, Value는 모두 같은 input time series로부터 생성(self-attention) 하며 추가로 prior-association에서 사용할 표준편차(sigma)도 학습으로 생성
Prior-Association은 가우시안 분포로 계산하며 row sum 나눠주는 rescale을 수행합니다.
실제로 학습된 모델에서의 sigma
Anomaly point 에서는 sigma가 급격히 감소하는데 이는 비정상 데이터가 인접한 데이터와 유사성이 강하게 나타나기 때문에 분산이 매우 작게 학습되는 것으로 해석할 수 있습니다.
추가적으로 가우시안 분포가 아닌 power-law 분포로 모델링했을 경우도 대체로 좋은 성능을 보여주었지만 가우시안 분포가 최적화가 더 쉽기 때문에 더 좋은 성능을 보였습니다.
2.2 Feed Forward
입력 데이터 : z (hidden state)
출력 데이터 : x (reconstruction time series)
anomaly attention 블록의 출력(hidden state)를 입력받아 입력 데이터(x)를 재현하는 블록
2.3 Association Discrepancy
KL-divergence 를 사용하여 prior, series association 분포의 차이를 계산했으며 위의 식은 Symmetrized Kullback–Leibler Divergence 이라고 불리는 distance 측정 방법입니다.
그 외에도 4가지 distance(Jensen-Shannon Divergence, Wasserstein, Cross-Entropy, L2)를 사용하여 AssDis를 계산했는데 위의 수식이 가장 좋은 성능을 보여주었습니다.
한 번의 layer(L)가 끝나면 prior, series 는 (batch, header, N, N)의 분포를 가진 확률값을 가집니다.
이를 사용해 우선 time step 기준 (batch, header, N) 크기의 KL-divergence를 계산한 후에 header 기준 평균(batch, N)을 계산합니다. 그리고 마지막으로 batch * N 개의 평균을 계산합니다.
이러한 값이 총 L 개가 KL-divergence 값이 쌓이게 되며 이 값의 평균이 최종 AssDis 값이 됩니다.
단일 layer만을 사용하는 것보다 여러 layer의 평균을 사용할 경우 더 좋은 성능을 얻을 수 있었습니다.
2.4 Minimax Association Learning
모델에서 사용된 최종 손실 함수 reconstruction 차이와 AssDis를 결합하여 사용했습니다.
람다의 부호는 AssDis의 크기를 조절해주는 역할을 합니다.
Maximize Phase(람다 > 0)
Maximize 단계에서는 AssDis 값이 커지도록 최적화가 진행됩니다.
이때 prior-association은 고정하며 series-association 만 조절하여 특정 time point가 인접하지 않은 time point들과의 연관성을 높이도록 학습합니다.
Minimize Phase(람다 < 0)
Minimize 단계에서는 AssDis 값이 작아지도록 학습합니다.
반대로 series-association은 고정하며 prior-association이 series-association에 유사해지도록 학습이 진행됩니다.
prior-ass 이 series-ass 에 근접하도록 학습하며 series-ass는 이와 반대로 학습이 진행되기 때문에 학습이 진행될수록 인접하지 않은 time point들과의 연관성에도 주목하도록 모델이 학습됩니다. 이때 reconstruction 에러와 함께 학습이 진행되기 때문에 비정상 데이터는 위의 내용을 학습하는 것이 정상 데이터에 비해 어렵다는 것이 anomaly transformer의 주요 내용입니다.
2.5 Anomaly Score
Anomaly score는 위에서 계산한 AssDis와 복원한 입력(x)를 사용하여 point-wise 하게 계산합니다.
비정상 데이터라면 AssDis가 작게 나타나기 때문에 anomaly score은 크게 나타납니다.
anomaly score가 threshold 보다 크다면 비정상 데이터로 판별됩니다. 성능 평가 단계에서는 비정상 구간 내에서 한 포인트라도 비정상이 감지된다면 해당 비정상 구간은 모두 탐지가 되었다고 간주합니다.
threshold는 데이터 분포를 조사한 결과 anomaly score를 계산한 후 데이터 개수를 기준으로 비율로 계산합니다. (SMD는 0.5 %)
실제코드와 논문과의 차이점 : Test 단계에서 AssDis를 계산할때 layer의 평균이 아닌 layer단위로 KL-divergence에 temperature(오픈소스에서는 50) 곱한 후 sum을 해주었는데 해당 내용은 논문에서 자세한 설명을 찾지 못했습니다. 값의 단위가 커졌을 뿐 큰 틀은 변하지 않아서 크게 영향을 줄 것 같지는 않고 softmax 때문에 추가된 것으로 생각됩니다.
$$ AssDis(\mathcal{P, S;X}) = temperature \times \sum_{l=1}^{L}{(KL(P^{l}{i,:} ||S^{l}{i,:}) + KL(S^{l}{i,:}|P^{l}{i,:}))}_{i=1,...,N} \\ temperature = 50 $$
그 외에도 3가지 다른 anomaly score 측정 방법을 적용한 결과 Recon, AssDis 을 곱해서 사용한 위의 경우가 가장 좋은 성능을 보여주었습니다.
3. Experiments
데이터셋
SMD, MSL, SMPA, SWaT, NeurIPS-TS
주요 하이퍼 파라미터
슬라이딩 윈도우 = 100(SMD는 50)
r = 0.1% for SWaT, 0.5% for SMD and 1% for other datasets
model dimension = 512
Encoder Layer = 3
head = 8
람다 = 3
learning rate = 0.0001
10 epochs, 32 batch size
3.1 5 real dataset 결과
3.2 Ablation study
총 3가지 block에 대해 ablation study를 진행
Anomaly Criterion
Recon
AssDis
Assoc
Prior-Association
Learnable
Fix
Optimization Stragtegy
Minimax
Max
AssDis 를 사용하는 것이 더 좋은 성능을 보여주었고, recon까지 결합하는 것이 최상의 효과를 보여주었습니다.
Prior-association의 분산을 학습시키는 것이 더 좋은 성능을 보여주었으며, series-association만을 학습(maximize)보다는 prior 도 같이 학습하는 것이 최적의 성능을 보여주었습니다.
3.3 Recon vs. Assoc
NeurIPS-TS에 있는 다양한 패턴의 시계열 데이터를 사용해 왜 어노말 트랜스포머가 잘 작동하는지 보다 직관적으로 해석했습니다.
아래의 그림에 의하면 많은 anomaly detection 에서 사용하는 reconstruction criterion과 비교해 association-based criterion의 경우 정상/비정상 데이터의 anomaly score가 보다 명확하게 구분되고 있습니다.
3.4 Prior-association
어노말 트랜스포머는 minimax 최적화 전략을 선택했는데 이 과정에서 prior-association은 series-association과 유사해지도록 학습됩니다. 따라서 분산을 학습시키는 행동이 prior-assocation가 인접 데이터에 얼마나 주목하는 정도를 조절할 수 있습니다.
3.5 Minimax strategy
Maximize 단계에서 series-association은 prior-association에 멀어지도록 학습하기 때문에 결과적으로 인접하지 않은 데이터에 더욱 주목하도록 학습됩니다.
이때, 더 좋은 성능을 얻으려면 비정상 데이터는 정상 데이터보다 인접 데이터에 대한 주목도가 더 높아야 합니다. 하지만 단순히 maximize 만을 사용한다면 이러한 효과를 보기 어려우며 minimax 전략을 사용해야만 series-association에 강력한 제약이 적용됩니다.
아래의 표는 recon, max, assoc 전략을 사용했을때 정상/비정상 데이터 간의 구분 정도(인접 데이터와의 association weight)를 나타내며 abnormal/normal 값이 클수록 두 데이터가 명확하게 구분됨을 의미합니다.
3.6 Threshold Selection
논문에서는 Gap Statistic method 라는 데이터 내의 cluster의 개수를 결정하는 방법을 사용하여 threshold를 선정했습니다.
결과적으로 각 데이터셋의 anomaly score는 3개의 cluster로 나눠지며 이를 기준으로 threshold를 설정했습니다.
threshold의 값을 직접적으로 설정(SMD: 0.1)할 수도 있고, 비율로 설정(SMD: 0.5%)하는 방법이 존재하는데 후자를 선택하는 것이 더 실용적이라고 합니다.
결론
어노말 트랜스포머의 핵심 아이디어는 3가지로 정리할 수 있습니다
Reconstruction + Association Discrepancy criterion
Learnable Prior-Association
Minimax Strategy
위의 3가지 아이디어를 모두 결합했을때 최적의 성능을 얻을 수 있었으며, 특히 assocation-discrepancy에 사용되었던 아이디어는 시계열 데이터의 local/global 특성을 대조적으로 학습시키겠다는 것으로 이는 최근 발표된 다른 AD 모델에서도 적용된 아이디어입니다. 어노말 트랜스포머는 local 특성을 가우시안 분포로 모델링한다는 점입니다.
어노말 트랜스포머는 윈도우 사이즈가 작을 경우 성능이 안좋을 수 있는데, 윈도우 사이즈에 따라 연산량 증가가 많기 때문에 이를 적절히 조절해야 합니다.