본문 바로가기

전체 글101

LSTM을 사용하여 텍스트 생성하기 https://soki.tistory.com/45 RNN을 이용한 텍스트 생성 1) RNN을 이용하여 텍스트 생성하기 * 만약 '경마장에 있는 말이 뛰고 있다', '그의 말이 법이다', '가는 말이 고와야 오는 말이 곱다' 3가지 문장을 학습하려고 한다고 가정해보자. * 이 3개의 문장 soki.tistory.com * 앞선 포스팅에서 RNN을 사용해 텍스트를 생성하는 방법에 대해 알아보았다. 이번 포스팅에서는 LSTM을 활용하여 텍스트를 생성하는 방법에 대해 알아보겠다. * 데이터셋을 준비하고 모델을 구성하는 것은 비슷하지만, LSTM을 사용하면 더 sequence의 처리가 가능하기 때문에 RNN과 같이 우리가 직접 생성한 6단어정도로 구성된 짧은 문장 뿐만 아니라 더 긴 문장을 훈련 시키는 것이 가능.. 2021. 12. 18.
RNN을 이용한 텍스트 생성 1) RNN을 이용하여 텍스트 생성하기 * 만약 '경마장에 있는 말이 뛰고 있다', '그의 말이 법이다', '가는 말이 고와야 오는 말이 곱다' 3가지 문장을 학습하려고 한다고 가정해보자. * 이 3개의 문장들을 훈련할 때 X data, y data로 나눠야 할텐에 어떻게 나눠야 할까? 각 단어들을 y로 놓고 X에는 전체 문장에서 y단어 앞에 나왔던 단어들을 나열하면 될 것이다. 예를 들면 이렇게 말이다. * 위와 같이 데이터셋을 구성하기 위해 다음과 같은 과정을 거친다. import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pa.. 2021. 12. 17.
RNN 언어 모델(RNNLM) RNNLM(RNN Language Model) * RNN을 도입한 언어 모델을 RNNLM이라고 한다. Teacher Forcing(교사 강요) * RNNLM의 경우 모델 테스트시에 위와 같이 현재 time step의 입력을 집어넣으면 이전 time step의 hidden state까지 고려해 다음에 올 단어를 예측하는 과정을 거친다. 이 hidden state에는 모델이 예측한 단어(label, 즉 ground truth가 아니다)에 대한 정보가 들어있게 된다. * 그렇다면 훈련 과정에서도 동일하게 모델이 예측한 단어의 정보를 hidden state에 담아 다음 단어의 예측을 실시할까? 아니다. 테스트는 모델의 성능을 검증하는 것이므로 예측한 단어를 가지고 다음 단어를 예측하게 되지만, 훈련은 그렇게 해.. 2021. 12. 17.
피드포워드 신경망 언어 모델(NNLM) NNLM(Neural Network Language Model) N-gram 언어 모델의 한계 * n-gram 언어 모델은 corpus에 충분한 양의 문장이 존재해야 예측도가 높아진다. 단순히 corpus에 있는 유사 문장들의 출현 빈도를 통해 단어를 예측하기 때문이다. 이렇게 훈련에 충분한 양의 데이터가 선행되지 않으면 모델링이 정확하지 않게 되는 문제를 희소 문제(sparsity problem)라고 한다. * 예를 들자면 4 gram 모델에서 boy is spreading 다음의 단어를 예측한다고 했을 때 label이 smile임에도 불구하고 corpus에 boy is spreading smile이라는 문장이 없으면 절대로 smile이란 단어를 예측할 수가 없다. * 이렇게 학습한 문장만 예측할 수 .. 2021. 12. 16.