dukim's blog

[WK06-Day026][21.09.07.Tue] RNN, LSTM, GRU, 필수과제 1, 2, 3 본문

Boostcamp AI Tech 2th

[WK06-Day026][21.09.07.Tue] RNN, LSTM, GRU, 필수과제 1, 2, 3

eliza.dukim 2021. 9. 9. 15:34

Intro

  • 멘토님과 짧은 만남, 논문 읽기 주제 관련 30분 톡
  • 활발한 피어세션 : 꽉찬 2시간 동안 대충 넘어가는 것 없이 정리
  • 필수과제 2, 3번 풀이

학습 내용

RNN

  • Character-level LM의 작동 예시와 이것이 할 수 있는 것들(희극 생성, c code 생성, 논문 생성) 등을 살펴봄
  • Backpropagation through time(BPTT) : GPU 메모리 등 처리 용량의 한계로 전체 시퀀스를 한 번에 학습하는 대신 제한된 길이의 시퀀스 만으로 학습을 진행
  • RNN의 특성 분석 연구
  • RNN의 Vanishing/Exploding Gradient 문제(또는 Long-term dependency 문제),
    • 원인 : 반복적으로 곱해지는 $W_{hh}$

LSTM and GRU

  • 기존 RNN을 대체
  • Gradient Vanishing/Exploding 과 Long-term dependency에 대해 개선된 성능
  • Long Short-Term Memory
    • hidden state vector : Short-Term Memory, 현재 time step에서 노출할 필요가 있는 정보만을 남긴 필터링된 벡터
    • cell state vector : Long-Term Memory, 장기적으로 유지하는 완전한 정보를 포함하는 벡터
  • GRU
    • LSTM의 경량화 버전
    • LSTM의 cell state와 hidden state를 통합함
    • 동작원리는 동일함
  • Uninterrupted gradient flow(ResNet과 유사한 구조)
    • cell state의 업데이트 과정이 $W_hh$와 같은 행렬 곱이 아닌 합과 요소별 곱 연산으로 되어 있어 backpropagation 시 gradient를 큰 병형 없이 전달

Summary on RNN/LSTM/GRU

  • 다양한 길이의 seq 길이 데이터 처리에 특화된 유연한 구조
  • LSTM과 GRU를 훨씬 더 많이 사용하고, cell state vector, hidden state vector를 연산하는 방식이 기본적으로 덧셈에 기반한 방식이기 때문에 gradient vanishing/exploding 문제를 피하고 long-term dependency 문제를 해결할 수 있다.

과제 수행

  • 필수과제는 모두 입력 데이터 전처리를 다루고 있다.

과제 1

  • 영어, 한국어에 대한 pre-tokenization. 영어의 경우는 Spacy, 한국어는 KoNLPy내의 형태소분석기를 활용한 형태소 단위 토크나이징
  • 불용어처리와 음절단위 토크나이징도 다룸
  • 라이브러리 그대로 진행하면 되는 것이라 어렵지 않게 끝냄

과제 2, 3

  • wikitext-2 데이터셋에 대하여 Word-level 그리고 Sub-word level 각각으로 토크나이징한 RNN을 비교함
  • train set의 단어로만 vocab을 구성할 것, 나머지는 unk 토큰으로 처리
  • sub-word level 토크나이징을 적용했을 때의 장점
    • word-level 토크나이징을 적용했을 때보다 embedding parameter의 수 감소(6,655,600개 -> 4,619,000개)
    • OOV 문제 완화

멘토링

  • 피어세션 30분 전 멘토님께서 막간을 이용해서 진행하셨다.
  • 목표로한 논문이 너무 어려울 수 있어서 transformer 계열 기본 논문을 권장하시고 기본 논문을 제시해주심

피어세션

  • 월요일 강의 내용이었던 BoW, W2V에 대한 내용 복습 및 Further Question에 대한 토론
    • Q: Word2Vec과 GloVe 알고리즘이 가지고 있는 단점은 무엇일까요?
      • 문맥에 따라 다른 의미, 동음이의어의 서로 다른 의미를 반영하지 못함(e.g. play, 배)
      • 기존 단어 임베딩의 얕은 신경망 한계 극복 → "Deep contextualized word representations(ELMO)"
  • Paper 선정 : 멘토님 추천해주신 6개 논문(Transformer, BERT, MT-DNN, BART, XLNet, ELECTRA)에 대해 각자 분담하여 목요일까지 각자 내용 정리

학습회고

  • RNN, LSTM, GRU 물론 요새도 계속 쓰이지만 자주 안보다보니 데이터 입출력 텐서 모양처리를 매번 까먹는 것 같다.
  • 봤던 논문도 다시 보면 새로운 게 보인다. 왜 또 보냐 싶겠지만 다시 한 번 보자.
Comments