About me
home
Portfolio
home

AutoEncoder-based Anomaly Detection

1 more property

Time Series Anomaly Detection

이상 탐지(Anomaly Detection)는 다양한 분야에서 필수적인 기술로 자리잡고 있으며, 특히 시계열 데이터 분석을 통해 중요한 연구 주제로 떠올랐다. 특히 시계열 데이터(Time Series)에 대한 이상 탐지는 제조, 금융, 의료 등과 같은 다양한 산업에서 필수적인 기술로 인식되고 있다. 예를 들어 기계의 고장 예측(MIMII), 주식 시장의 이상 거래 감지(Alphabet Inc), 환자의 비정상적인 심장 박동 감지(ECG) 등이 있다.

입력값(Input data)

1.
Univariate(단변량) 시계열
단변량 시계열은 하나의 변수에 대한 시간에 따른 변화만을 추적하며, 각 시점에서의 데이터 포인트는 하나의 차원만을 가진다.
2.
Multivariate(다변량) 시계열
다변량 시계열은 시간에 따라 기록된 k차원 벡터의 정렬된 집합이며, 각 벡터는 k개의 실수값 관찰로 구성된다.
예) 온도, 습도, 압력 등 여러 input 요소를 동시에 측정하는 경우

이상치 유형(Outlier type)

1.
Point-wise Outliers: 개별 시간점에서 관찰되는 이상치로, 시계열의 나머지 데이터와 비교하여 극단적으로 높거나 낮은 값을 보이는 단일 데이터 포인트
Point Outliers (점 이상치): 단일 데이터 포인트가 전체 데이터 세트 내에서 극단적인 값을 가지는 경우를 말한다. 점 이상치는 전체 데이터 분포를 기준으로 판단되며, 다른 모든 데이터 포인트와 비교된다.
Contextual Outliers (맥락적 이상치):특정 데이터 포인트가 주변 데이터와 비교할 때 비정상적으로 보이는 경우를 말한다. 데이터 포인트의 주변 Context(이웃하는 데이터 포인트) 내에서만 이상하게 보인다. 이는 XtkXt+kX_{t-k} \ldots X_{t+k} 범위 내에서 정의되며, 특정 임계값을 기준으로 판단된다.
난이도(difficulty): Contextual >> Point
2.
Pattern-wise Outliers: 시간에 걸쳐 일련의 데이터 포인트가 보이는 비정상적인 패턴
Shapelet(형태 이상치): 시계열 데이터의 특정 부분이 정상적인 데이터의 기본 형태와 다를 때 발생한다.(Shapelet = 모양이나 패턴을 의미)
Seasonality(계절성 이상치): 계절성 이상치는 시계열 데이터가 보여주는 정상적인 계절 변화 패턴에서 벗어날 때 발생한다. 이는 특정 시간 동안 데이터가 반복적으로 나타내야 하는 정상적인 계절성과 다른 패턴을 보일 때 식별된다.
Trend(추세 이상치): 추세 이상치는 시계열 데이터의 전반적인 추세에서 큰 변화가 발생할 때 나타난다. 이는 데이터가 일정 기간 동안 보여주는 일반적인 증가 또는 감소 추세에서 벗어날 때 관찰된다.
난이도(difficulty): Seasonality > Trend > Shapelet

Unsupervised learning

비지도 학습(Unsupervised learning)은 레이블이 없는 데이터를 사용하여 학습하는 기계학습 방법이다. 이 방식은 데이터의 숨겨진 패턴이나 구조를 발견하려고 시도하며, 군집화(clustering), 차원 축소(dimensionality reduction)과 같은 기법이 포함된다.
비지도 학습 방법론은 레이블이 지정되지 않은 대규모 데이터에서 유용한 특징을 자동으로 학습할 수 있어, 이상치 탐지 분야에서 특히 유용하다.
학습 단계에서는 정상 데이터만을 사용하여 모델을 학습시키고, 학습된 모델을 통해 추론단계에서 정상 범위에서 벗어난 이상 데이터를 식별한다.

Autoencoder

Autoencoder의 경우 보통 이미지 task에서 이미지 생성이나 복원에 많이 사용되어왔지만, anomaly detection 분야에서 시계열 데이터 task도 적용 가능하다.
Autoencoder는 크게 인코더(encoder) 디코더(decoder)로 구성된다. 인코더는 입력 데이터를 저차원의 latent space으로 압축하는 역할을 하고, 디코더latent space의 표현을 다시 원래의 데이터 공간으로 복원하는 역할을 한다.

Data compression

정의: input 데이터의 representation 정보가 담긴 저차원(low-dimension) 벡터로 표현하는 과정
목적: 중복되는 속성을 제거(get rid of redundant attributes)
의의: '차원의 저주(curse of dimensionality)' 문제를 해결
차원의 저주
차원이 증가함에 따라 데이터의 밀도가 급격히 감소하게 되어 딥러닝 모델의 예측 성능에 부정적인 영향을 끼치는 현상.
차원이 증가할수록 학습을 위한 데이터의 양이 기하급수적으로 증가함.
연산 비용 증가, 과적합, 예측 성능 저하 문제점 발생
Autoencoder는 latent space를 활용해 입력 데이터로부터의 중요한 정보를 유지하면서도, 중복되거나 불필요한 정보를 제거한다.

Latent space(latent vector)

