[Boostcamp AI Tech] AI Math 10강

이성범·2022년 1월 25일
0

Boostcamp AI Tech

목록 보기
10/49

RNN 첫걸음

이번 강에서는 RNN의 기초에 대하여 학습을 진행했다. RNN은 Sequence 데이터(음성, 텍스트, 시계열, 영상 등)에 많이 활용되는 가장 기본적인 알고리즘 중에 하나이기 때문에 기본 원리에 대한 이해는 필수라고 할 수 있다. 이번 강의를 통해서 RNN에 대한 기초를 완벽히 다지기 위해 노력했다.

00. 공부 내용

  • Sequence Data에 대하여 공부
  • RNN의 순전파에 대하여 공부
  • RNN의 역전파(BPTT)에 대하여 공부

01. Sequence Data

  • 소리, 문자열, 주가 등의 데이터를 Sequence Data 라고 한다.
  • Sequence Data는 독립동등분포 가정을 잘 위배하기 때문에 순서를 바꾸거나 과거 정보에 손실이 발생했을 때 확률분포도 바뀔 수 있다.(ex, '개가 사람을 물었다'와 '사람이 개를 물었다' 두 문장을 비교했을 때 문법적으로는 틀린 문장이 아니나, 의미가 완전히 다르다는 것을 알 수 있다.)
  • 따라서 Sequence Data 과거의 정보에 의존하는 형태이기 때문에, 이전 시퀀스의 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다루는데 이용하는 조건부 확률을 Sequence Data에 활용할 수 있다.
  • 특정 길이의 Sequence Data를 잠재변수에 인코딩해서 모델을 학습시키는 대표적인 모델이 우리가 앞에서 배울 RNN이다.

02. RNN의 순전파

  • RNN은 잠재변수 H_t를 신경망을 통해 반복해서 사용하여 시퀀스 데이터의 패턴을 학습하는 모델이다.

  • 가장 기본적인 RNN 모형은 위처럼 MLP와 유사한 모양이다.

  • 이를 그림으로 표현하면 위와 같다.
  • 이처럼 RNN의 경우 h_t = X * W_x + h_t-1 * W_h + b 의 형태로
    h_t를 인코딩 하고 h_t를 W * h_t + b 형태의 단순한 Layer에 넣어 output을 얻는 형태로 학습이 된다. (단순히 h_t를 예측에 활용할 수도 있음)
  • 따라서 RNN에 Layer가 추가된 경우라면 학습해야할 파라미터는 RNN의 W_x, W_h, b 와 Layer의 W, b 라고 할 수 있다.
  • 단순히 RNN의 경우로만 생각하자면 RNN 레이어 1개에 대한 파라미터의 수는 input_feature * hidden_units + hidden_units * hidden_units + 1 * hidden_units 개라고 할 수 있다.
  • h_t를 현재 시점의 시계열 데이터의 Representation이라고 할 수 있음

03. RNN의 역전파

  • RNN의 역전파는 위의 그림처럼 잠재변수의 연결그래프에 따라 순차적으로 계산이 되며, 이를 Backpropagation Through Time(BPTT)라 한다.

  • RNN의 미분식은 위와 같이 나타낼 수 있는데, 빨간색 부분이 연산이 곱으로 이루어져 있어서, 시퀀의 길이가 길어질수록 기울기 손실이 쉽게 발생하여 연산이 불안정해 질 수 있다는 것을 알 수 있다.
  • 이렇듯 기본적인 RNN 모델은 기울기 소실이 쉽게 발생하며, 이렇게 계산이 불안정해지는 것을 truncated BPTT 라고 부른다.
  • RNN의 기울기 소실을 해결하기 위해 새롭게 만들어진 네트워크가 바로 LSTM과 GRU 이다.

참고자료

profile
Machine Learning Engineer at Konan Technology

0개의 댓글