What is language modeling?
- 언어라는 것은 구성 요소에 따라 일정한 확률로 표현될 수 있습니다.
- 위 예시에서 apple, pear, salad는 잘 어울리는 조합이지만, pear 대신 pair가 들어가면 그렇지 않죠.
- 결국 각 문장이 등장할 확률, 혹은 다음에 어떤 단어가 등장할지에 대한 확률을 예측하는 것이 기본적인 내용입니다.
Language modeling with an RNN
- 우선 영어 텍스트로 된 corpus(말뭉치)를 준비합니다.
이를 이용하여 tokenize합니다.- tokenize란 corpus에 저장된 단어를 기준으로 문장 단위를 쪼개는 것을 뜻합니다.
- 문장 맨 뒤에는 모델의 입장에서 이 문장의 끝이라는 것을 인지할 수 있도록 <EOS> 토큰을 추가합니다.
- 만약 corpus(vocab)에 들어있지 않는 단어가 tokenize될 경우 <UNK> 토큰으로 치환됩니다.
RNN Model
- 언어를 토큰으로 치환했다면 이젠 확률을 구하는 방식으로 모델을 학습합니다.
- 이전까지 등장했던 토큰의 조합을 전제로, 현재의 토큰이 등장할 확률이 얼마일지 구하는 것입니다.
- 예를 들어 'Cats average'라는 조합이 존재할 때, 15가 등장할 확률을 구한 것이 곧 y hat이 되죠.
이를 실제 확률과 오차를 구하고, 각 토큰 조합마다 이를 다 합치면 모델의 손실함수를 정의할 수 있습니다.
(이를 최소화 해야겠죠?) - 그래서 조건부 확률, 특히 베이즈 정리로 이 RNN 모델링의 개념을 이해할 수 있게 됩니다.
(위 개념을 모르면 이해하기가 사실상 불가능이겠죠..?)
출처: Coursera, Sequence Models, DeepLearning.AI
'Sequence Models > 1주차' 카테고리의 다른 글
Recurrent Neural Networks(8) : Vanishing Gradients with RNNs (0) | 2023.04.14 |
---|---|
Recurrent Neural Networks(7) : Sampling Novel Sequences (0) | 2023.04.14 |
Recurrent Neural Networks(5) : Different Types of RNNs (0) | 2023.04.14 |
Recurrent Neural Networks(4) : Backpropagation Through Time (0) | 2023.04.13 |
Recurrent Neural Networks(3) : Recurrent Neural Network Model (0) | 2023.04.13 |