본문 바로가기
AI Naver boost camp/[Week 02] ML LifeCycle

RNN - 순환신경망 이란??

by AI-BT 2024. 8. 18.
728x90
반응형

Recurrent Neural Network (RNN) 이란?

Recurrent Neural Network (RNN)은 시계열 데이터와

같이 순차적으로 이루어진 데이터를 처리하는 데 적합한 신경망입니다.

RNN의 기본 아이디어는 이전 시점의 정보를 기억하고 이를 현재 시점의 입력과 함께 사용하여 출력을 생성하는 것입니다.

RNN의 기본 개념

RNN은 다음과 같은 수식으로 표현됩니다:

\( h_{t} = \text{tanh}(W_{hh} h_{t-1} + W_{xh} x_{t}) \)

 

여기서:

  • \( h_{t} \) 는 현재 시점 t의 은닉 상태입니다.
  • \( h_{t-1} \) 는 이전 시점의 은닉 상태입니다.
  • \( W_{hh} \) 는 은닉 상태에서 은닉 상태로의 가중치입니다.
  • 는 입력에서 은닉 상태로의 가중치입니다.
  • \( x_{t} \) 는 현재 시점의 입력입니다.

RNN은 시간이 흐름에 따라 은닉 상태를 업데이트하며, 이를 통해 시계열 데이터를 처리할 수 있습니다.


RNN의 문제점: Vanishing Gradient와 Exploding Gradient

RNN의 역전파(backpropagation) 과정에서 두 가지 주요 문제가 발생할 수 있습니다.

**기울기 소실(Vanishing Gradient)**과 **기울기 폭발(Exploding Gradient)**입니다.

Vanishing Gradient 문제

역전파 과정에서 다음과 같은 미분이 계산됩니다:

\( \frac{\partial h_t}{\partial h_{t-1}} = \text{tanh}'(W_{hh} h_{t-1} + W_{xh} x_{t}) W_{hh} \)

여기서 tanh′\text{tanh}' 함수의 값은 일반적으로 0과 1 사이입니다.

이 값이 반복적으로 곱해지면, 기울기 값이 점점 작아져 0에 가까워지는 기울기 소실 문제가 발생할 수 있습니다.

Exploding Gradient 문제

반대로, 가중치 \( W_{hh} \) 가 큰 경우 동일한 행렬이 반복적으로 곱해지면

기울기가 기하급수적으로 증가하여 기울기 폭발 문제가 발생할 수 있습니다.

이는 학습 과정에서 매우 큰 값으로 인해 모델이 불안정해지고 학습이 실패하게 됩니다.

문제 해결 방법: Gradient Clipping

기울기 폭발 문제를 해결하기 위한 한 가지 방법은 Gradient Clipping입니다.

Gradient Clipping은 역전파 과정에서 기울기가 특정 임계값(threshold)을 초과할 경우

이를 잘라내어 최대값으로 설정하는 방법입니다.


결론

RNN은 시계열 데이터를 처리하는 데 유용하지만, 역전파 과정에서 기울기 소실기울기 폭발 문제를 겪을 수 있습니다. 이를 해결하기 위해 Gradient Clipping 기법을 사용하여 기울기의 크기를 제한할 수 있습니다.

하지만, 이 방법만으로는 충분하지 않을 수 있으며, LSTM이나 GRU와 같은 고급 구조를 사용 된다.

728x90
반응형

댓글