AI/머신러닝
센서 데이터와 이상 탐지 5일차 (AutoEncoder, DBSCAN ..)
edcrfv458
2025. 3. 27. 14:48
목차
- AutoEncoder (LSTM AE)
- Derivative (기울기, 변화량) 기반 탐지
- Moving Average + Change Point Detection
- Variance-based Rule
- Guassian Tail Probability
- DBSCAN
AutoEncoder
- 입력 데이터를 압축했다가 다시 복원하는 신경망 구조
- 입력 ➡️ 잠재공간(압축) ➡️ 출력(복원)
- 복원오차(reconstruction error)를 통해 이상 여부 판단
이상 탐지 흐름
- 정상 데이터만을 이용해 LSTM Autoencoder 학습
- 모델은 정상 패턴만 학습
- 이후 어떤 입력을 넣고 복원했을 때
- 오차가 작으면 정상
- 오차가 크면 이상으로 판단
Derivative (기울기, 변화량) 기반 탐지
- 값 자체가 아니라, 변화량에 이상 탐지 적용
- 급격한 변화량이 생긴 경우를 이상으로 판단
- 변화량(기울기)을 감시하면 정상 범위 안의 급격한 변화도 잡을 수 있음
- 예시
- 5초 내에 온도가 10도 이상 급등 ➡️ 이상
- 전류가 1초에 3A 이상 급격히 상승
Moving Average + Change Point Detection
- 일정 구간의 평균/분산과 현재 값을 비교 ➡️ 급변 시점 감지
- 도구: ruptures, changefinder, Bayesian Change Point
- ruptures는 시계열 데이터에서 변화점(change point) 을 감지하는데 사용
- 변화점 감지(change point detection)는 데이터의 통계적 성질(평균, 분산 등)이 변하는 시점을 찾아내는 것이 목적
이동 평균(Moving Average) 기반의 간단한 이상치 탐지(Anomaly Detection)
- 예를 들어 window가 10이라면 시계열 데이터가 10개가 들어감
- 이미 이상치가 찾아졌는데 10개를 기다려야 하므로 조취가 늦어질 수 있음
- 그래서 잘 안씀
ChangeFinder 알고리즘을 사용한 이상 탐지 / 변화 탐지
- ruptures나 moving average 방식과는 다르게, 온라인(실시간) 환경에 적합하고, 통계 기반으로 설계된 알고리즘
CUSUM (Cumulative Sum Control Chart) 알고리즘을 이용한 변화 탐지 (Change Detection)
- 통계적 공정 관리(SPC)에서도 많이 쓰이며, 평균이 갑자기 변하는 시점을 빠르게 포착할 수 있는 강력한 방법
Bayesian Online Change Point Detection (BOCPD) 알고리즘
- 변화점(분포가 바뀌는 지점)을 실시간으로 탐지
- BOCPD는 변화가 일어날 확률을 베이지안적으로 추론
- 새로운 관측마다 변화 가능성을 업데이트하여 실시간으로 변화점을 탐지하는 강력한 알고리즘
Variance-based Rule
- 일정한 기간(슬라이딩 윈도우 또는 구간) 동안의 분산(혹은 표준편차)을 계산하고 그 분산이 사전에 설정한 임계값 초과하면 변화가 생겼다고 판단
- 분산을 기준으로 삼는 이유
- 정상 구간은 일반적으로 분산이 작고 일정
- 이상 구간은 평균이 바뀌거나 급격한 값의 진동이 생기며 분산이 커짐
- 따라서 분산이 갑자기 튀는 지점을 이상 또는 변화점으로 탐지
Guassian Tail Probability
- 정규 분포를 따르는 데이터에서 평균으로부터 특정 거리 이상 떨어질 값이 나올 확률
- 이 확률은 "이 값이 정상 구간 밖에 있을 가능성" 이며, 일종의 이상치(outlier) 점수로 활용
- 이상치 탐지: 꼬리 확률이 매우 작으면 "이 값은 정상 분포에서 거의 안 나오는 값 ➡️ 이상"
- p-value 계산: 통계 검정에서 유의확률(p-value)을 계산할 때도 tail probability 사용
- 확률적 스코어링: 확률 기반 이상 탐지에 사용
DBSCAN
- 밀도 기반 클러스터링 알고리즘
- 특히 이상치 탐지와 비선형 구조 데이터 분리에 강한 특징을 가진 알고리즘
- "점들이 얼마나 밀집되어 있는가"를 기준으로 클러스터를 자동으로 형성하고, 밀도가 낮은 고립된 점들은 이상치(noise)로 간주하는 알고리즘
- 동작 원리 예약
- 모든 점에 대해 eps 거리 안의 이웃 점들을 찾음
- 이웃이 min_samples 이상이면 → Core Point로 간주 → 클러스터 생성 시작
- 이웃의 이웃들을 재귀적으로 연결하며 클러스터 확장
- 어떤 클러스터에도 속하지 않는 점은 Noise (이상치) 처리