5.3. RNN 구현
- Time RNN
- Truncated BPTT 방식을 적용하여 T개씩 처리
5.4. 시계열 데이터 처리 계층 구현
- RNNLM (RNN Language Model)
- RNN을 사용한 언어 모델
*Time Softmax with Loss 계층에서는 데이터 1개당 평균 손실을 구함
5.5. RNNLM 학습과 평가
- Perplexity : $L = -{1\over N}\sum\sum t \cdot logy \; , \quad perplexity=e^L$
- 확률의 역수로, 다음에 취할 수 있는 선택사항의 수(작을수록 좋음), 기하평균 분기 수
- RNNLM 학습
- 미니배치를 순차적으로 만들기
- 모델의 순전파, 역전파 호출
- optimizer로 가중치 갱신
- perplexity 구하기
Chapter6. 게이트가 추가된 RNN
6.1. RNN의 문제점
- 연속해서 노드들을 지나며 기울기 소실 또는 기울기 폭발이 일어남
- tanh → 기울기 소실
- MatMul → 기울기 소실, 폭발(특잇값의 최대치가 1보다 큰 경우 가능성이 높아짐)
- Gradients clipping
- $if \; \, \|\hat g\|\ge threshold: \\ \qquad \hat g={threshold\over \|\hat g\|}\hat g$
6.2. 기울기 소실과 LSTM
- gate
- 데이터와 기울기 흐름을 적절히 제어하는 메커니즘
- LSTM에서 기울기 소실이 일어나기 어려운 이유
- RNN과 달리 매 시각 다른 gate값을 아마다르 곱함
- 이 때, forget gate가 곱해지는데, 이는 이전 셀을 얼마나 잊어야하는지 판단하므로 메모리 셀의 기울기가 소실 없이 전파 됨
6.3. LSTM 구현
- LSTM 클래스
6.4. LSTM을 사용한 언어 모델
- LSTM을 사용한 언어모델의 학습
6.5. RNNLM 추가 개선
- LSTM 계층 다층화 → 모델의 표현력 향상
- Dropout → overfitting을 방지하여 범용성 향상
- weight tying → 가중치를 효율적으로 이용(매개변수 수 감소, overfitting 억제, 정확도 향상)
'3-2기 스터디 > NLP 입문' 카테고리의 다른 글
[9주차] 딥러닝을 이용한 자연어처리 입문 Chap.17 BERT (0) | 2022.05.30 |
---|---|
[7주차] 딥러닝을 이용한 자연어처리 입문 Chap.2 텍스트 전처리 (0) | 2022.05.30 |
[4주차] NLP Chapter 4. word2vec 속도 개선 ~ 5.2 RNN이란 (0) | 2022.05.02 |
[3주차] NLP Chapter3. word2vec (0) | 2022.04.22 |
[2주차] NLP Chapter2 - 자연어와 단어의 분산 표현 (0) | 2022.04.11 |
댓글