본문 바로가기
  • GDG on campus Ewha Tech Blog
3-2기 스터디/NLP 입문

[5주차] NLP Chapter 5.2 RNN이란 ~ 6. 게이트가 추가된 RNN

by chaerin314 2022. 5. 2.

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 학습
    1. 미니배치를 순차적으로 만들기
    2. 모델의 순전파, 역전파 호출
    3. optimizer로 가중치 갱신
    4. 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 억제, 정확도 향상)

댓글