UNLV

[UNLV] - 온라인 머신러닝과 이상 탐지: 이론과 진동 센서 실습 (13일차)

빡성 2026. 2. 24. 07:38

1. 수업 개요

이번 수업은 온라인 머신러닝(Online Machine Learning)의 철학(배치 학습과의 비교, 스트리밍 환경에서의 평가·윈도우 전략, SGD·Hoeffding Tree, 개념 드리프트·ADWIN·Half-Space Trees, 연합 온라인 학습)과 이상 탐지(Anomaly Detection) 이론(전통적 방법·딥러닝 재구성 기반)을 다룬다. 실습에서는 라즈베리파이(또는 센서 보드)에서 진동·가속도 데이터를 PC로 스트리밍한 뒤, 호스트 PC에서 온라인 분류(Hoeffding Tree), 개념 드리프트 감지(ADWIN), 이상 탐지(Autoencoder 등), 필요 시 연합 학습까지 진행하는 구성을 다룬다.

2. 온라인 머신러닝: 배치 학습과의 비교

온라인 머신러닝은 데이터가 생성되는 즉시 학습에 반영하는 동적 학습 체계이다.

배치 vs 온라인

  • 전통적 머신러닝 (Batch Learning): 고정된 데이터셋(CSV 등)을 한꺼번에 학습한다. 데이터가 바뀌면 전체를 다시 학습해야 하므로 자원 소모가 크다. 식으로는 Model = Train(X_all, Y_all)에 해당한다.
  • 온라인 머신러닝 (Incremental Learning): 스트림에서 새 샘플이 도착할 때마다 모델을 즉시 갱신한다. Model_t = Update(Model_{t-1}, X_new, Y_new) 형태로, 한 번에 한 인스턴스(또는 소량의 미니배치)만 사용한다.

필요성: (1) 대용량·스트리밍 — 서버 로그처럼 RAM을 초과하는 데이터를 다룰 때 필수적이다. (2) 역동적 환경 — 사용자 패턴·센서 데이터가 실시간으로 변할 때 유리하다. (3) 엣지 컴퓨팅 — 라즈베리 파이 같은 저사양 기기에서 대용량 저장 없이 AI를 운영할 수 있다. (4) 콜드 스타트 완화 — 방대한 데이터가 쌓일 때까지 기다리지 않고 바로 가동할 수 있다.

핵심 용어와 평가

실시간 스트리밍에서는 기존의 학습/테스트 분리가 그대로 통하지 않는다.

  • 인스턴스(Instance): 시간 t에 도착하는 단일 데이터 포인트 (x, y)이다.
  • Interleaved Test-Then-Train: 들어온 데이터로 먼저 예측을 수행하고, 이후 실제 정답이 확인되면 그 데이터를 바로 학습에 사용하는 표준 방식이다.
  • 리그렛(Regret): 온라인 모델과 (모든 데이터를 알고 있다고 가정한) 가상의 최적 정적 모델 간의 성능 차이이다. 이 값이 작을수록 온라인 모델이 잘 적응하고 있다는 의미이다.

윈도우 전략 (Windowing)

데이터의 ‘신선도’를 유지하기 위해 어떤 데이터를 기억하고 버릴지 결정하는 방법이다.

  • Sliding Window: 최근 N개의 샘플만 유지하는 가장 보편적인 방식(FIFO)이다.
  • Damped Window: 최근 데이터에는 높은 가중치를, 오래된 데이터에는 지수적으로 감소하는 낮은 가중치를 부여한다.

알고리즘: 선형 모델과 트리

온라인 학습의 성능은 모델이 얼마나 빠르게 갱신되느냐에 좌우된다.

  • SGD (Stochastic Gradient Descent): 온라인 학습의 기반이다. 오차가 발생할 때마다 가중치를 소량씩 조정하며, 회귀·SVM 등에 널리 쓰인다.
  • Hoeffding Trees (VFDT): 스트리밍용 의사결정 나무이다. 노드 분할 시 Hoeffding Bound를 사용한다. 식은 ε = √(R² ln(1/δ) / (2n)) 이며, n개 샘플이 쌓였을 때 현재 관찰된 최선의 분할이 진정한 최적임을 통계적으로 보장한다. 이 ε이 일정 수준 이하로 떨어져야 비로소 노드를 분할해 모델이 정교해진다.