Latent space의 차원은 input의 차원보다 작아, 중복 속성을 제거하면서 데이터 압축이 이루어진다.
MNIST 데이터셋, 10가지 레이블을 2차원 latent space에 scatter하여 시각화한 그래프
Latent space는 주로 정상 데이터로부터 학습되며, 데이터의 본질적인 특성(representation)을 압축적으로 표현한다. Autoencoder는 이 잠재 공간을 사용하여 정상 데이터의 패턴을 학습한다.
이상 데이터는 잠재 공간을 통한 복원 과정에서 정상 데이터의 구조적 특성과 현저히 다른 결과를 나타난다. → 이상치로 분류된다.
특징 추출(Feature Extraction): 데이터의 중요한 특성을 인코딩하여 표현
비선형성(Non-linearity): 비선형 함수를 사용하여 복잡한 패턴 학습 가능.
선형 모델(PCA)보다 더 복잡하고 다양한 데이터 구조를 더 풍부한 표현으로 인코딩할 수 있다.

손실함수

학습 과정에서 Autoencoder는 입력 데이터와 복원된 데이터 간의 차이를 최소화하려 한다. 이 과정을 통해 모델은 데이터에 내재된 중요한 특징을 학습하게 된다.
The entire encoder-decoder architecture is collectively trained on the loss function which encourages that the input is reconstructed at the output.
손실 함수를 기반으로 한 훈련 과정에서, Autoencoder는 입력 데이터가 출력 단계에서 가능한 한 원본에 가깝게 재구성되도록 유도된다. 손실 함수는 인코더 입력과 디코더 출력 사이의 평균 제곱 오차(mean squared error)로 정의된다.
loss 값을 reconstruction error라고 함 → reconstruction error가 임계치보다 크면 Anomaly로 분
(cross-entropy 가 아닌 MSE를 사용)
Autoencoder는 output이 input을 재구성한다. → input 자체가 label이 된다.
비지도학습 문제(unsupervised learning)를 지도학습 문제(supervised learning)로 바꾸어서 해결
PCAAutoencoder
공통점
차원 축소: 두 기법 모두 데이터의 차원을 줄이는 데 사용된다.
특징 추출: 중요한 정보를 유지하면서 데이터를 압축한다.
차이점
PCA선형 차원 축소를 수행하지만, Autoencoder 비선형 활성화 함수(activation function)와 여러 hidden layer을 추가함으로써 복잡한 데이터 구조를 학습할 수 있다.
MLP, CNNAutoencoder
Autoencoder는 데이터의 내재된 구조를 포착하여 중요한 특징을 학습하고, 이를 바탕으로 데이터를 압축하고 복원하는 데 특화된 신경망 구조이다. 이는 데이터의 저차원 표현을 효과적으로 학습하며, 차원 축소, 노이즈 제거, 이상 탐지 등에 적용될 수 있다.
반면, MLPCNN은 주로 지도 학습(supervised learning)에 사용되며, 분류나 회귀 문제 해결에 초점을 맞춘다. Autoencoder의 자가 학습 방식은 데이터의 복잡한 분포를 잘 이해하고 표현하는 데 도움을 준다.
Autoencoder 데이터 압축, 특징 추출, 노이즈 제거, 데이터 생성, 이상 탐지에 유용

Autoencoder를 활용한 anomaly detection 모델

Insight

시간에 따라 변화하는 데이터의 특성을 포착하는 것은 시계열 데이터 분석에서 중요한 요소다. 과거의 전통적인 이상 탐지 방법 (ex Isolation Forest, PCA)들은 주로 통계적인 지식을 기반으로 이상을 탐지했다.
⇒ But 이러한 전통적 방법들은 시계열 데이터의 시간적 의존성(time dependence)을 capture하지 못하는 한계를 가진다(라고 공통적으로 언급한다).
최근에는 이러한 한계를 극복하기 위해 딥러닝 기반의 알고리즘들이 등장했다. 그중 대표적으로 재구성 기반 방법(reconstruction-based methods)은 시간적 패턴과 의존성을 학습하여 더 정교한 이상 탐지를 가능하게 한다. 이러한 모델들은 시계열 데이터를 재구성하고, 이 과정에서 발생하는 재구성 오류를 이상 점수로 사용한다. 이는 time dependence을 고려하며, 특히 변화하는 데이터 패턴에 효과적이다.
Reconstruction-based 딥러닝 모델들은 raw input datalatent space으로 매핑하여 데이터의 representation을 추출하는 방식을 채택한다. 이 과정에서 모델은 원본 데이터의 핵심 정보를 잘 보존하는 동시에 불필요한 정보를 제거함으로써 데이터의 압축된 표현을 학습한다. 잠재 공간에서의 이러한 표현은 원본 데이터의 중요한 특성과 패턴을 capture한다.

전통적인 이상 탐지 모델

통계적 지식 사용: 데이터의 통계적 특성과 분포를 분석하여 이상치를 식별한다.
연역적 접근: 미리 정의된 가정하에 모델을 구축하고, 이를 바탕으로 데이터를 분석한다.
제한된 복잡성: 간단하고 이해하기 쉬운 모델 구조를 가지나, 복잡한 데이터 구조를 효과적으로 캡처하지 못할 수 있다.

최근 딥러닝 모델

고차원 latent space: 데이터를 고차원의 latent space으로 매핑하여 그 안에서 복잡한 특성과 구조를 추출한다.
representation 학습: 모델은 추상적인 latent space상에서 시계열 데이터의 representation을 학습하고 이상치를 식별한다.
귀납적 접근: 경험적 실험을 바탕으로 모델을 구축하고, parameter들을 수정해나간다.
높은 계산 비용: 큰 데이터셋이나 복잡한 모델 구조는 훈련 시간을 길게 하고, 컴퓨팅 리소스를 많이 소모한다.