: 연속적인 데이터들의 의미를 파악할 때, 우리가 기존에 사용하였던 NN이나 CNN 구조를 사용하기에는 어려움이 많음
따라서 이전의 연산 결과가 현재의 연산 결과에 영향을 미치는 구조인 RNN을 만듦
각각의 RNN cell에서 출력값을 도출
RNN의 연산식
위 식을 보면, 현재 입력 값과 과거상태가 현재상태에 영향을 미치는 것을 알 수 있음
가중치(W)는 총 3가지가 존재
3가지의 가중치는 전체 cell에서 동일한 값임
"hello"라는 단어를 학습시켜 "h"를 입력 하면 "e"가 출력되도록 하고싶을때,
다음에 오는 글자를 예측하는 시스템인 language model을 만들면 된다
One-hot Encoding 방식 사용
첫번째 hidden layer는 이전 state 값이 없으므로 0으로 설정
이 과정을 반복 실행
마지막으로 y를 구함
-> y값에 softmax함수를 적용하고, 예측값을 최대값으로 설정하면 Cost값과 정확도를 계산할 수 있음
다양한 방법으로 활용 가능
RNN의 다양한 구조
one to one : 기본 RNN 구조
one to many :
ex) Image Captioning - 이미지를 통해 이미지를 설명하는 문장 만들기
many to one :
ex) Sentiment Classification - 문장을 통해 감정 분석하기
many to many 1:
ex) Maching Translation - 문장을 다른 언어로 번역하기
many to many 2:
ex) Video classification on frame level - 비디오를 프레임 단위로 설명하기
더 깊은 구조로도 설계 가능
Long Short Term Memory(LSTM)
GRU by Cho et al. 2014