인코더-디코더 아키텍처

Keras로 배우는 Machine Translation

Thushan Ganegedara

Data Scientist and Author

인코더-디코더 모델

기계 번역 모델

Keras로 배우는 Machine Translation

인코더

인코더

Keras로 배우는 Machine Translation

인코더와 디코더

인코더 디코더

Keras로 배우는 Machine Translation

비유: 인코더-디코더 아키텍처

인코더 비유

디코더 비유

Keras로 배우는 Machine Translation

문장 뒤집기 - 인코더-디코더 모델

인코더 디코더 텍스트 뒤집기

Keras로 배우는 Machine Translation

인코더 작성하기

def words2onehot(word_list, word2index):
  word_ids = [word2index[w] for w in word_list]
  onehot = to_categorical(word_ids, 3)
  return onehot
def encoder(onehot):
  word_ids = np.argmax(onehot, axis=1)
  return word_ids
Keras로 배우는 Machine Translation

인코더 작성하기

onehot = words2onehot(["I", "like", "cats"], word2index)
context = encoder(onehot)
print(context)
[0, 1, 2]
Keras로 배우는 Machine Translation

디코더 작성하기

  • 디코더: 단어 ID → ID 역순 → 원-핫 벡터
def decoder(context_vector):
  word_ids_rev = context_vector[::-1]
  onehot_rev = to_categorical(word_ids_rev, 3)
  return onehot_rev
  • 보조 함수: 원-핫 벡터를 사람이 읽는 단어로 변환
def onehot2words(onehot, index2word):
  ids = np.argmax(onehot, axis=1)
  return [index2word[id] for id in ids]
Keras로 배우는 Machine Translation

디코더 작성하기

onehot_rev = decoder(context)
reversed_words = onehot2words(onehot_rev, index2word)

print(reversed_words)
['cats', 'like', 'I']
Keras로 배우는 Machine Translation

연습해 봅시다!

Keras로 배우는 Machine Translation

Preparing Video For Download...