[패스트 캠퍼스] 김기현의 딥러닝을 활용한 자연어생성 올인원 패키지 Online.
Ch 04. Sequence-to-Sequence
08. Input Feeding
09. Teacher Forcing
강의를 듣고 작성하였다.
본 게시물의 모든 출처는 [패스트 캠퍼스] 김기현의 딥러닝을 활용한 자연어생성 올인원 패키지 Online.에 있다.
(혹시 본 포스팅이 저작권 등의 문제가 있다면 알려주세요. 바로 내리도록 하겠습니다.
개인 공부 후 언제든지 다시 찾아볼 용도로 작성하고 있습니다.)
+ 추가
설명 중 참고한 자료: https://wikidocs.net/24996 → 정말 쉽게 잘 설명되어 있는 자료!
Input Feeding
원래 Seq2Seq+Attention (Input feeding 없이)
이전 time step에서 Generator의 softmax를 지나 one hot vector가 다음 time step의 input으로 들어간다.
즉, 이전 time step에서 결정된 단어가 다음 time step의 decoderdml embedding layer에 들어가서 다음 time step의 단어를 예측하는데에 쓰인다.
→ 정보의 손실이 일어난다. (단어 후보가 두 개가 있을 때, 6:4 인 것과 9:1 인것은 확실히 다르다. 그렇지만 여기선 모두 1:0으로 바뀌어서 들어간다.)
Input feeding + Seq2Seq + Attention
아래의 그림에서 노란색 부분이 추가되었다.
어텐션에서 나온 결과와 decoder의 결과값이 concatenate된 것($\tilde{h}_t$)을 embedding layer를 지나고 나온 결과값과 concatenate 해준 후에 RNN 셀에 넣는다.
decoder의 수식을 다시 써보면 다음과 같다.
$h^{dec}_t=RNN_{dec}([emb_{dec}(\hat{y}_{t-1});\tilde{h}^{dec}_{t-1}],h^{dec}_{t-1}),$ where $h^{dec}_0=h^{enc}_m$.
↑바뀐부분
|$emb_{dec}$| = (bs, 1, ws)
|$\tilde{h}^{dec}_{t-1}$| = (bs, 1, hs)
|$[emb_{dec};\tilde{h}^{dec}_{t-1}]$| = (bs, 1, ws+hs) RNN 인풋 사이즈
Teacher Forcing
Seq2Seq 방법은 예전에 잘못 추론했다면 다음껀 더 잘못 추론한다.그래서 train할 때 정답 기반하여 다음꺼를 예측하게 해야한다.즉, 디코더에서 단어를 예측할때 기존에는 $\hat{y}_{t-1}$을 디코더의 input으로 사용하였는데, Teacher forcing 방법으로 학습하게되면, 디코더의 input으로 $y_{t-1}$이 사용된다.
'Deep Learning > NLP' 카테고리의 다른 글
[패캠] (Seq2Seq) Attention (0) | 2022.02.14 |
---|---|
[패캠] (Seq2Seq) seq2seq 모델 (0) | 2022.02.06 |
[패캠] (LM) Neural LM (0) | 2022.02.05 |
[패캠] (LM) 기존의 언어 모델 (0) | 2022.02.05 |
[패캠] (LM) 언어모델 (0) | 2022.02.05 |
댓글