부스트캠프 AI Tech 1기 [T1209 최보미]/U stage

Day14 학습정리 - Recurrent Neural Networks

B1001101 2021. 2. 4. 23:43

강의 복습

1. RNN 첫걸음

더보기

1) 시퀀스 데이터

  • 시계열(time-series) 데이터와 같이 순서가 있는 데이터 (소리, 문자열, 주가 등)
  • 순서를 바꾸거나 과거 정보에 손실이 발생하면 확률분포도 바뀜
  • 앞으로 발생할 데이터의 확률분포 다루기 위해 조건부확률 이용(베이즈법칙)
  • 길이가 가변적인 데이터를 다룰 수 있는 모델 필요
    • AR(𝜏) (Autoregressive) 자기회귀모델: 고정된 길이 𝜏만큼의 시퀀스만 사용
    • 잠재AR모델: 바로 이전 정보를 제외한 나머지 정보들을 Ht라는 잠재변수로 인코딩

2) RNN 이해하기

  • 가장 기본적인 RNN: MLP와 유사한 모양
  • 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링
  • 활성화함수: tanh 사용
  • 역전파: 잠재변수의 연결그래프에 따라 순차적으로 계산 → Backpropagation Through Time (BPTT)
  • BPTT를 통해 RNN의 가중치행렬의 미분을 계산해보면 다음과 같이 미분의 곱으로 이루어진 항이 계산됨
  • 시퀀스 길이가 길어지는 경우 BPTT를 통한 역전파 알고리즘 계산이 불안정해지므로(위 사진에서 𝚷로 묶인 항) 길이를 끊는 것이 필요 (truncated BPTT)
  • Vanilla RNN: 길이가 긴 시퀀스를 처리하는데 문제가 있음
    → 이를 해결하기 위해 등장한 RNN 네트워크: LSTM, GRU
  • 참고
 

RNN과 LSTM을 이해해보자! · ratsgo's blog

이번 포스팅에서는 Recurrent Neural Networks(RNN)과 RNN의 일종인 Long Short-Term Memory models(LSTM)에 대해 알아보도록 하겠습니다. 우선 두 알고리즘의 개요를 간략히 언급한 뒤 foward, backward compute pass를 천천

ratsgo.github.io

2. Sequential Models - RNN

더보기

1) Sequential Model의 종류

  • Naive sequence model
  • Autoregressive model
  • Markov model (first-order autoregressive model)
  • Latent autoregressive model

2) RNN

3) Long Short Term Memory (LSTM)

  • RNN은 관련 정보와 그 정보를 사용하는 지점 사이가 멀 경우 역전파시 그래디언트가 점차 줄어 학습능력이 크게 저하됨 (vanishing gradient problem)
    → 이 문제를 해결하기 위해 고안된 것이 LSTM
RNN Long Short Term Memory
  • Forget Gate: 버릴 정보 결정
  • Input Gate: cell state에 저장할 정보 결정
  • Upate cell: cell state 업데이트
  • Output Gate: 업데이트된 cell state 사용하여 출력

4) Gated Recurrent Unit (GRU)

  • 2개의 게이트(reset gate, update gate) -> LSTM보다 단순한 구조
  • cell state 없이 hidden state만 존재

3. Sequential Models - Transformer


피어세션 & 랜선밋업

오늘 피어세션에서는 pytorch의 resnet.py 코드를 분석하는 발표를 했다. 몰랐었는데 코드를 살펴보니까 ResNet 모델의 종류가 엄청 많이 있었다. 그리고 다른 팀원의 발표 내용 중에 style transfer에 대한 언급이 있었는데 매우 신기하고 흥미로워 보여서 설 연휴 때 한번 공부해봐야겠다고 생각했다.

resnet.py.pdf
2.69MB

오늘 저녁때에는 부스트캠프 수료생과의 랜선 밋업이 있었다. 연사님의 말씀 한 마디 한 마디 다 공감이 되어서 집중해서 들었다. 특히 다른 사람들 다 잘하는데 나만 못 하는 것처럼 느껴진다는 말에 너무 공감이 갔고 위로와 용기를 얻었다. 그리고 피어세션이랑 학습정리에 대한 팁도 주셔서 좋았다.


코멘트

어제 배운 CNN은 전에도 몇 번 접해본 적이 있어서 익숙했는데 오늘 배운 RNN은 생소하고 어려웠다. 특히 Transformer는 강의 소개에 대놓고 매우 어려울 수 있다는 경고문이 있어서 잔뜩 겁먹은 상태로 들었다. 아무래도 한 번에 다 이해하는 건 무리인 거 같고 설 연휴 때 다시 복습해야 할 것 같다. 이제 내일만 지나면 연휴니까 힘내서 열심히 공부해야겠다.