시퀀스 데이터란??
Sequence data는 일반적으로 순서가 중요한 데이터 형태를 말합니다. 예를 들어, 주식, DNA 서열, 음악 및 음성 신호, 자연어 문장 등이 sequence data의 예시입니다.
RNN은 multi layer perceptron과 식이 비슷하지만 현재 입력외에도 그전 상태를 기억하는 변수가 하나더 있음을 알 수 있다. 그리고 이런 변수에 W가중치를 곱해 정보를 추출한다.
RNN의 역전파
RNN의 역전파는 그림과 같이 퍼져 나가게 된다. 이를 BPTT라고 한다.역전파 계산은 위에 보았던 RNN의 식을 chain rule을 적용해 구해주면 된다.
BPTT란?
BPTT(Backpropagation Through Time)는 순환 신경망(Recurrent Neural Network, RNN)에서 사용되는 역전파 알고리즘의 한 종류입니다. BPTT는 RNN의 시간적 연속성을 고려하여 네트워크의 파라미터를 업데이트합니다.
RNN은 이전 시점에서의 입력값과 현재 시점의 입력값을 고려하여 출력을 계산합니다. 이 때, 출력은 다음 시점에서의 입력으로 사용됩니다. 따라서 RNN은 시간적 연속성이 있는 데이터(예: 시계열 데이터, 문장 등)를 처리하는 데 유용합니다.
BPTT는 RNN에서 역전파 알고리즘을 수행할 때 시간의 흐름에 따라 그래디언트(gradient)를 전파합니다. 즉, 입력 시퀀스의 처음부터 끝까지 모든 시점에서의 출력 값에 대한 손실 함수의 미분 값을 계산하고, 이를 이전 시점으로 전파합니다. 이를 통해 네트워크의 파라미터를 업데이트할 수 있습니다.
BPTT를 통해 미분하게 되면 위와 같은 식이 나오는데 빨간색 부분이 시퀀스의 길이가 길수록 불안정해지기 쉽다.
따라서 truncated BPTT를 쓰기도 한다.
truncated BPTT란??
Truncated BPTT(Truncated Backpropagation Through Time)는 BPTT의 한 종류로, RNN 모델에서 시간적인 의존성을 고려하면서도 긴 시퀀스에서 그래디언트 소실(vanishing gradient) 또는 폭주(exploding gradient) 문제를 해결하기 위해 제안된 기법입니다.
BPTT는 모든 시점에 대해 그래디언트를 계산하고 전파하므로, 시간이 긴 데이터에서는 그래디언트 소실 또는 폭주 문제가 발생할 가능성이 높습니다. Truncated BPTT는 이 문제를 해결하기 위해, RNN을 특정 길이로 자른 뒤 해당 구간에서만 그래디언트를 계산하고 전파합니다.
예를 들어, Truncated BPTT를 적용하려면 시퀀스를 임의의 길이로 자른 다음, 각 구간에서만 그래디언트를 계산하고 전파합니다. 이 때, 이전 구간에서의 출력 값은 현재 구간의 입력 값으로 사용됩니다. 이 과정을 여러 번 반복하여 전체 시퀀스에 대한 그래디언트를 계산합니다.
Truncated BPTT는 시간적인 의존성을 고려하면서도 계산량을 줄이므로, 긴 시퀀스에서도 효과적인 학습을 할 수 있습니다. 하지만, 구간을 자를 때 매끄럽지 않은 경계 부분에서 정보가 손실될 수 있으므로, 적절한 길이를 선택하는 것이 중요합니다. 또한, Truncated BPTT를 사용하면 모델의 일부 그래디언트가 잘려서 손실될 가능성이 있으므로, 모델의 학습에 영향을 미칠 수 있습니다.
BPTT는 시간의 길이에 따라 그래디언트를 계속 전파하므로, 시간이 오래 걸리거나 긴 시퀀스에서는 그래디언트 소실(vanishing gradient) 또는 폭주(exploding gradient) 문제가 발생할 수 있습니다. 이를 해결하기 위해 다양한 기법이 제안되어 있으며, 예를 들어 LSTM(Long Short-Term Memory)과 GRU(Gated Recurrent Unit) 같은 RNN의 변형 모델이 사용됩니다.
'수학 > AI Math' 카테고리의 다른 글
CNN (0) | 2023.03.11 |
---|---|
베이즈 통계 (0) | 2023.03.11 |
모수, 최대가능도 추정법,쿨백 라이블러 발산 (1) | 2023.03.11 |
몬테 카를로 샘플링 (0) | 2023.03.11 |
비선형 함수 모델링 (0) | 2023.03.11 |