- TadGAN은 2020년 MIT에서 발표한 시계열 이상 감지 모델이다.
- TadGAN은 GANs(Genertive Adversarial Networks) 와 LSTM 순환 신경망을 활용한 비지도학습(unsupervised learning) 방법으로, 복잡한 시간 상관 관계를 포착하고 효과적인 데이터 재구성을 통해 false positives을 최소화한다.
- 오픈 소스로 공개 -> https://github.com/sintel-dev/Orion
INTRODUCTION
- 시계열 이상은 시스템이 비정상적으로 동작하는 시간 또는 기간으로 정의
- 크게 point anomaly, collective anomaly 2가지로 구분
- 시계열 이상 탐지는 시계열 내에서 다양한 길이의 이상(anomalous) 하위 집합을 분리하는 것을 목표
(-) 딥러닝 기반 접근 방식의 근본적 과제 중 하나는 데이터를 효과적으로 fitting하는 능력이 이상 데이터를 fitting할 가능성을 내포한다는 것
(-) GAN은 생성자가 데이터의 숨겨진 분포를 완전히 포착하는 데 효과적이지 않을 수 있어 거짓 경보를 유발할 수 있음
=> 두 가지 방법을 혼합한 새로운 GAN 아키텍처 TadGAN
=> 시계열을 재구성하고 컨텍스트적으로 오류를 평가하여 이상 식별
=> Generator와 Critic의 출력을 기반으로 이상 점수를 계산하는 다양한 방법을 탐구
UNSUPERVISED TIME SERIES ANOMALY DETECTION
- 시계열 X = (x1, x2, · · · , xT ) 가 주어지고, xi ∈R^M ×1은 시간 단계 i에서의 M 종류의 측정을 나타냄
- 비지도 방식의 시계열 이상 감지의 목표는 이상 시간 세그먼트 집합 Aseq = {a1seq, a2seq, · · · , akseq}를 찾는 것
- ai seq는 시간에 따른 연속적인 데이터 포인트 시퀀스로, 신호의 예상된 시간적 행동과 일치하지 않는 이상하거나 비정상적인 행동을 나타냄
ADVERSARIAL LEARNING FOR TIME SERIIES RECONSTRUCTION
- reconstruction 기반 이상 탐지 기법의 핵심은 데이터 포인트(여기서는 시계열 세그먼트)를 인코딩하고 그것을 디코딩(재구성)할 수 있는 모델을 학습하는 것
- 효과적인 모델은 이상(anomalies)을 정상적인 경우처럼 잘 재구성할 수 없어야 함 <- anomalies는 인코딩 과정에서 정보를 잃기 때문
- 두 도메인 X와 Z 사이에 E : X → Z 및 G : Z → X라는 두 매핑 함수를 학습
- X는 입력 데이터 도메인으로, 주어진 학습 샘플
- Z는 latent 도메인을 나타내며, white noise를 나타내기 위해 표준 다변량 정규분포를 따르는 무작위 벡터 z ∼ PZ = N(0, 1) 를 샘플링
- xi는 i에서 시작하는 길이 t의 time sequence
- 매핑 함수를 사용해 입력 시계열을 재구성: xi → E(xi) → G(E(xi)) ≈ ˆxi.
- 두 매핑 함수 E, G를 얻기 위해 적대적 학습(adversarial learning) 접근 방식 제안
- E, G를 Generators로 간주하여 E는 인코더로 작동하여 시계열 sequence를 latent 공간으로 매핑하고, G는 디코더로 작동하여 latent 공간을 재구성된 시계열로 변환
- Cx와 Cz라는 두 adversarial Critics(discriminators) 도입
- Cx의 목표는 X에서의 실제 시계열 sequence와 G(z)에서 생성된 시계열 sequence를 구별하는 것이며, Cz는 latent 공간으로의 매핑 성능을 측정
- G는 Cx를 속이기 위해 실제와 유사한 시퀀스를 생성하려고 함
=> 논문에서의 2가지 목표
(1) 생성된 시계열 시퀀스의 분포를 타겟 도메인의 데이터 분포와 일치시키기 위한 Wasserstein losses
- 원래 GAN의 adversarial losses는 mode collapse 문제를 겪음
- Generator와 Critic 간 학습 정도의 불균형으로 타겟 분포로 완벽하게 수렴하지 못함
=> Wasserstein-1 distance를 사용하여 Critic 네트워크를 훈련하는 Wasserstein loss 도입하여 GAN 학습
(2) E와 G 사이의 모순을 방지하기 위한 cycle consistency losses
- GAN의 목적은 입력 시계열을 재구성하는 것인데 Wasserstein loss만으로는 개별 입력 xi를 원하는 출력 zi에 매핑하는 것을 보장할 수 없으며, 이는 ˆ xi에 추가로 매핑될 것
- 가능한 매핑 함수 검색 공간을 줄이기 위해 주기 일관성 손실(cycle consistency loss)을 시계열 재구성에 적용
TadGAN
- 이점
- 진짜와 가짜 시계열 시퀀스를 구별하도록 훈련된 Critic Cx가 있으므로 Critic의 score는 직접적으로 이상 측정값으로 사용 가능
- cycle consistency loss로 훈련된 두 개의 Generator를 통해 시계열 시퀀스 인코딩, 디코딩 가능 -> 원본 시퀀스와 디코딩된 시퀀스의 차이는 두 번째 이상 탐지 측정값으로 사용 가능
- 시계열 X = (x1, x2, · · · , xT ) 가 주어지고, xi ∈R^M ×1은 시간 단계 i에서의 M 종류의 측정
- 편의를 위해 M=1, X는 univariate 시계열, x^i는 스칼라 (M > 1일 때, multivariate 시계열에도 적용 가능)
- training 샘플을 얻기 위해 원본 시계열을 N sub-sequences X 로 나누는 sliding window 도입 (원본 데이터가 많지 않아서 늘리려고)
- window size: t, step size: s, N = T-t/s
- 비정상 데이터 포인트는 드물기에, 모든 training 샘플이 정상이라고 가정
- k가 latent 공간의 차원을 나타내는 정규 분포를 따르는 랜덤 공간에서 Z = {(z1...k)}N을 생성
- X와 Z를 GAN 모델에 주고 목적 함수 모델을 훈련
=> 훈련된 모델로부터 Reconstruction Errors와 Critic 출력을 활용하여 각 시간 step에서 이상 점수(또는 가능성)를 계산 가능
A. Estimating Anomaly Scores using Reconstruction Errors
- t 길이의 시퀀스 x1...t 가 주어지면, TadGAN은 같은 길이의 재구성된 시퀀스 xi → E(xi) → G(E(xi)) ≈ xˆi 생성
- 각 시간 포인트 j에, 재구성된 값의 집합 {ˆxq i , i + q = j}를 얻음
- 중앙값을 최종 재구성 값 ˆxj 로 채택 (초기 실험에서 중앙값이 평균보다 성능이 좋았음)
=> 재구성된 시계열 (ˆx1, ˆx2, · · · , ˆxT)
- 각 시간 단계에서 재구성 오차를 계산하기 위한 세 가지 함수
1. Point-wise difference: 가장 직관적인 방법, 매 단계 실제 값과 재구성된 값의 차이 계산
2. Area difference: 특정 길이의 window 위에 적용되어 local 영역 간 평균 차이 계산
- point 별 차이와 비교했을 때 area 차이는 장기간에 걸쳐 작은 차이가 존재하는 region 식별에 유리
3. Dynamic time warping (DTW): 두 시간 시퀀스 사이 최적의 매칭을 계산하고, 지역 영역 간 유사성 계산
- 두 시계열 X = (xt−1, xt−l+1, . . . , xt+l)와 ˆX = (ˆxt−1, ˆxt−l+1, . . . , ˆxt+l)이 주어지며
- W ∈ R2∗l×2∗l은 xi와 ˆxj 사이의 거리 측정값인 wk로 표시되는 행렬
- 두 곡선 사이의 최소 거리를 정의하는 경로 W∗ = (w1, w2, . . . , wK)를 찾고,
- 시작과 끝에서의 경계 조건 및 continuity 및 monotonicity 제약 조건을 고려
- Area difference와 비교해, DTW는 시간 이동 문제도 처리 가능
B. Estimating Anomaly Scores with Critic Outputs
- 훈련 과정 중 Critic Cx는 실제 입력 시퀀스와 합성된 시퀀스를 구별해야 함
- Cx 훈련 시 Wasserstein-1 거리를 사용하기 때문에 출력은 시퀀스가 얼마나 실제(큰 값) 또는 가짜(작은 값)인지를 나타내는 지표로 볼 수 있음
- 따라서 Critic가 훈련되면 시계열 시퀀스의 이상을 측정하는 데 직접적으로 사용 가능
- reconstruction errors와 비슷하게 시간 단계 j에서, Critic 점수의 집합 (cq i, i + q = j)
- 이 집합에 kernel density estimation(KDE)을 적용, 최대값을 smoothed value cj로 취함
=> Critic 점수 시퀀스는 (c1, c2, . . . , cT)
- Critic이 이상적인 지역과 정상적인 지역에 대해 서로 다른 점수를 할당하는 것이 사실임을 보여줌 -> 이상 지역을 식별하기 위해 임계값(thresholding) 기술 사용 가능
C. Combining Both Scores
- reconstruction errors RE(x)와 Critic outputs Cx(x)는 직접적인 이상 정수로 사용할 수 없음
- RE(x)가 클수록, Cx(x)가 작을수록 이상 점수가 높음
- RE(x)와 Cx(x)의 평균과 표준 편차를 계산한 다음, 정규화하기 위해 각각의 z 점수 ZRE(x)와 ZCx(x)를 계산
- z 점수가 클수록 이상 점수가 높음
- ZRE와 ZCX를 결합하는 2가지 방법
- convex combination으로 a(x)로 합침
- 알파는 두 term의 상대적 중요도(default 0.5)
- convex combination으로 a(x)로 합침
2. 높은 값을 강조하기 위해 두 점수를 곱함(기본값 알파 1)
D. Identifying Anomalous Sequences
- locally adaptive thresholding으로 비정상 시퀀스 찾기
- 각 시간 단계에서 이상 점수를 얻고, thresholding 기술로 이상 시퀀스 식별 가능
- sliding window로 임계값 계산, window size: T/3, step size: T/3*10 => 일반적으로 알려지지 않은 context 이상 식별에 유리
- sliding window size는 현재 임계값을 평가하기 위해 사용되는 과거 이상 점수의 수 결정
- window의 평균으로부터 4 표준 편차만큼 떨어진 간단한 정적 임계값 설정, 임계값보다 이상 점수가 큰 지점 -> 이상 식별
- 연속적 시간 point들이 이상 시퀀스 또는 윈도우로 구성됨
- {aiseq , i = 1, 2, . . . , K }
- 각 시간 단계에서 이상 점수를 얻고, thresholding 기술로 이상 시퀀스 식별 가능
- false positives 완화
- sliding window를 사용하면 이상 검출 정확도를 높일 수 있지만, 많은 false positives 생성 가능성이 있음
- anomaly pruning approach
- 이상 시퀀스에 대해 최대 이상 점수로 대표값 설정, 최댓값 집합 {aimax, i = 1, 2, . . . , K}를 얻음
- 내림차순 정렬 후, 감소 비율 p^i를 얻을 수 있음
- 첫번째 p^i가 임계값을 초과하지 않을 때, 모든 subsequent 시퀀스를 정상으로 재분류
성능
- 모든 데이터셋에서 기본 방법들보다 뛰어난 성능을 보임
'AI' 카테고리의 다른 글
[논문리뷰] A Comparative Study of Time Series Anomaly Detection Models for Industrial Control Systems (0) | 2024.05.16 |
---|---|
[논문리뷰] WinCLIP: Zero-/Few-Shot Anomaly Classification and Segmentation (0) | 2024.05.13 |
[논문리뷰] EfficientAD: Accurate Visual Anomaly Detection at Millisecond-Level Latencies (0) | 2024.05.12 |
딥러닝, 머신러닝 (0) | 2024.05.02 |
[NLP] 자연어 처리란 (0) | 2024.05.02 |