우당탕탕 도비의 코딩로그

RNN(Recurrent Neural Networks)란?- 순환 신경망 설명 본문

AI/NLP

RNN(Recurrent Neural Networks)란?- 순환 신경망 설명

dobbie 2025. 2. 21. 10:40
반응형

Recurrent Neural Networks, RNN이라고 불리는 모델은 시퀀스 데이터(순차 데이터, 시계열 데이터)를 입력받아 처리할 수 있도록 설계된 신경망 아키텍쳐이다.

 

최근 가장 주목받고 있는 LLM인 ChatGPT는 Transformer 아키텍쳐를 베이스로 하고 있는데 RNN -> LSTM -> LRU -> Transformer 순으로 그 발전에 기여했다고 볼 수 있다.

 

RNN에서 가장 주목해야될 점은 이전 타임스텝의 정보를 기억하여 현재 출력에 반영한다는 점이다.

RNN이 처리할 수 있는 데이터들에는 순서가 중요한 문장내의 단어, 주식 가격의 변동을 나타내는 시퀀스 데이터들이 있다.

문장 내의 단어를 나타내는 다이어그램, t는 타임스탬프
주식 가격 변동을 나타내는 다이어그램, t는 타임스탬프

 

이러한 시퀀스 데이터를 처리하기 위해 RNN은 이전 시간(타입스탬프,t-1)의 은닉 상태(hidden state)를 현재 시간(타임스탬프,t)의 입력과 함께 처리하여 시간에 따른 정보를 유지하는 순환 구조를 사용한다.

 

 

RNN의 구조(유튜브 신박AI님 RNN영상 참조)

 

위의 그림에서 볼 수 있듯이 RNN은 총 세개의 파라미터(W, V, U)를 학습시킨다. -> 이 파라미터들은 각 timestep에서 공유된다.

히든 스테이트 h1는 $h_1 = f(W_h h_{0} + W_x x_1 + b)$  를 수행하여 이전 타입스탬의 히든 스테이트인 h0의 정보를 입력 데이터인 x1과 함께 업데이트하여 얻어지게된다. (f는 activation function인 tanh를 사용한다.)

h1 히든스테이트를 구한 다음 $y_t = Vh_1$ 를 계산하여 출력값 o1을 얻게 되고 o1에 activation function(softmax:다중 클래스 분류인 경우, logistic regression:이진 분류인 경우)를 적용하여 최종 출력값 $\hat{y}_1$를 얻게되는 구조이다. h2또한 이전 timestep의 hidden state인 h1을 입력받아 출력값을 출력하게 된다.

 

RNN의 주요 특징들을 정리해보면,

  • 시퀀스 데이터 처리: 시계열 데이터, 자연어 처리(NLP), 음성 인식, 주가 예측 등에 사용됨.
  • 순환 구조: 이전 시간의 은닉 상태(hidden state)를 다음 시간의 입력과 함께 처리하여 시간에 따른 정보를 유지함.
  • 파라미터 공유: 각 시점(time step)에서 동일한 가중치를 사용하여 학습 파라미터 수를 줄일 수 있음.

RNN의 문제점으로는,

  • 장기 의존성 문제(Long-Term Dependency) : RNN은 과거 정보를 유지하지만, 시간이 길어질수록 초반 정보가 사라지는 기울기 소실(Vanishing Gradient) 문제가 발생할 수 있음. 반대로 기울기가 너무 커지는 기울기 폭발(Exploding Gradient) 문제도 발생할 수 있음.
  • 병렬 연산의 어려움: CNN이나 Transformer 모델과 달리, RNN은 이전 상태를 기반으로 현재 상태를 계산해야 하므로 병렬 처리가 어렵고 학습 속도가 느림.

등이 있다.

 

반응형

'AI > NLP' 카테고리의 다른 글

[RNN] Pytorch로 RNN구현하기 (나라별 Family name 구분하기)  (0) 2025.02.27
Comments