Research Notes

[DL] Recurrent Neural Networks (RNN) 본문

Study/Deep Learning

[DL] Recurrent Neural Networks (RNN)

jiachoi 2023. 7. 3. 11:44

▶ Sequence data

: 우리가 사용하는 시퀀스 데이터가 많다. 한 단어만으로 이루어지는 것이 아니라 연속적으로 이루어져 있다는 뜻.(한 단어를 이해하기 위해서는 이전의 단어를 이해해야 하는 것과 같음) 기존의 Neural Net과 CNN은 Sequence data를 사용할 수 없다.

- ex) 음성인식

RNN의 형태. 한 데이터가 다른데이터의 입력에 영향을 끼치는 Series Data의 형태를 띄고 있다.

RNN

- State의 개념 중요.

: 이전의 state가 입력으로 사용되고(ht-1), 새로운 time step(y)을 벡터 형태로 입력한다.

→ 이러한 형태가 거의 모든 RNN의 구조에 적용됨.

모든 RNN은 오른쪽의 형태를 띈다.

- RNN의 연산방법

· WX와 같은 형태로 각각에 가중치를 만들어준다.

· y값은 계산된 H에다가 다른 W를 곱해준다. (y가 몇개의 vector로 나올것인지는 W가 어떤 형태인지에 따라 정해짐)

- RNN의 연산 예제(Character-level language model ; 자연어 모델)

: 입력된 단어를 통해 원하는 말을 예측하자.

1) 단어는 4개 존재하여 각각을 vector로 표현. "h"를 One-hot encoding을 사용하여 표현.

2) 입력할 input 값을 RNN 셀에 입력. 가장 첫번째 hidden layer에는 이전의 time step 값이 없어서 0 으로 계산, 현재의 time step 값만 입력

3) 그다음 셀에서는 이전의 time step 값과 현재의 time step 값을 입력.

4) 마지막 y값에서 state를 뽑아낼때는 W에 shape에 따라 곱함.

5) 마지막 cost 함수는 softmax(다중분류)로 학습하여 자연어 모델 예측.

- RNN의 활용 방안

: Language Modeling, Speech Recognition, Machine Translation, Conversation Modeling, Image/Video Captioning, Image/Music/Dance Generation (image --> sequence of words)