1제조 시계열 데이터의 특성

제조 환경의 시계열 데이터는 일반적인 금융이나 기상 데이터와 다른 고유한 특성을 가집니다. 고주파 샘플링(ms 단위), 다중 센서 동시 수집, 주기적 패턴(교대 근무, 배치 공정), 그리고 돌발적인 이상 상황이 혼재합니다.

제조 시계열 데이터 특성
샘플링 주기별 데이터 유형
고속 진동 센서
ms (1000Hz+)
베어링 고장 예측
온도/압력 센서
초 (1Hz)
공정 제어
품질 검사 결과
분 (배치별)
불량 예측
설비 가동 상태
시간 (교대별)
OEE 분석
데이터 패턴
정상 운전 돌발 이상 가동시작 Warm-up 시간 →
비정상성Non-stationary: 계절성, 트렌드
다변량Multivariate: 수십~수백 개 센서
불균형Imbalanced: 정상 >> 이상 (99:1+)
결측치센서 고장, 네트워크 단절

고주파 샘플링

진동, 음향 센서는 ms 단위로 데이터 수집. 대용량 스트림 처리 필수

다변량 분석

수십~수백 개 센서 간 상관관계가 이상 탐지의 핵심

데이터 불균형

정상:이상 비율이 극단적. 특수 학습 기법 필요

실시간 처리

지연 없는 이상 탐지를 위한 스트리밍 아키텍처

2시계열 데이터 전처리

제조 센서 데이터의 품질은 모델 성능에 직접적인 영향을 미칩니다. 체계적인 전처리 파이프라인을 구축하여 결측치, 이상치, 노이즈를 처리합니다.

시계열 전처리 파이프라인 (수도코드)
# 제조 시계열 데이터 전처리 흐름 def preprocess_pipeline(sensor_data): # 1단계: 타임스탬프 정리 data = sort_by_timestamp(sensor_data) data = remove_duplicates(data) # 2단계: 결측치 처리 (비율에 따라) if missing_ratio < 5%: interpolate(method='linear') elif missing_ratio < 20%: interpolate(method='spline') else: forward_fill() + backward_fill() # 3단계: 이상치 처리 (MAD 기반) outliers = detect_by_mad(threshold=3.0) winsorize(outliers, lower=1%, upper=99%) # 4단계: 노이즈 필터링 apply_lowpass_filter(cutoff=100Hz, type='butterworth') # 5단계: 리샘플링 (균일한 간격) resample(target_freq='1ms') # 6단계: 정규화 normalize(method='robust_scaler') return processed_data # 시퀀스 생성 (슬라이딩 윈도우) sequences = create_sequences(data, seq_length=100, stride=10) # 주파수 특징 추출 (FFT) features = extract_fft_features(data) # 저/중/고주파 에너지

3LSTM 기반 예측 모델

LSTM(Long Short-Term Memory)은 장기 의존성을 학습할 수 있어 제조 시계열 예측에 널리 사용됩니다. 다변량 센서 데이터의 이상 탐지와 잔여 수명(RUL) 예측에 적합합니다.

LSTM 모델 구조 (수도코드)
# 1. LSTM 예측 모델 (RUL 예측, 품질 예측) LSTMPredictor: 입력 → LSTM(hidden=128, layers=2, bidirectional) → Self-Attention → FC Layer → 출력 # 2. LSTM 오토인코더 (이상 탐지) LSTMAutoencoder: 인코더: 입력 → LSTM → Latent(16차원) 디코더: Latent → LSTM → 재구성 이상점수 = MSE(원본, 재구성) # 학습 흐름 for epoch in epochs: for batch in dataloader: output = model(batch) loss = MSE(output, target) loss.backward() optimizer.step() # 하이퍼파라미터 예시 input_dim = 10 # 센서 수 seq_length = 100 # 시퀀스 길이 hidden_dim = 64 # LSTM 히든 크기 num_layers = 2 # LSTM 레이어 수

4Transformer 기반 모델

Transformer 아키텍처는 셀프 어텐션을 통해 시퀀스 내 장거리 의존성을 효과적으로 포착합니다. 특히 다변량 센서 데이터에서 센서 간 상관관계를 학습하는 데 강점이 있습니다.

Transformer 모델 구조 (수도코드)
# 1. TimeSeriesTransformer (기본) 입력 → Linear Embedding → Positional Encoding → Transformer Encoder (4 layers, 8 heads) → Output Layer → 예측값 # 2. Informer (장기 예측) 특징: ProbSparse Attention으로 O(L log L) 복잡도 인코더 → 디코더 구조, 장기 예측(24+ 스텝)에 적합 # 3. PatchTST (최신) 시퀀스를 패치로 분할 → 패치별 임베딩 → Transformer 인코딩 → 예측 매우 긴 시퀀스에서도 효율적 # 모델 선택 기준 ┌─────────────────┬───────────────────────────┐ │ 시퀀스 길이 │ 추천 모델 │ ├─────────────────┼───────────────────────────┤ │ 짧음 (<100) │ LSTM │ │ 중간 (100-500) │ TimeSeriesTransformer │ │ 긴 (500+) │ PatchTST, Informer │ └─────────────────┴───────────────────────────┘
모델 선택 가이드

LSTM: 짧은 시퀀스, 적은 데이터, 빠른 추론 필요시 | Transformer: 긴 시퀀스, 다변량, 충분한 데이터 | PatchTST: 매우 긴 시퀀스 (수천 스텝), 채널 독립 학습

5이상 탐지 구현

제조 환경에서 시계열 이상 탐지는 설비 고장 예방과 품질 관리의 핵심입니다. 재구성 오류 기반 방법과 예측 오류 기반 방법을 결합하여 강건한 이상 탐지 시스템을 구축합니다.

이상 탐지 시스템 (수도코드)
# 1. 재구성 기반 이상 탐지 def detect_anomaly(data): reconstructed = autoencoder.reconstruct(data) anomaly_score = MSE(data, reconstructed) return anomaly_score > threshold # 2. 임계값 설정 (정상 데이터로) scores = compute_scores(normal_data) threshold = percentile(scores, 95) # 3. 이상 유형별 탐지 포인트 이상: 3-sigma rule (로컬 이상) 집단 이상: 연속 5+ 스텝 이상 구간 # 4. 다중 모달 융합 (센서 + 이미지) fused_score = 0.6 * ts_score + 0.4 * image_score is_anomaly = fused_score > threshold # 평가 메트릭 Precision: 탐지 중 실제 이상 비율 Recall: 실제 이상 중 탐지 비율 (제조에서 중요) F1-Score: 조화 평균
이상 탐지 평가 메트릭

Precision: 탐지된 이상 중 실제 이상 비율 | Recall: 실제 이상 중 탐지된 비율 | F1-Score: Precision과 Recall의 조화 평균 | 제조 환경에서는 False Negative(미탐지)가 치명적이므로 Recall을 우선시