본문 바로가기

AI

[논문 리뷰] TadGAN: Time Series Anomaly Detection Using Generative Adversarial Networks

  • TadGAN은 2020년 MIT에서 발표한 시계열 이상 감지 모델이다.
  • TadGAN은 GANs(Genertive Adversarial Networks) 와 LSTM 순환 신경망을 활용한 비지도학습(unsupervised learning) 방법으로, 복잡한 시간 상관 관계를 포착하고 효과적인 데이터 재구성을 통해 false positives을 최소화한다.
  • 오픈 소스로 공개 -> https://github.com/sintel-dev/Orion
 

GitHub - sintel-dev/Orion: A machine learning library for detecting anomalies in signals.

A machine learning library for detecting anomalies in signals. - GitHub - sintel-dev/Orion: A machine learning library for detecting anomalies in signals.

github.com

 

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를 통해 시계열 시퀀스 인코딩, 디코딩 가능 -> 원본 시퀀스와 디코딩된 시퀀스의 차이는 두 번째 이상 탐지 측정값으로 사용 가능

pseudo code시계열 X = (x1, x2, · · · , xT ) 가 주어지고, xi ∈R^M ×1은 시간 단계 i에서의 M 종류의 측정편의를 위해 M=1, X는 univariate 시계열, x^i는 스칼라 (M > 1일 때, multivariate 시계열에도 적용 가능)

 

 

  • 시계열 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은 같은 길이의 재구성된 시퀀스 x→ 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가지 방법
    1. convex combination으로 a(x)로 합침
      • 알파는 두 term의 상대적 중요도(default 0.5)
       

         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 = 12, . . . , K }
  • false positives 완화
    • sliding window를 사용하면 이상 검출 정확도를 높일 수 있지만, 많은 false positives 생성 가능성이 있음
    • anomaly pruning approach
      • 이상 시퀀스에 대해 최대 이상 점수로 대표값 설정, 최댓값 집합 {aimax, i = 12, . . . , K}를 얻음
      • 내림차순 정렬 후, 감소 비율 p^i를 얻을 수 있음
      • 첫번째 p^i가 임계값을 초과하지 않을 때, 모든 subsequent 시퀀스를 정상으로 재분류
 

성능

  • 모든 데이터셋에서 기본 방법들보다 뛰어난 성능을 보임