본문으로 건너뛰기
실습하기

순환 신경망(RNN)의 구조와 원리

RNN(Recurrent Neural Network)은 입력의 순서를 기억하면서 데이터를 처리하는 신경망입니다.

이번 수업에서는 RNN이 어떻게 구성되어 있는지, 어떤 원리로 순서를 기억하고 정보를 처리하는지 알아보겠습니다.


RNN는 어떻게 구성되어 있나요?

RNN은 같은 구조의 신경망 셀이 반복되는 형태로 구성됩니다.

각 셀은 입력과 이전 시점의 출력을 받아 처리하고, 다음 시점으로 출력을 전달합니다.

RNN 구조 흐름
입력 X1 → [RNN 셀] → 출력 H1 →
입력 X2 → [RNN 셀] → 출력 H2 →
입력 X3 → [RNN 셀] → 출력 H3 → ...

각 시점에서의 출력은 이전 시점의 출력(H)을 기억하고 이를 활용합니다.

RNN은 같은 연산 구조를 시간 축을 따라 반복하며, 매 시점마다 정보를 업데이트합니다.

예를 들어 문장을 처리할 때 첫 단어부터 마지막 단어까지 차례대로 입력하면, 앞서 본 단어들의 정보가 뒷부분 처리에 영향을 줄 수 있습니다.

시간 t에 따른 RNN 구조
[t=1] → [t=2] → [t=3] → ...
X1 X2 X3
| | |
↓ ↓ ↓
H1 → H2 → H3

이 구조 덕분에, 단어, 음성, 숫자와 같은 순차적인 데이터를 자연스럽게 이해하고 예측할 수 있습니다.


입력, 은닉 상태, 출력의 관계

RNN 셀은 다음과 같은 세 가지 주요 요소로 구성됩니다.

  • 입력값 (Xt): 현재 시점의 입력 데이터

  • 은닉 상태 (Ht): 과거 정보를 저장하고 요약한 내부 상태

  • 출력값 (Yt): 현재 시점에서의 최종 출력 또는 예측 결과

RNN은 이전의 은닉 상태(Ht-1)와 현재 입력(Xt)을 함께 이용해 새로운 은닉 상태(Ht)를 계산합니다.

이 은닉 상태는 다음 입력으로 넘어갈 때 기억 정보로 다시 사용됩니다.


다음 수업에서는 RNN의 대표적인 이슈인 장기 의존성 문제(Long-term Dependency Problem)에 대해 알아보겠습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!