당니이
다은이의 컴퓨터 공부
당니이
전체 방문자
오늘
어제
  • 분류 전체보기 (138) N
    • Achieved 👩🏻 (14)
      • 생각들 (2)
      • TIL (6)
      • Trial and Error (1)
      • Inspiration ✨ (0)
      • 미국 박사 준비 🎓 (1)
    • Computer Vision💖 (39)
      • Basic (9)
      • Video (5)
      • Continual Learning (7)
      • Generative model (2)
      • Domain (DA & DG) (5)
      • Multimodal (8)
      • Multitask Learning (1)
      • Segmentation (1)
      • Colorization (1)
    • RL 🤖 (2) N
    • Autonomous Driving 🚙 (11)
      • Geometry (4)
      • LiDAR 3D Detection (1)
      • Trajectory prediction (2)
      • Lane Detection (1)
      • HDmap (3)
    • Linux (15)
    • PyTorch👩🏻‍💻 (10)
    • Linear Algebra (2)
    • Python (5)
    • NLP (11) N
      • Article 📑 (1)
    • Algorithms 💻 (22)
      • Basic (8)
      • BAEKJOON (8)
      • Programmers (2)
    • ML (1)
      • 통계적 머신러닝(20-2) (1)
    • SQL (3)
    • 기초금융 💵 (1)

블로그 메뉴

  • 홈
  • About me

공지사항

인기 글

태그

  • 알고리즘
  • 리눅스
  • dfs
  • 코딩테스트
  • 백준
  • NLP
  • CV
  • 자료구조
  • Linux
  • pytorch
  • til
  • 백트래킹
  • Python
  • domain generalization
  • CL
  • continual learning
  • domain adaptation
  • LLM
  • Incremental Learning
  • conda

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
당니이

다은이의 컴퓨터 공부

[NLP] Sequence-to-Sequence (Seq2Seq, 시퀀스 투 시퀀스)
NLP

[NLP] Sequence-to-Sequence (Seq2Seq, 시퀀스 투 시퀀스)

2021. 2. 8. 01:25
반응형

1. 개요

- 입력된 시퀀스로부터 다른 도메인의 시퀀스를 출력하는 모델
- 챗봇, 번역, 요약, STT 등에 쓰일 수 있음

 


2. 구성  

- RNNLM (RNN Language Model) 임

출처 : https://ratsgo.github.io/natural%20language%20processing/2017/03/09/rnnlstm/

RNN의 기본 구조 : 현재시점(time step)을 t라고 할 때, RNN셀은 t-1에서의 은닉상태와 t에서의 입력 벡터를 input으로 받음. 그리고 t에서 은닉상태 ht를 만들고, t+1시점의 입력으로 이를 보냄 

 

출처 : https://wikidocs.net/24996

- 기본적으로 인코더(Encoder)와 디코더(Decoder)로 구성됨
- Context Vector(컨텍스트 벡터)에 인코더에서 입력받은 단어의 정보가 압축됨
  이 Context Vector를 디코더로 전송함 (현업에서는 수백차원임)

출처 : https://wikidocs.net/24996

- 인코더, 디코더 아키텍쳐는 두개의 RNN 아키텍쳐
  물론 RNN은 Gradient Vanishing으로 앞 정보가 뒤로 온전히 전달되지 못하고, 
  아주 단순한 단일 tanh 레이어 구조이기 때문에 주로 LSTM이나 GRU 등을 사용함

- Context Vector(컨텍스트 벡터) : 인코더 RNN 셀의 마지막 시점의 은닉상태로 작용 (모든 인코더 셀의 과거 정보를 담고 있을 것)

  → 이는 디코더 RNN셀의 첫번째 은닉상태로 작용하게 됨
  → 단 하나의 고정된 Context Vector에 모든 인코더의 정보를 함축시킴
  → Sequence Length가 훨씬 길어진다면 과거 정보가 묻힌다는 문제가 발생할 것 (Catastrophic Forgetting 현상)
  → 결국 처음에 등장했던 단어를 번역해내는데에 실패할 가능성이 높음

- 모든 토큰화된 단어는 임베딩 layer를 거침

출처 : https://wikidocs.net/24996

- Softmax 함수 : 각 시점(time step)의 RNN셀에서 나오는 출력 벡터를 softmax 함수에 넣어 각 단어별 확률값을 반환하고, 확률값이 가장 큰 것을 출력 단어로 최종 결정함

 


3. 훈련 상황

- 교사 강요(teacher forcing) : Catastrophic Forgetting 현상을 해결하기 위해 실제 정답을 알려주며 훈련
  (첫번째 단어의 예측이 실패하면 그 뒤 예측도 제대로 될 수 없으므로)

but 테스트 상황에서는 오직 컨텍스트 벡터와 <sos>만을 입력으로 받은 상황에서 다음에 올 단어를 예측. 이 행위는 끝 심볼 <eos>가 다음 단어로 예측될 때까지 반복

 

 

 

 

반응형
저작자표시 (새창열림)

'NLP' 카테고리의 다른 글

[TIL] In-context Learning with Long-context LLMs  (0) 2024.09.13
[TIL] LLM as reward models/evaluators (#RLHF, #Self-improvement)  (0) 2024.08.30
[NLP] LORA : Low-Rank Adaptation of Large Language Models 논문 리뷰  (0) 2023.04.04
[NLP] Transformer(트랜스포머, Attention is all you need)  (0) 2021.02.09
[NLP] Attention Mechanism (어텐션 메커니즘)  (0) 2021.02.09
    'NLP' 카테고리의 다른 글
    • [TIL] LLM as reward models/evaluators (#RLHF, #Self-improvement)
    • [NLP] LORA : Low-Rank Adaptation of Large Language Models 논문 리뷰
    • [NLP] Transformer(트랜스포머, Attention is all you need)
    • [NLP] Attention Mechanism (어텐션 메커니즘)
    당니이
    당니이
    씩씩하게 공부하기 📚💻

    티스토리툴바