1. BPTT의 핵심 개념: Unfolding in Time

RNN은 이전 타임 스텝(time step)의 은닉 상태(hidden state)를 현재 타임 스텝의 입력으로 받는 순환적인 구조를 가지고 있습니다. 이러한 순환 구조 때문에 일반적인 역전파 알고리즘을 직접 적용하기 어렵습니다.

BPTT는 이 문제를 해결하기 위해 시간에 따라 네트워크를 펼치는(Unfolding) 방법을 사용합니다. 즉, 순환적인 구조의 RNN을 시퀀스의 길이만큼 복제하여 마치 여러 개의 레이어가 순차적으로 연결된 깊은 피드포워드 신경망처럼 만듭니다.

RNN Unfolding 구조

RNN의 시간에 따른 Unfolding 구조 (출처: Wikimedia Commons)

예를 들어, 시퀀스의 길이가 3이라면 (t=1, t=2, t=3), RNN은 3개의 타임 스텝에 걸쳐 펼쳐지며, 각 타임 스텝은 하나의 레이어처럼 취급됩니다. 중요한 점은, 펼쳐진 모든 타임 스텝에서 사용되는 가중치 행렬(Weight matrices) $W_h$, $W_x$, $W_y$는 동일한 값을 공유(parameter sharing)한다는 것입니다. 이는 모델이 시간의 흐름에 관계없이 일관된 패턴을 학습하도록 돕는 중요한 특징입니다.

2. BPTT의 작동 원리: 순전파와 역전파

BPTT는 크게 순전파(Forward Pass)와 역전파(Backward Pass) 두 단계로 구성됩니다.

2.1. 순전파 (Forward Pass)

순전파 단계에서는 입력 시퀀스를 처음부터 끝까지 순서대로 처리하며 각 타임 스텝의 은닉 상태와 출력값을 계산합니다.

  • 입력: 시퀀스 데이터 $x_1, x_2, …, x_T$
  • 초기 은닉 상태: $h_0$ (보통 0 벡터로 초기화)

각 타임 스텝 $t$ (1부터 T까지)에서 다음 계산이 순차적으로 이루어집니다.

  1. 은닉 상태 계산: 현재 타임 스텝의 입력 $x_t$와 이전 타임 스텝의 은닉 상태 $h_{t-1}$을 사용하여 현재 은닉 상태 $h_t$를 계산합니다. 활성화 함수로는 주로 하이퍼볼릭 탄젠트(tanh)가 사용됩니다. \(a_t = W_h h_{t-1} + W_x x_t + b_h\) \(h_t = \tanh(a_t)\)

  2. 출력 계산: 현재 은닉 상태 $h_t$를 사용하여 해당 타임 스텝의 출력 $\hat{y}_t$를 계산합니다. 문제의 종류에 따라 출력층의 활성화 함수가 달라집니다 (예: 분류 문제의 경우 소프트맥스). \(o_t = W_y h_t + b_y\) \(\hat{y}_t = \text{softmax}(o_t)\)

이 과정은 마지막 타임 스텝 T까지 반복됩니다. 순전파가 끝나면, 각 타임 스텝의 예측값 $\hat{y}_t$와 실제값 $y_t$ 사이의 손실(Loss)을 계산합니다. 전체 시퀀스에 대한 총 손실 $L$은 각 타임 스텝의 손실 $L_t$의 합으로 정의됩니다.

\[L = \sum_{t=1}^{T} L_t\]

전체 출력에 대한 Loss 계산

2.2. 역전파 (Backward Pass)

역전파 단계에서는 계산된 총 손실 $L$을 각 가중치 파라미터($W_h, W_x, W_y$)에 대해 미분하여 그래디언트(gradient)를 구하고, 이를 이용해 파라미터를 업데이트합니다. BPTT의 핵심은 시간의 역방향(T, T-1, …, 1)으로 그래디언트를 전파하는 것입니다.

  1. 출력층의 그래디언트: 먼저, 손실 $L$에 대한 출력 가중치 $W_y$의 그래디언트를 계산합니다. 이는 일반적인 역전파와 동일합니다. \(\frac{\partial L}{\partial W_y} = \sum_{t=1}^{T} \frac{\partial L_t}{\partial \hat{y}_t} \frac{\partial \hat{y}_t}{\partial o_t} \frac{\partial o_t}{\partial W_y} = \sum_{t=1}^{T} (\hat{y}_t - y_t) h_t^T\)

  2. 은닉층의 그래디언트 (시간을 거슬러 전파): 손실 $L$에 대한 은닉층 가중치 $W_h$와 입력층 가중치 $W_x$의 그래디언트를 계산하는 것이 BPTT의 핵심입니다. 연쇄 법칙(Chain rule)에 따라 그래디언트는 시간의 역방향으로 전파됩니다.

    타임 스텝 $t$에서의 손실 $L$에 대한 은닉 상태 $h_t$의 그래디언트 $\frac{\partial L}{\partial h_t}$는 두 부분으로 구성됩니다.

    • 현재 타임 스텝 $t$의 출력에 의한 그래디언트
    • 다음 타임 스텝 $t+1$의 은닉 상태 $h_{t+1}$로부터 전달되는 그래디언트

    이를 수식으로 나타내면 다음과 같습니다. \(\frac{\partial L}{\partial h_t} = \frac{\partial L}{\partial \hat{y}_t} \frac{\partial \hat{y}_t}{\partial h_t} + \frac{\partial L}{\partial h_{t+1}} \frac{\partial h_{t+1}}{\partial h_t}\)

    이 재귀적인 관계를 통해 마지막 타임 스텝 T부터 시작하여 $h_1$까지 그래디언트를 순차적으로 계산할 수 있습니다.

  3. 가중치 그래디언트 계산 및 업데이트: 모든 타임 스텝에 걸쳐 계산된 그래디언트들을 합산하여 최종적으로 $W_h$와 $W_x$에 대한 그래디언트를 구합니다. \(\frac{\partial L}{\partial W_h} = \sum_{t=1}^{T} \frac{\partial L}{\partial h_t} \frac{\partial h_t}{\partial W_h}\) \(\frac{\partial L}{\partial W_x} = \sum_{t=1}^{T} \frac{\partial L}{\partial h_t} \frac{\partial h_t}{\partial W_x}\)

    이렇게 계산된 그래디언트들을 사용하여 경사 하강법(Gradient Descent) 등의 최적화 알고리즘을 통해 가중치들을 업데이트합니다.

