NLP basic_rnn 코드 질문
1. pack_padded_sequence의 역할
⇒ padding 시, 짧은 sequence는 0을 추가해 padding한다. 그런데 pack_padded_sequence을 사용하게 되면 0을 포함하지 않고 연산해 연산량이 줄어든다.
2. pack_padded_sequence 사용 시, embedding한 데이터를 왜 transpose(0,1)를 하는가?
⇒ embedding한 데이터 사이즈가 (batch_size, sequence 갯수, embedding_size)인데 transpose하면 (sequence 갯수, batch_size, embedding_size)로 가능해진다! (아니면, batch_first=True로 가능)
NLP 3강 ~ 4강 중, 질문
1. RNN 중, output을 도출할 때, 왜 binary classification이면 output이 1차원이고 multi class classification 수행 시, class 개수만큼 차원을 가지는가?
⇒ 교수님께서 설명하면서 1열로 output을 도출하여 그 나열한 것을 차원이라고 말씀!
2. Truncated bptt 더 공부!
3. RNN에서 왜 기울기 소실 및 폭발이 일어나는가?
⇒ 예시로 linear transformation matrix W_hh이 3이고 output값 y가 h1까지 backpropagation 시, h1에 대해 편미분을 한다면, 3의 거듭제곱으로 증폭한다!
⇒ 반대로 W_hh를 0.2라고 생각하면 0.2의 거듭제곱으로 소실된다!
(참고자료: https://davi06000.tistory.com/92)
다음 학습 목표
NLP 5강~6강 듣기(or 5강)
[필수과제2] RNN-based Language Model 끝내기!
NLP 3~4강 학습, 발표 및 토론