728x90
BPTT(Backpropagation through time), RNN의 오차역전파는 시간 순서대로 펼쳐놓은 것의 반대 순서로 역전파를 수행하면 된다.
Loss function
loss function을 시간 순서대로 펼쳐 놓은 상태에서 정의해야한다. 단계별로 출력하기에 손실 함수로 단계별로 출력된다.
전체 손실 함수는 각 단계의 손실 함수를 더한 값으로 정의합니다.
$$ J(f(X;\theta), t)=L_{1},L_{2},L_{3},L_{4} $$
BPTT
역전파 순서는 전체 손실 함수에서 시작하여 \( y_{4}\)를 지나 \( h_{4} - h_{3} - h_{2} - h_{1} \) 순서로 진행되면서 입력 계층으로 역전파가 분기된다.
Truncated BPTT
truncated BPTT는 BPTT 알고리즘의 단점을 보완하기 위해 만들어졌다. BPTT는 마지막 단계를 실행한 뒤에 역전파를 실행하기 때문에 끝 없는 순차열이나 아주 긴 순차열에는 적용할 수 없다.
이를 해결하기 위해 일정 단계를 묶어서 순방향 진행을 하고 역전파를 실행하는 방법을 제시하였고 이를 Truncated BPTT 알고리즘이라고 한다.
묶음 단위로 역전파를 하기 때문에 매우 긴 순차열도 학습할 수 있다. 이때 주의해야하는 점은 첫 번째 묶음과 두 번째 묶음의 순차열이 연속적인 순차열이 되도록 만들어야 한다. 이렇게 해야지 역전파 진행시에 연속된 context를 유지할 수 있다.
728x90
'NLP' 카테고리의 다른 글
[NLP] 자연어처리의 이해 (0) | 2023.04.03 |
---|---|
[RNN] Transformer (0) | 2023.01.31 |
[NLP] Seq2Seq with Attention (0) | 2023.01.31 |
[RNN] RNN 모델 종류 (0) | 2023.01.26 |
[RNN] RNN 구조 (0) | 2023.01.26 |