RNN

기술노트
Admin (토론 | 기여)님의 2025년 9월 6일 (토) 05:08 판 (Gemini 벌크 업로더로 자동 업로드)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

🔄 RNN (Recurrent Neural Network)

RNN 또는 '순환 신경망'은 순서가 있는 데이터(Sequential Data), 즉 시계열 데이터나 자연어(텍스트)와 같이 시간의 흐름에 따라 변화하는 데이터를 처리하기 위해 설계된 인공신경망 모델입니다.

RNN의 가장 큰 특징은 네트워크 내부에 순환하는 구조(Hidden State)를 가지고 있어, 이전 단계의 정보를 기억하고 현재 단계의 입력과 함께 처리한다는 점입니다. 이를 통해 과거의 맥락을 이해하고 미래를 예측할 수 있습니다.


⚙️ RNN의 기본 구조

RNN은 각 시점(time step)마다 입력을 받아 출력을 만들고, 동시에 다음 시점으로 자신의 상태를 전달합니다. 이 전달되는 상태를 '은닉 상태(Hidden State)'라고 하며, 이것이 RNN의 '메모리' 역할을 합니다.

`h_t = f(h_{t-1}, x_t)`

  • `h_t` : 현재 시점의 은닉 상태
  • `h_{t-1}` : 이전 시점의 은닉 상태
  • `x_t` : 현재 시점의 입력

이처럼, 현재의 상태는 과거의 상태와 현재의 입력에 모두 영향을 받습니다.


⚖️ RNN의 한계

  • 장기 의존성 문제 (Long-Term Dependency Problem) : 시퀀스의 길이가 길어질수록, 초기의 중요한 정보가 뒤로 갈수록 희미해지거나 사라지는 문제가 있습니다. (기울기 소실/폭주 문제)
  • 병렬 처리의 어려움 : 이전 단계의 계산이 끝나야 다음 단계의 계산을 할 수 있는 순차적인 구조 때문에, GPU를 사용한 병렬 처리가 어렵습니다.

LSTM & GRU

이러한 장기 의존성 문제를 해결하기 위해, RNN의 내부 구조를 개선한 LSTM(Long Short-Term Memory)GRU(Gated Recurrent Unit) 모델이 등장했습니다. 이 모델들은 '게이트(Gate)'라는 장치를 도입하여, 어떤 정보를 기억하고 어떤 정보를 잊을지를 효과적으로 제어합니다.


💡 기술사 핵심 Point

  • RNN은 자연어 처리(NLP) 분야에서 문장 생성, 기계 번역, 감성 분석 등 다양한 작업에 널리 사용되었습니다.
  • 또한, 주가 예측, 날씨 예측 등 시계열 데이터 분석에도 활용됩니다.
  • 하지만 앞서 언급한 한계점 때문에, 현재 자연어 처리 분야의 주류는 RNN 계열 모델에서 트랜스포머(Transformer) 아키텍처로 넘어갔습니다.
  • 그럼에도 불구하고, RNN의 기본 원리는 순차 데이터를 이해하는 데 매우 중요하며, LSTM과 GRU는 여전히 다양한 문제 해결에 효과적으로 사용되고 있습니다.