텍스트 생성 모델

Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

David Cecchini

Data Scientist

분류 모델과 유사함

텍스트 생성 모델:

  • 어휘를 클래스처럼 사용합니다
  • 마지막 층은 어휘 크기만큼의 유닛에 softmax를 적용합니다
  • 손실 함수로 categorical_crossentropy를 사용합니다
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

keras 예시 모델

model = Sequential()

model.add(LSTM(units, input_shape=(chars_window, n_vocab), dropout=0.15, recurrent_dropout=0.15, return_sequences=True))
model.add(LSTM(units, dropout=dropout, recurrent_dropout=0.15, return_sequences=False))
model.add(Dense(n_vocab, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

하지만 진짜 분류 모델은 아님

분류와의 차이:

  • 손실은 계산하지만 성능 지표(accuracy)는 계산하지 않습니다
    • 사람이 결과를 보고 성능을 평가합니다.
    • 좋지 않으면 epoch을 늘리거나 모델 복잡도를 높입니다(메모리 셀 추가, 층 추가 등).
  • 작업에 맞는 생성 규칙과 함께 사용합니다
    • 다음 문자 생성
    • 한 단어 생성
    • 한 문장 생성
    • 한 문단 생성
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

기타 활용 예

  • 이름 생성
    • 아기 이름
    • 새로운 별 이름 등
  • 마크업 텍스트 생성
    • LaTeX
    • Markdown
    • XML 등
    • 프로그래밍 코드
  • 뉴스 기사
  • 챗봇
Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

데이터 준비

텍스트 생성 작업을 위한 데이터 준비 과정. 텍스트를 숫자 시퀀스로 변환하고, 학습 세트를 X는 고정 길이 시퀀스, Y는 그다음 문자로 분할합니다.

Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

연습해 봅시다!

Keras로 배우는 언어 모델링을 위한 순환 신경망(RNN)

Preparing Video For Download...