강의

멘토링

커뮤니티

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

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

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 - Phân tích máy dịch Transformer - Phần 3

강사님 궁금한게 있어 문의 드립니다.

Viết

·

122

0

강사님 seq2seq 모델의 경우 학습할 때와 추론할 때 서로 다른 모델을 정의하여 사용하였습니다. 하지만 트랜스포머는 그렇지 않고 추론할 때도 같은 모델을 사용하고 있습니다.

두 개의 모델 모두 교사강요학습을 사용하고 있고 인코더/디코더 구조를 가지고 있는데 왜 두개가 이렇게 차이가 있는 것인지요?

딥러닝tensorflowNLP

Câu trả lời 1

0

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

이 차이는 두 모델의 기본 설계와 동작 방식에서 비롯됩니다.

Seq2Seq 모델의 학습단계 디코더 입력 : 인코더의 입력 + 디코더의 입력

model_teacher_forcing = Model([encoder_inputs_, decoder_inputs_], decoder_outputs)

Seq2Seq 모델의 추론용 디코더 입력 : 디코더의 입력 + 디코더의 state

decoder_model = Model(

[decoder_inputs_single] + decoder_states_inputs, # 디코더 입력과 상태를 입력으로 받음

[decoder_outputs] + decoder_states ) # 디코더 출력과 상태를 출력으로 반환
입력이 달라지므로 모델을 달리 할 수 밖에 없습니다. 물론 학습한 가중치는 교사 학습에서 만들어진 가중치를 그대로 사용하므로 추론 단계의 디코더는 새로 만드는 것이 아니라 입력 구조만 변경해서 그냥 사용하는 것입니다.

트랜스포머 모델도 Seq2Seq와 마찬가지로 학습 시 디코더에 실제 타겟 시퀀스를 입력으로 사용합니다. 그러나 트랜스포머는 학습과 추론 시 같은 네트워크 구조를 사용할 수 있으므로 별도의 디코더 모델을 만들 필요가 없습니다.
결론적으로 이 것은 RNN 과 Transformer 의 구조 차이에서 오는 것이므로 더 자세한 내용은 080_language_translation_KerasAPI_teacherForcing 프로그램 소스와 130_transformer 프로그램 소스를 비교해 보시기 바랍니다. 단순히 RNN 과 Transformer 의 구조 차이 외에 더 특별한 의미가 존재하는 것은 아닙니다.
좋은 질문 감사합니다.

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

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

Đặt câu hỏi