개념 드리프트 (Concept Drift)와 ADWIN

온라인 환경의 큰 도전은 정답이 변하는 현상이다. 계절에 따라 온도의 ‘정상’ 범위가 달라지듯, 데이터의 통계적 특성이 바뀌는 것을 개념 드리프트라 한다. Sudden(갑작스러운 사고), Gradual(센서 노후화), Recurring(계절성) 유형이 있다. ADWIN은 스트림의 변화를 감지해 윈도우 크기를 자동으로 조절하거나, 감지 시 윈도우를 리셋해 드리프트 이후 데이터만 반영하도록 한다.

Half-Space Trees (HST)와 이상 탐지

공간을 무작위로 분할해, 데이터가 희소한(Sparse) 영역에 떨어지면 이를 이상치로 판단하는 비지도 학습 방식이다. 라벨 없이 스트리밍 이상 탐지에 활용할 수 있다.

연합 온라인 학습 (Federated Online Learning)

프라이버시와 실시간 성능을 동시에 만족시키는 방식이다. 라즈베리 파이 같은 엣지 기기가 로컬에서 데이터를 즉시 학습하고, 데이터 자체가 아닌 업데이트된 가중치(Weight)만 서버로 전송한다. 서버는 여러 기기의 가중치를 합산해 글로벌 모델을 만들고 다시 기기들에 배포한다. 데이터 유출 없이 대규모 협업 학습이 가능하다.

3. 이상 탐지의 정의와 전통적 방법

이상 탐지란?

정의: 데이터셋의 일반적인 패턴이나 행동에서 크게 벗어나는 데이터 포인트, 이벤트, 또는 관측치를 식별하는 기술이다. 건초 더미 속의 바늘을 찾는 것과 같다. 실제 환경에서는 이상치가 매우 드물기 때문에(보통 전체의 1% 미만) 정확히 찾아내는 것이 어렵다.

세 가지 주요 유형

  • 점 이상(Point Anomalies): 개별 데이터 포인트 하나가 나머지와 멀리 떨어진 경우. 예: 신용카드 부정 사용.
  • 문맥적 이상(Contextual Anomalies): 특정 상황에서만 이상으로 간주되는 경우. 예: 여름의 30°C는 정상이지만 겨울의 30°C는 이상.
  • 집단적 이상(Collective Anomalies): 개별 데이터는 정상일 수 있으나, 그 시퀀스나 집합이 비정상인 경우. 예: 불규칙한 심장 박동.

왜 딥러닝인가? (전통적 머신러닝과의 차이)

전통적 방법의 한계: Isolation Forest나 One-Class SVM 같은 기존 방식은 이미지, 비디오 같은 고차원 데이터나 복잡한 비선형 관계를 다루기 어렵다.

딥러닝의 장점: (1) 특징 학습 — 수동으로 특징을 뽑지 않고 계층적 표현을 자동으로 학습한다. (2) 확장성 — 대규모 데이터를 효과적으로 처리할 수 있다. (3) 비정형 데이터 — 이미지, 오디오, 시계열 데이터 처리에 강하다.

Isolation Forest: 전통적 방식의 대표

데이터를 직접 모델링하기보다, 데이터를 고립(Isolate)시키는 데 집중하는 비지도 학습 알고리즘이다. 무작위 분할로 트리를 만들 때, 이상치는 정상 데이터보다 적은 횟수의 분할로도 쉽게 고립된다. 따라서 경로 길이(Path length)가 짧을수록 이상치일 확률이 높다고 판단한다. 표 형식 데이터나 저차원 특징에는 여전히 많이 쓰인다.

4. 딥러닝 기반 이상 탐지 아키텍처

