본문 바로가기
Programming/Deep learning

lab 12-6 RNN with time series data

by OKOK 2018. 5. 6.

타임 시리즈 데이터라는 것은 시간에 따라서 값이 변하는 것입니다. 타이. 벨류가 될 것 입니다. 주식 시장의 시장의 가격. 오픈가 종가. 체결량. 상한가, 하한가 가격 데이터를 가지고 있을 것 입니다. 타임시리즈라고 할 수 있습니다. 


Many to one 이 되겠습니다. 7일 정도의 데이터 쭉 있고, 8일째 되는 값이 궁금한 것입니다. 데이터를 가지고 학습하게 됩니다. 생각 해 볼 점들 입력의 디멘션, 시퀀스의 길이는 얼마인지, 출력의 히든 사이즈는 얼마인지 알아야 합니다.

아웃풋 1이 되겠습니다. 인풋은 5가 되고 시퀀스는 7이 되겠습니다. fc를 연결하면 원하는대로 만들 수 있습니다.


히든 사이즈를 원하는대로 설정하고 아웃풋을 도출해 냅니다. 마지막 것만 사용합니다. 그리고 풀리커넥티드의 최종 출력은 1이 됩니다. Y_pred 이 됩니다. 트레이닝 하는 것을 살펴봅니다. 로스 출력해보면 됩니다. 화면에 학습을 통해서 출력이 될 것 입니다.  플랏을 통해서 예측값과 트루값을 출력해봅니다. 


CNN에서도 같은 문제점이 발생했는데, 정보를 사용하는 지점 사이 거리가 멀 경우 역전파시 그래디언트가 점차 줄어 학습 능력이 크게 저하됩니다. vanishing gradient problem 이 발생!

cell state 는 일종의 컨베이어 벨트 역할을 합니다. 덕분에 state 가 꽤 오래 경과하더라도 그래디언트가 비교적 전파가 잘 됩니다. 과거 정보를 잊기를 위한 게이트. 현재 정보를 기억하기 위한 게이트 등의 연산 과정이 추가 됩니다.