사용법 튜토리얼

AI로 로봇 이상 탐지 시스템 만드는 법 — 오토인코더 기반 실전 가이드

zeus0317 2026. 3. 25. 10:23

로봇이 고장나기 전에 미리 알 수 있다면?

공장에서 로봇이 갑자기 멈추면 생산라인 전체가 중단되고 엄청난 손실이 발생해요. 만약 로봇이 고장나기 전에 이상 징후를 미리 감지할 수 있다면 얼마나 좋을까요?

오늘 소개할 오토인코더(Autoencoder)는 바로 이런 이상 탐지에 특화된 딥러닝 모델이에요. 정상 상태를 학습한 후, 정상과 다른 패턴이 감지되면 이상으로 판단하는 방식이죠. 별도의 고장 데이터 없이도 이상을 탐지할 수 있어서 실무에서 매우 유용합니다. 파이썬 코드와 함께 단계별로 따라해 볼게요!

Step 1 — 개발 환경 준비하기

필요한 라이브러리 설치

먼저 터미널에서 필요한 라이브러리를 설치합니다.

pip install tensorflow numpy pandas matplotlib scikit-learn

TensorFlow로 오토인코더 모델을 만들고, numpy와 pandas로 데이터를 처리하며, matplotlib으로 시각화할 거예요. scikit-learn은 데이터 전처리에 사용합니다.

Step 2 — 로봇 센서 데이터 이해하기

실제 로봇에서는 온도, 진동, 전류, 속도, 토크 같은 다양한 센서 데이터가 수집돼요. 이 튜토리얼에서는 이해하기 쉽게 시뮬레이션 데이터를 만들어 사용하겠습니다.

정상 상태의 데이터는 일정한 범위 내에서 변동하지만, 이상 상태에서는 비정상적인 패턴을 보여요. 예를 들어 베어링이 마모되면 진동 데이터가 갑자기 증가하거나 불규칙해집니다.

파이썬에서 numpy를 사용해 정상 데이터와 이상 데이터를 각각 생성합니다. 정상 데이터는 가우시안 분포를 따르게 하고, 이상 데이터는 평균이나 분산을 크게 변화시켜 만들어요.

Step 3 — 오토인코더 모델 설계하기

오토인코더의 작동 원리

오토인코더는 입력 데이터를 압축했다가 다시 복원하는 구조예요. 인코더가 데이터를 저차원으로 압축하고, 디코더가 다시 원래 차원으로 복원합니다. 정상 데이터로만 학습하면 정상 패턴은 잘 복원하지만, 이상 데이터는 제대로 복원하지 못해요. 이 복원 오차(Reconstruction Error)가 크면 이상으로 판단하는 거죠.

TensorFlow의 Keras API를 사용해서 오토인코더를 만들어요. 인코더는 입력층에서 시작해 점점 뉴런 수를 줄여가며 병목층(Bottleneck)까지 도달합니다. 디코더는 반대로 뉴런 수를 늘려가며 원래 차원으로 복원해요.

예를 들어 입력 차원이 5개(온도, 진동, 전류, 속도, 토크)라면 인코더는 5 → 3 → 2로 압축하고, 디코더는 2 → 3 → 5로 복원하는 구조입니다.

Step 4 — 모델 학습하기

핵심 포인트는 정상 데이터로만 학습한다는 점이에요. 모델이 정상 패턴을 완벽하게 학습하면, 이상 패턴은 자연스럽게 높은 복원 오차를 보이게 됩니다.

학습 데이터를 StandardScaler로 정규화한 후 모델에 입력합니다. 손실 함수는 MSE(Mean Squared Error)를 사용하고, 에포크는 100~200회 정도면 충분해요. 학습이 진행되면서 손실 값이 점점 줄어드는 것을 확인할 수 있습니다.

학습 완료 후에는 정상 데이터의 복원 오차 분포를 확인해요. 이 분포에서 상위 95번째 백분위수(95th percentile)를 임계값(Threshold)으로 설정하면 됩니다. 이 값을 초과하는 데이터는 이상으로 분류하는 거죠.

Step 5 — 이상 탐지 실행하기

학습된 모델에 새로운 데이터를 넣어서 복원 오차를 계산합니다. 복원 오차가 임계값보다 크면 이상으로 판단해요. matplotlib으로 시간에 따른 복원 오차를 그래프로 그리면, 이상이 발생한 시점을 명확하게 확인할 수 있습니다.

정상 구간에서는 복원 오차가 임계값 아래에 머물지만, 이상이 발생하면 오차가 급격히 튀어오르는 것을 볼 수 있어요. 이렇게 감지된 이상 신호를 바탕으로 관리자에게 알림을 보내거나, 로봇을 자동으로 정지시키는 시스템을 구축할 수 있습니다.

실시간 모니터링 시스템 구축 팁

실제 현장에서 사용하려면 실시간 모니터링이 필요해요. 로봇 센서에서 데이터를 스트리밍으로 받아서 모델에 실시간으로 입력하고, 복원 오차를 지속적으로 모니터링합니다. 슬라이딩 윈도우 방식을 사용하면 단일 시점이 아닌 일정 구간의 패턴을 분석할 수 있어서 더 정확한 탐지가 가능해요.

마무리 — 예지보전의 시작

오토인코더 기반 이상 탐지는 로봇 예지보전(Predictive Maintenance)의 핵심 기술이에요. 고장이 나기 전에 미리 이상을 감지해서 사전에 대응할 수 있으니까요.

이번 튜토리얼에서 만든 기본 모델을 발전시키면 더 정교한 시스템을 구축할 수 있어요. LSTM 오토인코더를 사용하면 시계열 패턴을 더 잘 포착하고, VAE(Variational Autoencoder)를 사용하면 이상의 종류까지 분류할 수 있습니다. 로봇 관리에 AI를 도입하고 싶다면 이상 탐지부터 시작해보세요!