네이버 부스트캠프 모각공 캠페인 8일차 - RNN첫걸음
모든 설명 및 자료의 출처는 네이버 부스트코스의 <[부스트캠프 AI Tech 3기] Pre-Course>입니다.
(https://www.boostcourse.org/onlyboostcampaitech3/joinLectures/329424)
<핵심만 담은 AI 수학지식>
RNN 첫걸음
지금까지 배웠던 CNN과 다르게 시퀀스 데이터에 적용됩니다.
시퀀스 데이터
소리, 문자열, 주가 등의 데이터를 시퀀스(sequence) 데이터로 분류합니다.
시퀀스 데이터는 데이터동등분포(i.i.d.) 가정을 잘 위배하기 때문에 순서를 바꾸거나
과거정보에 손실이 발생하면 데이터의 확률분포도 바뀌게 됩니다.
이전 시퀀스 정보를 가지고 앞으로 발생할 데이터의 확률분포를 다루기위해 조건부확률을 이용할 수 있습니다.
시퀀스 데이터를 다루기 위해선 길이가 가변적인 데이터를 다룰 수 있는 모델이 필요합니다.
Recurrent Neural Network 이해하기
가장 기본적인 RNN 모형은 MLP와 유사한 모양입니다.
위와 같은 모델은 현재의 데이터로만 예측하기 때문에 과거의 정보를 다룰 수 없습니다.
RNN은 이전 순서의 잠재변수와 현재의 입력을 활용하여 모델링합니다.
RNN의 역전파는 잠재변수의 연결그래프에 따라 순차적으로 계산합니다.
BPTT
BPTT(Backpropagation Through Time) 를 통해 RNN의 가중치행렬의 미분을 계산해보면 아래와 같이 미분의 곱으로 이뤄진 항이 계산됩니다.
시퀀스 길이가 길어지는 경우 BPTT를 통한 역전파 알고리즘의 계산이 불안정(=기울기 소실)해지므로 길이를 끊는 것이 필요합니다.
이를 truncated BPTT라 부릅니다.
이런 문제들 때문에 Vanilla RNN은 길이가 긴 시퀀스를 처리하는데 문제가 있습니다.
출처
[부스트캠프 AI Tech 3기] Pre-Course