피드 포워드 신경망 언어 모델(NNLM) (tistory.com)
피드 포워드 신경망 언어 모델(NNLM)
피드 포워드 신경망 언어 모델(Feed Forward Neural Network Language Model) - 신경망 언어 모델의 시초 피드 포워드 신경망(FFNN) - 오직 입력층에서 출력층 방향으로 연산이 전개되는 신경망 기존 N-gram 언어
tgwon.tistory.com
순환 신경망(RNN)
RNN RNN(Recurrent Neural Network)이란? - 입력과 출력을 시퀀스 단위로 처리하는 시퀀스 모델 - 가장 기본적인 인공신경망 시퀀스 모델 시퀀스 모델이란?? - 연속적인 입력으로 부터 연속적인 출력을 생
tgwon.tistory.com
n-gram 언어 모델과 NNLM의 한계
- 다음 단어 예측을 위해 정해진 n개의 단어만 참고했음, 고정된 개수의 단어만을 입력으로 받아야한다는 단점
-> RNNLM은 이 한계를 극복, 입력의 길이를 고정할 필요 X
RNNLM
- RNN 언어 모델(Recurrent Neural Network Language Model, RNNLM)

위 그림은 'what will the fat cat sit on' 라는 문장이 훈련 코퍼스에 있을 때,
RNNLM이 이전 시점의 단어들과 현재 시점의 단어로 다음 단어를 예측하는 모습
RNNLM 테스트 (실제 사용할 때)
-> RNNLM은 예측 과정에서 이전 시점의 출력을 현재 시점의 입력으로 사용
ex) what을 입력받으면, will을 예측하고 이 will은 다음 시점의 입력이 되어 the를 예측, the는 또 다시 다음 시점의 입력이 되어 fat을 예측
..
..
결과적으로 네번째 시점의 cat은 앞서 나온 what, will, the, fat이라는 시퀀스로 인해 결정된 단어
보통 RNN은 t-1 시점에서의 출력 값을 t 시점의 입력값으로 사용한다
RNNLM 훈련
- 테스트 과정과 다름. 이전 시점의 예측 결과를 다음 시점의 입력으로 사용하는 것이 아님
ex)
훈련 코퍼스 what will the fat cat sit on 가 있다면,
모델의 입력이 what will the fat cat sit 일 때,
모델이 will the fat cat sit on 을 예측하도록 훈련 시킴
각 시점의 레이블 : will, the, fat, cat, sit, on
각 시점의 입력과 레이블(x,y)
(what, will)
(will, the)
...
(sit, on)
즉, t 시점의 레이블을 t+1 시점의 입력으로 사용
-> 교사 강요(teacher forcing)
- 테스트 과정에서 t 시점의 출력이 t+1 시점의 입력으로 사용되는 RNN 모델을 훈련시킬 때 사용하는 훈련 기법
- t 시점에서 예측한 값을 t+1 시점에 입력으로 사용하지 않고, t 시점의 레이블(실제값)을 t+1 시점의 입력으로 사용
왜 이렇게 할까?
- t 시점의 예측값이 실제값과 다를 수 있음
- 한 번 잘못 예측하면 뒤에서의 예측까지 영향을 미쳐 훈련시간이 느려지게 됨
정확한 데이터로 훈련하기 위해서 예측값을 다음 시점으로 넘기지 않고, 실제값을 매번 입력값으로 사용함
RNN을 좀 더 빠르고 높은 성능이 되게끔 훈련시킬 수 있음

RNNLM 구조

Input layer
- t 시점의 단어의 원 핫 벡터가 들어옴
Embedding layer
- NNLM 에서 언급한 투사층(projection layer)
- 가중치 행렬 lookup table을 통해 임베딩 벡터로 변환
Hidden layer
- 임베딩 벡터를 이전 시점의 은닉 상태인 h(t−1)과 함께 다음의 연산을 하여 현재 시점의 은닉 상태 h(t)를 계산
- 아래 그림과 같은 계산을 통해 h(t)를 계산

Output layer
- 출력층에서는 아래 그림처럼 소프트맥스 함수를 통해 값을 출력

학습 되는 가중치는?
-> Wx, Wh, Wy, lookup table을 수행하는 가중치 행렬
'Python > NLP' 카테고리의 다른 글
| 워드투벡터(Word2Vec) (0) | 2023.03.20 |
|---|---|
| 워드 임베딩이란 (0) | 2023.03.20 |
| 순환 신경망(RNN) (0) | 2023.03.14 |
| 피드 포워드 신경망 언어 모델(NNLM) (0) | 2023.03.14 |
| 펄플렉서티(Perplexity, PPL) (0) | 2023.03.14 |