Deeper Learning

Language Model 본문

AI/Deep Learning

Language Model

Dlaiml 2020. 12. 1. 21:52

Language Model

통계적 언어모델은 단어 시퀀스에 확률을 각각 할당하는 모델이다.

input에 따라 같은 단어 or 문자에 부여되는 확률이 다르기 때문에 보편적인 결과를 위해서는 광범위한 데이터의 수집이 필요하다.

언어모델을 모델링 하는 방법은 여러가지가 있지만 앞에 주어진 단어를 기준으로 다음 단어를 예측하는 언어모델에 대해 서술하겠다.

 

 

Modeling

RNN모델을 사용하여 언어모델을 만드는 학습과정은 다음과 같다.

input x = 'Failure is an option here' 

$x^{<1>}$은 Sequence의 첫 input으로 zero vector 또는 문장의 시작을 알리는 token을 삽입한다.

input x는 원래 input에서 문장의 마지막인 EOS를 제외하고 $x^{<1>}$를 이어붙인 형태가 된다.

true label y은 문장의 처음부터 EOS까지로 원래 input x와 동일하다.

(첫 input이 Sequence의 first element인 경우, $y^{<1>}$은 Sequence의 두 번째 element인 'is'를 나타내는 벡터가 된

다.)

 

Sampling

학습이 완료된 모델에서 Sampling이 이루어진다.

output인 y hat은 softmax를 통과하여 각 단어마다 확률이 할당되어 있는 상태다. 

y hat의 확률 분포에 따라 Sampling을 하여 1개의 단어를 추출한다. 

이 단어가 다음 input이 되고 output y hat이 <EOS>가 나올 때 까지 이를 반복한다.

Sequence가 출현할 확률은 위 식과 같이 조건부 확률로 나타낼 수 있다.

 

Example

한국 근대시 데이터와 LSTM을 활용하여 만든 간단한 언어모델이다.

Sampling 과정에서 Diversity를 높이기 위해 y hat 확률 분포에 편차를 줄이는 처리를 하여 같은 단어가 나오더라도 다음 음에 다양한 단어가 나타날 수 있도록 하였다.

언어모델을 통해 생성한 input data인 시와 비슷한 형태의 문장이다.

 

장군 이슬낱 지녀 라던가 뒤 있는 무수히 피워내고
앙징스런 별빛 만이
나는 집들을 비취고 종로에서
뿔로 들어가고 싶은데 뿔은 또
두 임의
벽과 모양 이다
없는 그 들

나는 지평선 굶주리고 있는
사랑을 여기 절정

'AI > Deep Learning' 카테고리의 다른 글

Long Short-Term Memory (LSTM)  (0) 2020.12.04
Gated Recurrent Units (GRU)  (0) 2020.12.03
Recurrent Neural Network  (0) 2020.12.01
Fréchet inception distance (FID)  (0) 2020.11.30
Neural Style Transfer  (0) 2020.11.28
Comments