Goal
이번 포스팅에서는 데이터 전처리 방법과 실제 구현 코드에 대해서 설명한다.
본 시리즈에서 사용하는 데이터 셋은 19년도에 인하공업전문대학교 실험실에서 취득한 에스컬레이터 모형의 체인 소음 데이터를 사용한다.
<데이터셋 상세 내용>
- 데이터 형태 : 1열짜리 소음 데이터 (엑셀 파일)
- 샘플링 레이트 : 20Khz
- 데이터 양 : 1,200만개 (약 10분동안 취득)
- 레이블 : 정상 데이터 / 감속기 기어의 이(Tooth)가 1개 빠진 상태에서 취득한 이상 소음 (검증 / 테스트 시에만 사용)
실제 구현된 코드를 보기 전 로우 데이터를 LSTM AE 네트워크의 입력데이터로 만들기 위한 세가지 전처리 과정을 소개한다.
로우 데이터는 1,200만 개의 1열짜리 형태로 이루어져 있는데, 1초 동안 들어온 소음 데이터를 1개의 입력 데이터로 사용하기 위해 20,000개씩 600열로 형태를 변환하였다.
데이터 형태 변환 흐름 예시
학습 시 알고리즘은 데이터가 가진 특성을 비교해서 정상 데이터의 패턴을 찾는다.
그런데, 데이터가 가진 특징(Feature)의 스케일이 차이가 들쑥날쑥하면 학습에 부정적인 영향을 끼치게 된다.
이런 문제를 방지하고자 데이터의 특징이 동일한 정도의 스케일(중요도)로 반영되도록 하는 것이 정규화(Normalization)이다.
정규화 방법에는 Min-Max 정규화, Z-score 정규화, 표준 정규화(Robust) 등 많은 방법이 있는데, 본 포스팅에서는 가장 많이 사용되는 Z-score 정규화를 진행했다.
출처 : https://www.geeksforgeeks.org/standardscaler-minmaxscaler-and-robustscaler-techniques-ml/
LSTM AE는 네트워크 셀이 LSTM 셀로 되어있다.2번까지 진행된 데이터는 2D 형태이기 때문에 LSTM 셀의 입력 형태로 맞추기 위해 각 데이터셋을 아래와 같이 3차원 형태로 변환한다.
다음 포스팅에서는 전처리한 데이터를 학습하는 과정을 다룬다.
안녕하세요! 포스트 잘 잘 읽었습니다. 혹시 사용하신 데이터셋은 어디서 구할 수 있는지 여쭤보고 싶습니다. 감사합니다.