1. RNN의 등장 배경
a. Feedforward 신경망의 문제점
Feedforward 신경망은 정보의 흐름이 단방향이다.
Feedforward는 인풋레이어에서 아웃풋 레이어 까지 여러개의 퍼셉트론 층을 거치며 순차적으로 정보가 전달되는 구조로, 구성이 단순하여 이해하기 쉽고 많은 문제에 이용할 수 있다. 하지만 이러한 Feedforward 신경망은 시계열 데이터에서의 패턴을 충분히 학습 할 수 었다는 치명적인 단점을 가지고 있다.
b. 순환하는 신경망
RNN의 특징은 순환하는 경로가 있다는 것이다. 데이터는 끊임없이 순환 경로를 따라 순환할 수 있으며, 이로 인해 과거의 정보를 기억하는 동시에 최신 데이터로 갱신될 수 있다.
말로만 하면 어려우니 위의 그림을 보자. t초 일 때의 인풋인 $X_t$는 아웃풋 $h_t$로 나온다. 이떄 두가지로 분리된 $h_t$는 다음 신경망에서 인풋으로서 작용하면서 $h_{t+1}$에 관여한다.
그림에서 왼쪽이 RNN Cell 하나이고 이것을 시간에 따라 펼친것이 오른쪽이다. RNN Cell을 펼치면 마치 피드포워드 신경망처럼 보이는데, RNN에서는 모두가 '같은 계층'이라는 면에서 차이가 있다.
위의 내용을 정리하여 수식으로 나타내면 $h_t=\tanh (h_{t-1}\cdot W_h+X_t\cdot W_x+b)$라고 할 수 있다. 앞의 그림에서 알 수 있듯 RNN은 2개의 입력을 받는다. 그렇기에 각 입력에 대해 2개의 가중치가 있다. 하나는 입력 $X_t$를 출력 $h_t$로 변환하기 위한 가중치 $W_x$이고, 다른 하나는 1개의 RNN 출력을 다음 시각의 출력으로 변환하기 위한 가중치 $W_h$이다.
2. RNN
a. RNN의 순전파
앞서 살펴본 수식을 시각화하면 다음과 같이 나타낼 수 있다.
$X$와 $h_{prev}$를 입력으로 받아 내부적인 계산을 거친 후, $h_{next}$라는 출력을 분기시켜 내놓는다.
b. RNN의 역전파
1) BPTT(Backpropagation Through Time)
위의 그림에서 볼 수 있듯 순환 구조를 펼치면 RNN는 Feedforward 신경망과 유사한 구조를 띄므로 Feedforward 신경망의 Backpropagation을 사용할 수 있다. 즉, 먼저 순전파를 진행한 후 이어서 역전파를 진행하여 원하는 기울기를 구할 수 있다. 이를 BPTT(Backpropagation Through Time)이라 한다.
BPTT는 긴 시계열 데이터를 학습할 시 시계열 데이터의 크기에 비례하여 필요로 하는 컴퓨팅 자원도 증가하는 문제가 있다. 또한 시간 크기가 커지면 역전파 시 Vanishing Gradient도 발생한다.
2) Truncated BPTT
이러한 문제를 해결하기 위해 나온 것이 Truncated BPTT이다. Truncated BPTT는 시간축 방향으로 길어진 신경망을 적당한 지점에서 잘라내 여러개로 만들어 블록 단위로 오차역전파법을 수행한다는 아이디어이다.
여기서 주의할 점은 역전파의 연결만 끊고, 순전파의 연결은 그대로 유지되어야 한다는 점이다.
Reference
'인공지능' 카테고리의 다른 글
[인공지능] LSTM(Long Short Term Memory) (0) | 2023.07.03 |
---|---|
[인공지능] 머신러닝 (Machine Learning)이란 무엇인가 (0) | 2023.05.22 |