35분
LSTM 기반 RUL 예측 (PyTorch)
Day 4: RUL 예측 (잔여수명 예측)
LSTM 기반 RUL 예측 (PyTorch)
설비 예지보전 > Day 4: RUL 예측 (잔여수명 예측)
학습 목표
- LSTM으로 시계열 센서 데이터에서 RUL을 예측할 수 있다
- 시퀀스 윈도잉으로 학습 데이터를 구성할 수 있다
- 학습 루프와 Validation을 구현하고 예측 결과를 시각화할 수 있다
LSTM RUL 예측
센서 시퀀스를 입력으로 RUL(숫자)을 출력하는 회귀 모델.
데이터 구성
[시퀀스 윈도잉]
원본: cycle 1, 2, 3, ..., 200 (엔진 1대)
window_size = 30
Sample 1: [cycle 1~30] → RUL at cycle 30
Sample 2: [cycle 2~31] → RUL at cycle 31
...
Sample N: [cycle 171~200] → RUL at cycle 200 (=0)
각 sample shape: (30, 8) → 30 timesteps x 8 sensorsLSTM 구조
Input: (batch, seq_len=30, features=8)
↓
LSTM(8, 64, num_layers=2, bidirectional=True)
↓
last hidden: (batch, 128)
↓
FC(128, 32) + ReLU + Dropout
↓
FC(32, 1) → RUL (회귀)아래 코드를 lstm_rul.py로 저장하고 실행하세요.
에디터 로딩 중...
힌트 보기
- • 시퀀스 윈도잉 시 RUL은 윈도우 마지막 시점의 값을 사용한다
- • 양방향 LSTM 의 최종 상태는 torch.cat([h_n[-2], h_n[-1]], dim=1) 로 꺼낸다. lstm_out[:, -1, :] 은 역방향 절반이 마지막 한 스텝만 본 상태다
- • 양방향은 창이 다 채워진 뒤에 판정할 때만 쓴다 — 실시간 스트림에서는 창이 닫혀야 예측할 수 있다
- • ReduceLROnPlateau로 학습률을 자동 조절하면 수렴이 안정적이다
- • 출력층은 선형으로 두고 예측값을 [0, 125] 로 클리핑한다. 출력층에 ReLU 를 두면 사전활성이 음수로 몰릴 때 예측이 0 에 고정될 수 있다
AI로 학습하기 — 꿀팁
LSTM RUL 시퀀스 구성 검증AI 학습 팁
AI에게 LSTM RUL 예측 코드의 시퀀스 윈도잉에서 미래 데이터가 과거 윈도우에 유입되는 타임 리크를 탐지해달라고 요청하세요.
이 PyTorch LSTM RUL 예측 코드에서 시퀀스 윈도잉 로직을 검토해줘. (1) 각 윈도우의 마지막 타임스텝이 예측 대상 레이블(RUL)과 겹치는 타임 리크 여부, (2) 엔진 ID 경계에서 윈도우 혼합 여부, (3) 배치 생성 시 순서 셔플이 시계열 연속성을 깨는지 확인하고 수정 방안을 제안해줘.
이 팁이 도움이 됐나요?