강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của jcy40236396
jcy40236396

câu hỏi đã được viết

Khóa học xử lý ngôn ngữ tự nhiên (NLP) sử dụng trí tuệ nhân tạo (Deep Learning) (từ cơ bản đến ChatGPT/mô hình tạo)

Thực hành - Tạo Chatbot đơn giản

encoder-decoder model 질문입니다.

Viết

·

63

1

안녕하세요 교수님.
챗봇 부분 공부하다가 질문이 생겨서 남깁니다.

기존 teacher forcing 학습 방식을 위해 encoder와 decoder를 포함한 모델을 따로 만들고, 이후에 decoder 모델을 다시 만든 다는 것으로 이해했습니다.

하지만, 맨 마지막 모델인 decoder에서 output에 decoder context vector도(h, c) 같이 포함되는지 궁금합니다. (왜 Dense layer를 통과한 output과 context vector를 합치는지 이해가 잘 안갑니다.)

감사합니다.

 

decoder_input_h = Input(shape=(LATENT_DIMS, ), name='DECODER_INPUT_H') # hidden
decoder_input_c = Input(shape=(LATENT_DIMS, ), name='DECODER_INPUT_C') # cell
decoder_input_s = Input(shape=(1, ), name='DECODER_INPUT_S') # single

# context_vector(encoding에서 나온 값)
context_vector = [decoder_input_h, decoder_input_c]

x = decoder_embedding_layer(decoder_input_s)

x, h, c = decoder_lstm_layer(x, initial_state=context_vector)

decoder_output = decoder_dense_layer(x)

decoder_context_vector = [h, c]

final_decoder_model = Model(inputs=[decoder_input_s, context_vector], outputs=[decoder_output, decoder_context_vector])

final_decoder_model.summary()
딥러닝tensorflowNLP

Câu trả lời 1

1

YoungJea Oh님의 프로필 이미지
YoungJea Oh
Người chia sẻ kiến thức

decoder의 출력에 context vector (h, c)를 포함하는 이유는,
추론 단계에서 다음 시점의 LSTM 상태로 전달하기 위해서입니다.

Dense layer는 예측 토큰을 생성하는 데 사용되고, (h, c)는 다음 시점의 decoder 상태 유지를 위한 것이므로 두 출력을 "합치는" 게 아니라 목적이 달라서 함께 출력하는 것입니다.

왜냐하면 LSTM 은 장, 단기 기억 장소 두가지를 초기값으로 필요로 하기 때문입니다.

좋은 질문 감사합니다.

jcy4023님의 프로필 이미지
jcy4023
Người đặt câu hỏi

감사합니다.

 

Hình ảnh hồ sơ của jcy40236396
jcy40236396

câu hỏi đã được viết

Đặt câu hỏi