본문 바로가기
인공지능

RNN (Recurrent Neural Network)

by 3in9u 2025. 3. 27.

🔷 1. RNN이란?

**Recurrent Neural Network (순환신경망)**은
"과거 정보를 기억하며 다음 동작을 결정하는" 뇌처럼 작동하는 신경망이에요.

🎯 왜 필요한가요?

일반 신경망(Dense, CNN 등)은 입력의 순서를 몰라요.
하지만 사람의 언어, 음악, 시간 흐름은 순서가 중요하죠?

예를 들어:

  • "나는 밥을 먹었다"
  • "먹었다 밥을 나는" ← 이상해!

이처럼 RNN은 **"이전 단어를 기억하면서 다음 단어를 예측"**할 수 있어요.

 


🔷 2. 입력, 출력, 은닉 상태(h_t)의 관계

✅ 입력 xt

  • 매 시간 입력되는 데이터
  • 예: "a", "p", "p", "l" 같은 문자

✅ 은닉 상태 ht

  • 지금까지 입력된 정보를 요약한 "기억"
  • 매 순간 새로 계산되지만, 이전 기억도 반영됨
  • 수식으로는 이렇게 계산돼요:

  • 이전 상태 ht−1h_{t-1}와 현재 입력 xtx_t로 현재 상태 hth_t를 만듦

✅ 출력 yty_t

  • 모델이 예측한 값
  • 예: 다음 글자가 무엇인지


🔷 3. 은닉 상태(hidden state)의 역할

RNN에서 진짜 핵심이에요!

  • 매 시점의 입력만 보면 전체 문맥을 알 수 없어요.
  • 그래서 은닉 상태 hth_t가 지금까지의 입력을 기억하고 요약해서 전달해줘요.
  • 이 덕분에 “순서 있는 정보”를 이해할 수 있는 거예요.
입력:  a  →  p  →  p  →  l
       ↓     ↓     ↓     ↓
     h_1   h_2   h_3   h_4

이 h_4는 지금까지 본 모든 정보(a, p, p, l)를 요약한 정보야.

 


🔷 4. hidden_size vs num_layers

✅ hidden_size

  • 하나의 은닉 상태 벡터의 크기 (예: 20이면 20차원 벡터)
  • 기억을 얼마나 풍부하게 할 수 있느냐와 관련 있음

✅ num_layers

  • RNN 층을 위로 몇 개 쌓을 건지
  • 층이 많아질수록 더 복잡한 패턴을 학습할 수 있지만, 훈련도 더 어려워져요

🔷 5. 순환 횟수는 시퀀스 길이에 따라

  • "apple" 입력 → 5개의 글자 → RNN은 5번 순환!
  • 입력 길이만큼 RNN 내부에서는 반복 수행됨

⚠️ 주의: 이건 epoch와는 다름!


🔷 6. epoch는 뭔가요?

  • 모델이 전체 데이터를 몇 번 반복해서 학습하는지를 뜻함
  • 예: epoch=100 → 전체 데이터셋을 100번 반복 학습

🔷 7. One-hot 인코딩

컴퓨터는 문자를 직접 이해하지 못해요.
그래서 문자 → 숫자 → 벡터 로 바꿔줘야 해요.

문자 집합: ['a', 'p', 'l', 'e']
'a' → [1, 0, 0, 0]
'p' → [0, 1, 0, 0]
 

이걸 One-hot 인코딩이라고 해요.


🔷 8. RNN이 잘 쓰이는 곳

분야예시
자연어 처리 글자 예측, 문장 생성, 번역
시계열 분석 주가 예측, 센서 데이터 분석
음성 인식 말 → 텍스트 변환
음악 생성 멜로디 자동 생성

🔷 9. RNN의 한계 (미리 알고 가기)

  • 긴 문장을 기억하기 어렵다 → 기억이 점점 소실됨 (vanishing gradient)
  • 이를 보완하기 위해 LSTM, GRU 같은 구조가 나왔어요

🎯 핵심 요약 10줄로 끝내기!

  1. RNN은 순서를 가진 데이터를 처리하는 신경망이에요
  2. 매 시간마다 입력 xt, 은닉 상태 h, 출력 y가 있어요
  3. hth_t는 이전까지의 정보를 기억하는 요약 벡터예요
  4. 입력 길이만큼 RNN은 내부적으로 반복 순환해요
  5. 출력은 예: 다음 글자 예측, 감정 분류 등 다양해요
  6. hidden_size는 기억의 크기, num_layers는 층 수
  7. one-hot 인코딩으로 문자를 벡터로 바꿔서 신경망에 입력해요
  8. 에포크(epoch)는 데이터를 몇 번 학습할지 설정하는 것
  9. 시퀀스의 길이는 순환 횟수를 결정해요
  10. RNN은 인간처럼 "과거 기억을 참고해서" 판단할 수 있어요

'인공지능' 카테고리의 다른 글

CNN 아키텍처 발전 흐름 요약  (0) 2025.03.27
딥러닝 학습 핵심 개념 정리  (0) 2025.03.27
AlexNet  (0) 2025.03.21
CNN  (0) 2025.03.21
다중 분류 (Multi-class Classification)  (0) 2025.03.21