2022 ICLR spotlight 논문 ANOMALY TRANSFORMER 리뷰 https://arxiv.org/pdf/2110.02642.pdf
참고사항
Reconsturction-based anomaly detection
- 비지도 학습 anomaly detection 의 하나로 가장 많이 사용되는 방법 중 하나
- 시계열 데이터를 입력받아 latent space(잠재 공간)을 만들어 입력 데이터를 그대로 복원시키는 방법
- 이때 원본 데이터와의 차이(에러)를 기준으로 정상 / 비정상 데이터를 구분
- PCA, AE, VAE 등이 대표적인 알고리즘
- AE, VAE 에서는 뉴럴넷을 사용해 잠재 공간을 형성해주는데 이때 시계열 데이터의 연관성을 학습하기 위해 RNN, LSTM, GRU을 적용한 사례가 많습니다. 해당 모델은 트랜스포머를 사용하여 연관성을 학습한 모델입니다.
Anomaly
- Point
- Global outliers
- 다른 포인트들과 확연히 다른 데이터 포인트. 주로 스파이크 데이터를 말합니다.
- Contextual outliers
- 주어진 context(흐름) 상에서 벗어난 데이터로 주로 이웃한 데이터 포인트에 대해 정의됩니다. 배열 데이터에서 작은 glitches 등이 있습니다.
- Global outliers
- Pattern
- Shapelet outliers
- shapelet은 "분류 성능 향상에 가장 크게 도움이 되는 부분 시계열" 이라고 정의할 수 있습니다.
- shapelet outliers는 기저가 되는 shaplet에서 벗어난 부분 시계열을 말합니다.
- Seasonal outliers
- 시계열 전반적인 seasonality(계절성)에서 벗어난 부분 시계열
- 기저 shaplet 과는 유사하지만 계절성이 다른 데이터
- Trend outliers
- 데이터의 평균을 영구적으로 바꾸는 등 시계열 데이터의 트랜드를 크게 바꿔놓는 부분 시계열
- 정상적인 기저 shaplet, seasonality 를 모두 가지고 있지만 트랜드를 바꾸는 경사가 매우 급한 데이터
- Shapelet outliers
1. Summary
- Key word : Anomaly transformer, association Discrepancy, minimax strategy
- Anomaly Transformer
- 기존의 트랜스포머 모델을 사용하여 시계열 데이터 내에서 포인트들간의 연관성을 학습할 수 있도록 변형
- Association Discrepancy
- 어노말 트랜스포머는 시계열 데이터 내에서 prior-association, series-association 이라는 2가지 연관성을 학습합니다.
- Prior-association(P) : 인접한 데이터들간의 연관성, 시간 차이를 기준으로 가우시안 분포로 모델링하기 때문에 prior이라는 단어를 사용했습니다.
- Series-association(S) : 시계열 전체에서 데이터들간의 연관성, self-attention에 의해 모델링
- 2가지 분포의 차이(distance)를 association discrepancy(이하 AssDis)라고 부르며, 어노말 트랜스포머는 2개의 값을 교차로 최적화시켜 결과적으로 이상/정상 데이터의 AssDis이 구분되도록 하는 것입니다.
- 저자는 이상 데이터는 오직 인접한 데이터와 연관성이 높게 나타나지만, 정상 데이터라면 시계열 전체에 걸쳐 연관성이 나타날 것이라고 주장했습니다. 따라서 이상 데이터라면 P, S 분포가 모두 인접 데이터에 밀집하게 되며 AssDis 가 작아지게 됩니다.
- 어노말 트랜스포머는 시계열 데이터 내에서 prior-association, series-association 이라는 2가지 연관성을 학습합니다.
2. 본문
- 입력 데이터 : (d 차원으로 구성된 N개의 time step)
$$ \mathcal{X} = \{ x_{1}, x_{2}, ... , x_{N} \} \\ x_{t} \in \mathbb{R}^d $$
- 모델 구조
- 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에 유사해지도록 학습이 진행됩니다.
- Maximize Phase(람다 > 0)
- 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 특성을 가우시안 분포로 모델링한다는 점입니다.
- 어노말 트랜스포머는 윈도우 사이즈가 작을 경우 성능이 안좋을 수 있는데, 윈도우 사이즈에 따라 연산량 증가가 많기 때문에 이를 적절히 조절해야 합니다.
'4. 논문리뷰 > Time-series Anomaly detection' 카테고리의 다른 글
Deep One-Class Classification (0) | 2022.10.31 |
---|---|
TAD 벤치마크 데이터셋 (0) | 2022.10.20 |
DAD(Deep Anomaly Detection) 서베이 (0) | 2022.10.20 |
Anomaly Detection 개념 정리 (0) | 2022.10.20 |