3. RNN의 오차(E)는 심층 신경망에서 전방향(feedforward) 학습과 달리 각 단계(t)마다 오차를 측정합니다. 즉, 각 단계마다 실제 값(yt)과 예측 값(hat)으로 오차(평균 제곱 오차(mean square error) 적용)를 이용하여 측정합니다.
▲ 그림 7-11 RNN의 순방향 학습
4. RNN에서 역전파는 BPTT(BackPropagation Through Time)를 이용하여 모든 단계마다 처음부터 끝까지 역전파합니다.
오차는 각 단계(t)마다 오차를 측정하고 이전 단계로 전달되는데, 이것을 BPTT라고 합니다. 즉, 3에서 구한 오차를 이용하여 Wxh, Whh, Why 및 바이어스(bias)를 업데이트합니다. 이때 BPTT는 오차가 멀리 전파될 때(왼쪽으로 전파) 계산량이 많아지고 전파되는 양이 점차 적어지는 문제점(기울기 소멸 문제(vanishing gradient problem))이 발생합니다. 기울기 소멸 문제를 보완하기 위해 오차를 몇 단계까지만 전파시키는 생략된-BPTT(truncated BPTT)를 사용할 수도 있고, 근본적으로는 LSTM 및 GRU를 많이 사용합니다.
Note ≡ 생략된-BPTT
계산량을 줄이기 위해 현재 단계에서 일정 시점까지만(보통 5단계 이전까지만) 오류를 역전파하는데, 이것을 생략된-BPTT라고 합니다.