6-21 LSTM RNN에 의한 Low Pass Filtering 과정에서 진폭의 영향

26일 전

최근 출간한 “파이선 코딩 초보자를 위한 Scikit∙PyTorch 머신러닝”의 6장-19 RNN 편에서 이미 고주파 노이즈가 섞인 데이터의 저주파 필터링에 관해서 다루어 보았다. 이번에는 동일한 문제에 대해서 학습용 저주파 파형의 진폭을 변경시켜 학습시킬 경우 일어나는 영향을 조사해 보기로 한다.

noname01.png

2가지 파형 즉 저주파인 1.0Sin(2.0t) 와 상대적으로 고주파인 0.5Sin(50t)를 혼합한 파형을 엑셀에서 1000개 A 컬럼 데이타로 생성한다. 이어서 다시 0.5Sin(2.0t) 파형으로 다시 숫자 컬럼 데이타 B를 생성해서 CSV 포맷으로 저장한다. 시간 t 의 간격은 0.01로 설정한다.

아울러 RNN 필터링 코드를 엑셀 CSV 데이터 파일과 같은 폴더에 두도록 한다. RNN 필터링 코드는 6-19에서 사용했던 rnn_low_pass_filtering.py를 그대로 사용하기로 한다. 위 그림은 1000개의 데이터에서 20% 즉 200개를 학습에 사용한 결과이다.

2가지 파형이 혼합된 파형에서 Sin(2.0t) 에 해당하는 파형만 필터링 하기로 하자. RNN 필터링 과정에서 진폭(Amplitude) 의 영향을 조사하기 위해 컬럼 데이터 B는 1.0Sin(2.0*t) 파형의 진폭을 0.5로 바꾸어 학습시킨 후 제대로 저주파 필터링이 되는지 결과를 관찰해 보도록 하자.

위 그림의 오른 쪽 필터링 결과를 관찰해 보면 주파수 자체는 정확히 예측되었지만 필터링 된 파형의 진폭이 원래 1.0 이었음에 반해 학습 파형의 0.5에 연동이 되어 버려 진폭이 0.5인 저주파 파형이 얻어짐을 알 수 있다.

마나마인로고.png

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT