RNN 기본 강좌를 정리한다.
RNN 개념
음성인식, 자연어 같은 Sequence data일 경우 처리 네트워크
- 이전의 결과가 다음 series에 영향을 미쳐야 한다.
해당 그림을 풀어 놓으면 결과 state가 다음 연산에 영향을 미침. Series data에 적합한 모델
계산식화 하면
- old state (ht-1) 과 x를 input로 사용하여 new state (ht)를 구한다.
가장 기초적인 (Vanilla) RNN을 만들때 Wx를 사용한다. tanh는 sigmoid다른 형태이다.
- ht는 다음 rnn로 넘기는 값
- y는 w x ht하여 값을 구함
Weight값으 전체 cell에 나 똑같은 값을 사용한다.
RNN 예측 사용
예) 예제에서 helo를 넣었을 때 예측으로 hello 라고 예측하는 시스템을 RNN으로 만듦
- h,e,l,o를 1또는 0값의 벡터로 만들고 이전과 현재를 계산한다. 처음에는 0을 사용한다.
여기서 y값을 구한다.
softmax의 label(결과)를 취한다. 두번째 자리는 error가 발생. output layer의 값을 가지고 learning 하고 예측을 한다.
- language model - 연관 검색어 찾기
- Speech Recognition
- Machine Translation
- Conversation Modeling/Question Answering
- Image/Video Captioning
- Image/Music/Dance Generation
RNN을 어떻게 사용하느냐가 관건이다.
Multi Layer RNN을 사용할 수도 있다.
RNN에서 Vanilla Model가 복잡하면
- Long Short Term Memory (LSTM)을 쓰거나
- GRU by Cho et al. 2014를 쓸수도 있다.
참조
'Deep Learning > NN by Sung Kim' 카테고리의 다른 글
[Reinforcement Learning] 강화학습 (0) | 2018.07.12 |
---|---|
[RNN] Basic & Training 하기 (0) | 2018.07.11 |
[CNN] Class, tf.layers, Ensemble (0) | 2018.07.11 |
[CNN] MNIST 99% 도전 (0) | 2018.07.11 |
[CNN] Tensorflow CNN 기본 (0) | 2018.07.11 |