재구성 기반 탐지 원리

딥러닝 이상 탐지의 핵심 아이디어는 재구성(Reconstruction)이다. 가설: 정상 데이터로만 학습한 모델은 정상 데이터는 잘 복원하지만, 이상치를 넣으면 복원에 실패한다. 지표: 입력과 출력의 차이인 재구성 오차(Reconstruction Error, MSE 등)를 쓴다. 오차가 낮으면 정상, 높으면 이상으로 본다.

주요 아키텍처

  • Autoencoder (AE): 입력을 잠재 공간(Latent space)으로 압축했다가 다시 복원하는 구조. 정상 샘플로만 학습해 재구성 손실을 최소화한다.
  • Variational Autoencoder (VAE): 일반 AE는 입력을 고정된 점으로 인코딩하는 반면, VAE는 평균(μ)과 분산(σ²)을 가진 확률 분포로 인코딩한다. 잠재 공간이 더 부드러워지고 이상 점수를 확률적으로 계산하기 좋다.
  • LSTM Autoencoder: 로그·센서 같은 시계열 데이터에 맞춘 구조. LSTM으로 시간적 의존성을 잡고, 재구성 오차로 이상을 판단한다.
  • GAN (AnoGAN): 생성자(G)는 정상 데이터를 생성하도록, 판별자(D)는 가짜를 걸러내도록 학습한다. 추론 시 특정 입력을 잘 생성하지 못하거나 판별자가 거부하면 이상으로 본다.

5. 평가 지표, 요약 및 모델 선택

평가 지표와 임계값

이상 탐지에서는 데이터 불균형이 심하므로 정확도(Accuracy)만 믿으면 안 된다. 임계값(Threshold)은 고정값이나 통계적 방법(예: 평균 + 3×표준편차)으로 정한다. 주요 지표: 정밀도(Precision), 재현율(Recall), F1-Score, AUROC로 성능을 종합 평가한다.

요약 및 권장 사항

데이터 준비: 신경망 학습 전에 데이터를 [0, 1] 범위로 정규화하는 것이 일반적이다.

데이터 유형별 모델 선택: 표 형식(Tabular) → AE/VAE. 시계열(Time-Series) → LSTM/Transformer. 이미지 → Convolutional AE / GAN.

주의사항: 학습 데이터에 이상치가 섞여 들어가는 오염(Contamination)을 피해야 한다. 이상치까지 정상으로 학습하면 탐지 성능이 떨어진다.

6. 실습: 진동 스트리밍·온라인 학습·이상 탐지

구성

라즈베리파이(또는 M5Core 등)가 가속도·진동 데이터를 수집해 TCP로 스트리밍하고, 호스트 PC가 이를 받아 온라인 학습이상 탐지를 수행한다. 센서로는 BMI160·MPU6050 같은 IMU(가속도계)를 사용해 X, Y, Z 축 가속도 값을 일정 주기(예: 20Hz)로 전송한다. 호스트는 수신한 패킷을 JSON으로 파싱한 뒤, 특징(ax, ay, az, 또는 윈도우 통계)을 추출해 온라인 분류기·이상 탐지기에 넣는다.

실습에서는 (1) 온라인 분류: 슬라이딩 윈도우로 윈도우별 통계(std_x, std_y, std_z, mean_x 등)를 만들고, River의 StandardScaler + HoeffdingTreeClassifier로 “정지(IDLE)” vs “진동(MOTION)”을 Test-Then-Train 방식으로 학습·예측한다. (2) 개념 드리프트: ADWIN으로 스트림의 평균 변화를 감지하는 데모(합성 스트림 또는 실데이터)를 통해 드리프트 시점을 확인한다. (3) 연합 학습: 엣지 클라이언트가 로컬에서 학습한 뒤 가중치만 서버(Flower 등)로 보내고, 서버가 FedAvg로 집계한 글로벌 모델을 다시 배포하는 흐름을 경험할 수 있다.

두 단계: 캘리브레이션 → 탐지

