RNN은 복잡하고 발전 과정상 다양한 형태가 있다보니 이해가 어려웠던 경험이 있어 이번 장은 부담이 됐는데 다행히(?) 짧게 끝났다.
3장. 순환 신경망
- 트랜스포머가 대세지만 RNN은 순차 처리 개념, 트랜스포머 근간의 수학을 쉽게 이해할 수 있게 해줌.
엘만(Elman) RNN
- RNN의 특징(FF와 다른 점) : 유닛 사이의 루프, 다음 단계로 정보를 전달할 수 있음, 시계열, NLP 등에 적합
- elman rnn은 임베딩 벡터의 시퀀스를 한 번에 하나씩 처리
- 여러 층(cell, layer, unit …)으로 구성
미니 배치 경사 하강법
- 데이터의 작은 부분집합에서 도함수를 계산하여 학습 속도를 높이고 메모리 사용량을 줄이는 방법
- 경사 하강법
- 훈련 세트에서 미니 배치를 추출
- 이를 신경망에 통과
- 손실을 계산
- 그레이디언트를 계산
- 모델 파라미터를 업데이트
- 1로 돌아가세요
Elman RNN 구현
- pass
임베딩 층
- 패딩 토큰
RNN 모델 훈련
- rnn의 훈련 데이터 : 타겟 = 샘플 시퀀스를 한 토큰씩 밀어서 구성
- context window : 학습에도 영향, window 크기의 청크로 분할
- 훈련 과정에서 perplexity 낮아짐.
- LSTM 도 개선은 했지만 긴 시퀀스를 다루는데 제한