[패스트 캠퍼스] 김기현의 딥러닝을 활용한 자연어생성 올인원 패키지 Online.
Ch 02. Language Modeling
08. RNN을 활용한 LM
09. Perplexity and Cross Entropy
10. Autoregressive and Teacher Forcing
강의를 듣고 작성하였다.
(혹시 본 포스팅이 저작권 등의 문제가 있다면 알려주세요. 바로 내리도록 하겠습니다.
개인 공부 후 언제든지 다시 찾아볼 용도로 작성하고 있습니다.)
Neural Language Model
👉 Unseen Word Sequence에 대해 잘한다.
즉, generalization을 잘한다.
n-gram에서는 단어들이 discrete symbols로 취급이 돼서 잘 안됐던 것들이 딥러닝을 적용하고 나선 잘되기 시작!!!
우리가 찾는 neural network의 weight parameter는 데이터셋에 대한 log likelihood를 maximize하도록 하는 $\theta$이다.
negative log likelihood를 minimize하기 위해 gradient descent를 하는데, log likelihood는 cross entropy와 같고 cross entropy는 log softmax와 같다.
위에서처럼 $x_t$는 원핫벡터여서 $\hat{x_t}$과 곱해지면 한개의 값이 나오는데 이것이 cross entropy 구하는 과정과 똑같다고 들은 것 같다.
그리고 $\hat{x_t}$는 다음과 같이 이전 time-step의 단어가 들어오고 이전 time-step의 hidden state가 모델에 들어와서 계산이 된다.
이 과정을 아래 필기로 다시 보면, 단어가 embedding layer를 통과하고 이전 time-step의 hidden state를 가지고 rnn layer를 통과하고 W(weight?)와 선형결합 한 다음에 softmax 통과한다.
$|\hat{x_t}| = (bs, 1, hs)*(hs, |v|) = (bs, |v|)$
$\hat{x_t}$는 문장별(배치사이즈) 단어별 확률값을 의미한다.
- Loss Fucntion NLM
- minimize negative log-likelihood
- minimize cross entropy
- 둘다 같은 의미
Perplexity와 Entropy 관계 → minimize PPL = minimize cross entropy = minimize negative log-likelihood
위와 같이
$logPPL(x_{1:n};\theta) \approx H(P,P_{\theta})$이기 때문에
$exp H(P, P_{\theta}) \approx PPL(x_{1:n};\theta)$라고 생각할 수 있다.
- PPL을 minimize하는게 좋은 언어모델이었으니,
- exp Cross entropy를 minimize하는 문제로 생각할 수 있고
- 이는 그냥 Cross entropy를 minimize하는 것이라고 볼 수도 있다.
Autoregressive: 자연어처리하면서 항상 겪게되는 문제
1. Non-autoregressive (Non-generative)
- 현재 상태가 앞/뒤 상태를 통해 정해지는 경우
- 문장을 다 읽어야 주제 or 감정을 알 수 있다.
- Bidirectional RNN
2. Autoregressive (방향성 존재 과거→현재)
- 현재 상태가 과거에 의존하여 정해지는 경우
- 과거 자신의 상태를 참조하여 현재 자신의 상태를 업데이트
- NLG 같은 One-to-Many
- Bidirectional RNN 사용불가
왜 문제가 될까??
앞에꺼 예측한 상태를 그대로 반영하여 다음꺼 예측한다면, 만약 앞에꺼 예측한게 틀리면 뒤에도 다 틀리게 된다.
추론모드는 $\hat{x_t}$를 토대로 다음껄 예측하는 식으로 할 수 밖에 없지만 학습모드에서는 $\hat{x_t}$를 사용하는게 아니라 ground truth $x_t$를 이용해야한다.
그런데 이건 또 문제가 있다.
학습과 추론을 위한 방법이 다르게 되어서 여러가지 문제가 발생할 수 있다.
- 학습과 추론 방법의 괴리(discrepancy) 발생 → 성능 저하
'Deep Learning > NLP' 카테고리의 다른 글
[패캠] (Seq2Seq) Attention (0) | 2022.02.14 |
---|---|
[패캠] (Seq2Seq) seq2seq 모델 (0) | 2022.02.06 |
[패캠] (LM) 기존의 언어 모델 (0) | 2022.02.05 |
[패캠] (LM) 언어모델 (0) | 2022.02.05 |
[패캠] 자연어 생성이란 (0) | 2022.02.05 |
댓글