시퀀스 데이터
이전의 RNN에서 계산한 결과값 ht-1 과 x 를 가지고 새로운 값 ht를 계산한다.
위의 function인 ht는 모든 연산 단계에 있어서 동일하기 때문에 오른쪽 그림처럼 하나로 표시하기도 한다.전체 셀의 Weight는 똑같은 값으로 학습한다.
h를 넣으면 e, e를 넣으면 l 이런식으로 hello라는 글자를 추천해주는 것처럼 해주는 것이다.
Hot one encoding으로 구현할 수도 있다.
h, e, l, o 를 multi label인 것처럼 hot one encoding을 해서 처리할 수 있다.위의 이미지처럼 처음 값이 (0.3, -0.1, 0.9) 로 주어졌다고 가정하면(임의의 값이므로 달라질 수 있음), input layer를 계속 거치면서 hidden layer의 값은 이전 레이어의 결과에 영향을 받으면서 이어진다.(덧셈 연산)
벡타가 몇 개 될지는 w의 값에 따라 결정된다.(위의 경우 Vocabulary) 그리고 W_hy를 곱한 값으로 연산하면 된다.
위 이미지에서 처음엔 e 가 제대로 예측되었지만 두번째 값을 보면 실제 값이 아니라 그 아래 값으로 되었다. 이 오차는 cost 함수로 학습시키면 된다.
언어 처리, 스피치, 번역,
대화형 모델, 문답형 모델, 이미지나 비디오 캡션
왼쪽 첫번째의 기존 모델과 달리 RNN은 다양한 형태로 사용될 수 있다.
왼쪽 두번째의 경우 점점 학습하면서 이미지 캡션을 달 수 있다.(ex. 나는 모자를 쓰고있다.
세번째의 경우 Sentiment Classification : 문자열 입력받아서 하나의 출력. 이 문장은 슬픈데, 기쁜데 이런거
네번째는 Mathine Translation : 어떤 값을 입력 받고 문자열로 출력
다섯 번 째는 Video Classification on frame level : 비디오 입력받아서 설명하는 경우
RNN에서는 깊고 넓게 학습할 수 있다. 그래서 이런 경우 많이 복잡해질 수 있는데 이걸 극복하기 위해서 Long Short Term Memory(LSTM)을 많이
사용한다. 또는 GRU라는 걸 많이 쓴다.