1단계(캘리브레이션): 센서를 정지 상태로 두고 일정 개수(예: 200~1000개)의 “정상” 샘플만 수집한다. 이 구간에서는 사용자가 진동을 주지 않는다. 수집이 끝나면 이 데이터만으로 모델을 학습(또는 통계 기준을 잡는다).

2단계(탐지): 학습이 끝나면 실시간으로 들어오는 샘플마다 이상 여부를 판단한다. 전통적 방법(Isolation Forest)이면 fit된 모델로 predict·decision_function을 쓰고, 통계적 방법(Z-Score)이면 최근 구간의 평균·표준편차를 기준으로 Z값을 계산해 임계값을 넘으면 이상으로 친다. 딥러닝 방법(Autoencoder)이면 정규화된 입력을 재구성한 뒤 MSE를 구하고, 학습 시 정해둔 임계값(예: 학습 재구성 오차의 평균+3×표준편차, 또는 최대×1.1)과 비교한다.

세 가지 탐지 방식

  • Z-Score 기반: 최근 N개 샘플의 진동 크기(또는 축별 값)에 대해 평균과 표준편차를 구하고, 현재 값의 Z-Score가 임계값(예: 3.5)을 넘으면 이상. 구현이 단순하고 별도 학습이 없지만, 구간 길이와 임계값 설정에 따라 민감도가 달라진다.
  • Isolation Forest: 수집한 정상 데이터로 Isolation Forest를 학습한다. 추론 시 1=정상, -1=이상으로 예측하고, decision_function 점수(음수일수록 이상에 가깝다)를 함께 쓸 수 있다. contamination 파라미터로 민감도를 조절한다.
  • Autoencoder: 입력 차원(예: 3)을 잠재 차원(예: 2)으로 압축했다가 다시 3으로 복원하는 AE를 정상 데이터로만 학습한다. Min-Max 정규화 후 MSE 손실로 학습하고, 학습 데이터의 재구성 오차 분포를 보고 임계값을 정한다(평균+3×표준편차 또는 최대 오차×여유 계수). 실시간으로 들어오는 샘플의 재구성 오차가 임계값을 넘으면 이상으로 판단한다.

테스트 방법

먼저 센서를 움직이지 않고 정상 데이터만 모아 캘리브레이션·학습을 끝낸다. 그다음 Z축 방향으로 살짝 두드리거나 흔들어 인위적인 진동(이상치)을 준다. 이상 탐지기에서는 재구성 오차가 임계값을 넘으면 “ANOMALY”로, 온라인 분류기에서는 “MOTION” 등으로 표시된다. 콘솔에 해당 메시지가 뜨면 동작이 확인된다. 정상일 때는 “NORMAL” 또는 “IDLE”로 표시되며, 재구성 오차나 점수가 임계값 아래로 유지되는지 보면 된다.

7. 정리

이번 수업에서는 온라인 머신러닝의 철학(배치 vs 스트리밍, 인스턴스·Test-Then-Train·리그렛, 슬라이딩·댐핑 윈도우, SGD·Hoeffding Tree, 개념 드리프트·ADWIN·Half-Space Trees, 연합 온라인 학습)과 이상 탐지의 정의(점·문맥·집단 이상), 전통적 방법(Isolation Forest), 딥러닝 재구성 접근(AE, VAE, LSTM-AE, GAN), 평가 지표·실무 지침(정규화, 데이터 유형별 모델, Contamination 주의)을 정리했다. 실습에서는 라즈베리파이(또는 센서 보드)에서 진동·가속도 데이터를 스트리밍하고, 호스트 PC에서 온라인 분류(Hoeffding Tree), 개념 드리프트 감지(ADWIN), 이상 탐지(Z-Score, Isolation Forest, Autoencoder), 필요 시 연합 학습까지 진행했다. 센서를 멈춘 상태에서 정상 기준을 학습한 뒤, 진동을 주어 이상을 유도해 탐지·분류기가 반응하는지 확인하는 흐름으로 진행했다.