문과생 네버랜드의 데이터 창고

논문 Review : SR-CNN(Spectral Residual Convolution Neural Network) 본문

논문 Review

논문 Review : SR-CNN(Spectral Residual Convolution Neural Network)

K JI 2023. 5. 11. 00:38
  1. 논문 요약
    Time-Series Anomaly Detection Service at Microsoft (arxiv.org)
    1) 이상 탐지(Anomaly Detection)을 수행하는 알고리즘
    2) 원본 시계열을 Spectral Residual 처리를 통해 이상점만 도드라지게 만든 후, CNN을 활용해 이상 여부를 감별
    3) 이 과정에서 라벨링을 자동으로 수행하기 때문에 별도의 라벨링이 필요하지 않는 semi-supervised Learning을 수행
    4) 비교군 대비 30% ~ 90% 향상된 점수(F1-Score 기준)을 보여 압도하는 성능을 보여주었다.

  2. 서론
    1) 이상탐지(Anomaly Detection)은 데이터에서 예상치 못한 이벤트발견하는 방법론이다
    2) 마이크로소프트는 자시의 검색서비스 Bing과 Office, 그리고 Azure에서 들어오는 수많은 지표들을 감시하고 이상 여부를 즉각 판단하는데 도움을 주는 이상 탐지 서비스를 도입하였다.
    3) 이 서비스를 개발하는데 여러 도전이 있었다.
    ${(1)}$ 라벨링의 결여
    -. 수많은 시계열 데이터를 보통 동시에 처리하기 때문에 유저들이 '이상이 발생한 부분'에 라벨링을 적용하는게 보통은 쉽지 않다.
    -. 또, 시계열 데이터의 경우 매 순간 분포의 특성이 달라지기 때문에 모델이 '이상이 발생한 부분'을 효과적으로 탐지해내기가 어렵다. 이런 이유 때문에 보통 지도학습(Supervised-Learning) 모델의 경우, 산업 도메인에서는 적용이 다소 어렵다.
    ${(2)}$ 일반화 가능성
    -. 산업 도메인에서는 다양한 패턴을 갖는 대부분의 시계열 데이터에 공통적으로 잘 들어맞는 일반화된 이상 탐지 서비스가 필요하다.
    -. 그러나, 모든 시계열 방법론들이 모든 시계열 패턴에 들이맞지는 않는다.
    -. 예를 들어, Holt-Winters 방법론의 경우 계절성을 가진 시계열 데이터(Seasonal Time series)엔 잘 들어맞나, 그 외에 정상성을 가진 데이터와 계절성 외의 성분을 갖는 비정상 데이터에 대해서는 잘 맞지 않는다.
    Holt-winters 방법론의 경우 (a)에선 비교적 잘 작동하나, (b)와 (c)의 경우엔 제대로 작동하지 않는다.
    ${(3)}$ 비효율성
    -. 산업 도메인에서는 제한된 시간에 수많은 시계열 데이터를 검토한 후 이상여부를 판단하는 패턴처리가 필요하다.

  3. 본문
    1) 위와 같은 문제를 해결하기 위해, 논문의 저자들은 Spectral-Residual 차용을 제안한다
    ${(1)}$ Spectral-residual은 이미지 처리(Image Processing) 영역에서 주목이 필요한 부분을 더 도드라지게 하는데 사용하는 방법론이다.
    ${(2)}$ 시계열 데이터에서, 이상 지점은 보통 '가장 도드라져' 보이기 때문에, 아이디어 측면에서 이미지 처리 영역에서 사용되는 Spectral-residual을 도입하는 것은 합리적인 아이디어이다.
    2) Spectral-Residual을 일종의 전처리기로 활용한 후, 이상 지점이 도드라진 데이터에 대하여 CNN을 적용하여 이상이 있는 지점을 판별하는 이상 감지기로 활용한다.
    ${(1)}$ 이상 감지기로서 CNN을 학습시킬 때, Spectral-residual을 적용하여 인공적으로 합성한(Synthetic) 시계열 데이터를 학습에 활용하기 때문에 수작업으로 작업한 라벨 데이터가 필요 없다
    ${(2)}$ 그럼에도 불구하고 SR-CNN은 기존 SR모델대비 큰 성능향상을 보이며 SOTA 성능을 기록할 수 있었다.
    -. F1-Score 기준 기존 SR모형 대비 20% 성능 향상을 보였다.
    3) 방법론
    ${(1)}$ 저자들은 이상 탐지 태스크를 아래의 문제로 정의하였다
    $X = [x_{1}, x_{2}, .... , x_{n}]$의 시계열 벡터일 때, 시계열 이상 탐지 작업이란 $y = [y_{1}, y_{2}, ..., y_{n}]$이라는 출력 벡터를 작성하는 것이며, 이 때 $y_{i} \in \{0,1\}$ 이며 이는 $x_{i}$가 해당 지점에서 이상(1)인지 아닌지(0)을 나타내는 시퀀스이다
    ${(2)}$ 저자들의 목표는 위의 문제 해결을 ①일반화 가능하고 ②효율적이며 ③라벨링이 필요없는 방법론으로 해결하는 것이다.
    4) Spectral Residual
    ${(1})$ SR은 다음의 절차로 이루어져 있다
    -. FFT로 로그 스펙트럼 변환을 수행한 후
    -. Spectral Residual 절차를 거친 후
    -. 도출된 변환 스펙트럼을 다시 역FFT로 원래 데이터로 돌린다
    ${(2)}$ Spectral Residual 절차
    -. $\widetilde{ \vartheta }(x)$ 를 FFT, $\widetilde{ \vartheta }^{-1}(x)$를 역FFT라고 할 때
    단계 수식 설명
    1. FFT 분해 $A(f) = Amplitude(\widetilde{ \vartheta }(x))$ :  진폭을 구한다.
    $P(f) = Phrase(\widetilde{ \vartheta }(x))$ : 위상을 구한다
    2. Spectral Residual $L(f) = log(A(f))$ 로그 변환된 표현형을 구한다
    $AL(f) = h_{q}(f) \cdot L(f)$  $Hq(f)$ 컨볼루션 행렬로 평균화된 스펙트럼 벡터
    $R(f) = L(f) - AL(f)$  로그 스펙트럼 $L(f)$에서 평균화된 스펙트럼 벡터 $AL(f)$를 빼서 Spectral Residual을 구한다
    3. Inverse FFT $S(x) = ||\widetilde{ \vartheta }^{-1}(x)(exp(R(f) + iP(f)))||$ 역FFT를 통해 본래의 시간축 차원으로 변환한다.

    이 때 $Hq(f) = \frac{1}{q^{2}}\begin{bmatrix}
    1 & 1 & ... & 1 \\
    1 & 1 & ... & 1 \\
    ... & ... & ... & ... \\
    1 & 1 & ... & 1 \\
    \end{bmatrix}$(단, q는 행렬의 차원)

    원본 시계열에서 Saliency_map으로 바뀐 후의 예시

    ${(3)}$ $S(x)$를 이용하여 도출된 saliency map을 이용하여 자동화된 라벨링을 수행한다
    $$O(x_{i}) = \left\{\begin{matrix}
    1 \quad if \ \frac{s(x_{i}) - \overline{s(x_{i})}}{s(x_{i})} > \Gamma\\
    0 \quad otherwise
    \end{matrix}\right.$$
    이 때,  $\overline{s(x_{i})}$ 는 saliency map의 평균, $s(x_{i})$ 는 지점 i에서의 saliency map의 값, $\Gamma$는 하이퍼 파라미터로서 이상치로 도출할 역치값이다.
    5) 실제 알고리즘에선 Window를 움직이면서 SR을 수행한다. 그리고, 효율성을 위하여 다음의 기법을 가미한다
    ${(1)}$ 효율성 측면에서, 우리가 원하는건 가장 최신의 값 $x_{n}$이 들어왔을때, 이 $x_{n}$이 이상치인지 아닌지를 그 자리에서 감별하는 것이다
    ${(2)}$ 이 작업을 하기 위해선 $x_{n}$이 윈도우의 가장자리가 아니라 중심에 위치해야하며 필연적으로 $x_{n}$ 이후의 아직 발생하지 않은 지점에 대하여 외삽(extrapolation)을 수행할 필요가 있다.
    -. 저자들은 외삽법을 수행할 수 있는 방법론으로 다음의 '직선의 기울기'를 제안한다
    $\overline{g} = \frac{1}{m}\sum_{i=1}^{m}g(x_{n},x_{n-i})$
    $x_{n+1}=x_{n-m+1}+\overline{g}\cdot m$
    -. 이 외삽 알고리즘의 하이퍼파라미터는 m으로, 얼마나 많은 지점들을 외삽법의 고려 대상으로 포함할것인지를 나타낸다.
    직선의 기울기를 활용하여 외삽을 수행하는 방법론의 예시
    위에서 도출된 $x_{n}$을 k번 반복하여 우리가 원하는 $x_{n}$이 윈도우의 중간에 위치하도록 만든다.
    6) 합성 데이터(Synthetic Data)를 활용한 CNN 훈련
    ${(1)}$ CNN을 훈련하는데 있어 잘 정제되어 있는(well-designed) 합성 데이터(Synthetic Data)를 만들어서 CNN에 훈련 데이터로 제공
    ${(2)}$ 합성 데이터는 아래의 방법으로 생성이 가능하다
    $x = (\overline{x} + mean)(1+var) \cdot r + x$ 
    이 때 $\overline{x}$는 지정한(m) 포인트들의 국소평균,
    mean은 전체 시계열의 평균,
    var은 전체 시계열의 분산
    r은 $R~N(0,1)$을 따르는 확률분포에서 추출한 랜덤 표본
    -. 랜덤하게 선정한 이상지점에 위 값으로 대치한 값을 집어넣어 인위적인 이상점을 만들어 SR처리를 수행한다.
    ${(3)}$ SR 처리 수행 결과 도출된 Saliency Map1-D Convolution Network에 투입하여 특성 추출을 수행하며, Fully-connected network를 거쳐 나온 결과물을 sigmoid 활성화 함수를 거치는 Output-Layer를 거쳐 최종적으로 Cross-entropy 손실 함수를 최소화하는 학습을 수행한다. 최적화기(Optimizer)는 SGD를 활용한다.
    SR-CNN의 아키텍쳐
    실험 결과
    1) 활용한 데이터셋
    ${(1)}$ 저자들은 다음 데이터셋을 활용하여 성능 평가를 수행
    KPI https://github.com/NetManAIOps/KPI-Anomaly-Detection
    Yahoo Webscope | Yahoo Labs
    Microsoft 비공개
    2) 평가 지표
    ${(1)}$ 저자들은 서문에서 밝힌대로 세 가지 차원에서 알고리즘 평가를 수행
    -. 정확도(Accuracy) : F1-Score, Precision, Recall을 기반으로 성능을 평가
    -. 효율성(Efficiency) : 알고리즘 총 동작시간
    -. 일반성(Generality) : 다양한 시계열 패턴(계절성 존재, 정상성, 비정상성)에 알고리즘을 적용 후 F1-Score 측정
    ${(2)}$ 이상 탐지 Task에 적합하도록 '정답'에 대한 기준을 확장하여 적용함
    -. 예를 들어, 몇 개의 Sequence를 놓치더라도 실제 이상치에 근접한 지점에서 '이상 여부'를 판별해냈다면 적절하게 이상 여부를 감별해낸 것으로 여유를 두고 판단함
    -. '몇 개의 Sequence를 놓치더라도 정답으로 간주' 할지는 k라는 하이퍼파라미터로 조정할 수 있고, 저자들은 아래의 기준으로 k값을 달리 적용함
    데이터 유형 k값
    분단위 시계열 데이터 7
    시간단위 시계열 데이터 3
    일단위 시계열 데이터 1
    정답을 여유롭게 판단하는 방법론의 예시. 첫번째 줄은 실제 정답. 두번째 줄은 모델의 판단, 세번째 줄은 $(k=1)$값을 적용했을 때 보정 완료된 모델의 판단을 의미. 첫 번째 덩어리의 경우 정답으로 처리되고, 두 번째 덩어리는 k=1에서 두 번째 시퀀스에서 이상 탐지를 해냈으므로 오답으로 간주된다(전부 0으로 처리)
    3) 실험 결과 요약
    모든 시계열 데이터를 test-data로 간주하고 별도 학습 없이 탐지를 진행했을때의 사례(cold_start)
    모델 학습을 수행하고 분리된 test-data에 대하여 탐지를 진행했을때의 사례
    ${(1)}$ cold-start 사례에서, SR-CNN은 F1-Score에서 비교군 모델의 최대점수(0.538, 0.388, 0.443)에서 36.1%, 68.8%, 21.2% 향상된 평가지표를 기록하였다(KPI, Yahoo, Microsoft 순)
    ${(2)}$ 학습 후 test-data에 대해 수행한 사례에서 SR-CNN은 F1-Score에서 비교군 모델의 최대 점수(0.521, 0.338, 0.323)에서 각각 48%, 92.9%, 57% 향상된 평가지표를 기록하였다(KPI, Yahoo, MIcrosoft 순)
    ${(3)}$ 동작 시간 면에서도, 비교군 에 비해 1/3 ~ 1/10에 해당하는 동작시간을 기록하여 매우 효과적인 것으로 볼 수 있다.