3. BPTT의 단점: Gradient Vanishing, Exploding

BPTT는 이론적으로 강력하지만, 시퀀스의 길이가 길어질 경우 심각한 문제에 직면하게 됩니다.

  • 그래디언트 소실 (Vanishing Gradient Problem): 역전파 과정에서 그래디언트는 여러 타임 스텝을 거치며 동일한 가중치 행렬 $W_h$를 반복적으로 곱하게 됩니다. 만약 $W_h$의 고유값(eigenvalue)이 1보다 작으면, 그래디언트는 시간이 지남에 따라 기하급수적으로 작아져 0에 수렴하게 됩니다. 이 경우, 먼 과거의 정보가 현재의 학습에 거의 영향을 미치지 못하여 장기 의존성(Long-term dependency)을 학습하기 어렵게 됩니다.

  • 그래디언트 폭주 (Exploding Gradient Problem): 반대로 $W_h$의 고유값이 1보다 크면, 그래디언트가 기하급수적으로 커져 발산하게 됩니다. 이는 학습 과정을 불안정하게 만들고 모델이 수렴하지 못하게 합니다.

4. BPTT의 한계 극복을 위한 노력

이러한 BPTT의 한계를 극복하기 위해 다양한 방법들이 제안되었습니다.

4.1. 절단된 BPTT (Truncated BPTT)

가장 현실적이고 널리 사용되는 해결책 중 하나는 절단된 BPTT(Truncated BPTT)입니다. 이는 전체 시퀀스에 대해 역전파를 수행하는 대신, 정해진 특정 타임 스텝(예: 10~20 스텝)만큼만 역전파를 수행하는 방식입니다.

  • 작동 방식: 순전파는 전체 시퀀스에 대해 수행하여 은닉 상태를 계속 전달하지만, 역전파는 현재 타임 스텝에서부터 일정 구간까지만 진행하고 그 이전의 그래디언트 전파는 차단합니다.
  • 장점: 계산 비용을 크게 줄일 수 있으며, 그래디언트 폭주 문제도 완화하는 효과가 있습니다.
  • 단점: 역전파가 절단된 지점보다 더 먼 과거의 정보는 학습할 수 없으므로, 매우 긴 장기 의존성을 학습하는 데에는 한계가 있습니다.

4.2. 그래디언트 클리핑 (Gradient Clipping)

그래디언트 폭주 문제를 해결하기 위한 간단하면서도 효과적인 방법입니다. 그래디언트의 L2 노름(norm)이 특정 임계값(threshold)을 초과할 경우, 그래디언트의 크기를 임계값에 맞게 줄여주는 기법입니다. 이는 그래디언트의 방향은 유지하면서 크기만 조절하여 학습의 안정성을 높여줍니다.

4.3. LSTM과 GRU

근본적으로 그래디언트 소실 문제를 해결하기 위해 고안된 RNN의 변형 모델들입니다.

  • LSTM (Long Short-Term Memory): ‘셀 상태(Cell State)’라는 별도의 정보 흐름 경로를 만들어 그래디언트가 장기간에 걸쳐 효과적으로 전파될 수 있도록 합니다. 입력, 망각, 출력 게이트(gate)를 통해 정보의 흐름을 정교하게 제어하여 장기 의존성 학습 능력을 크게 향상시켰습니다.
  • GRU (Gated Recurrent Unit): LSTM을 단순화한 모델로, 업데이트 게이트와 리셋 게이트를 사용하여 LSTM과 유사한 성능을 내면서도 파라미터 수가 적어 계산 효율성이 높습니다.

카테고리:

업데이트: