RNN 이론 개요

  1. Idea behind Recurrent Neural Network
  1. Vanishing Gradient Problem
  1. Long Short Term Memory (LSTM)
  1. Extra. LSTM Variations
 

인공 신경망의 종류

Artifical Neural Network
Supervised
for Regression & Classification
Convolutional Neural Network
Supervised
for Computer Vision
Recurrent Neural Network
Supervised
for Time Series Analysis
Self-Organizing Maps
Unsupervised
for Feature Detection
Deep Boltzman Machines
Unsupervised
for Recommendation Systems
AutoEncoders
Unsupervised
for Recommendation Systems
RNN은 시퀀스 데이터를 처리하는 데 특화된 인공신경망의 한 종류이다.
일반적인 인공신경망과 다른 점은, 이전의 정보를 기억해서 다음 출력에 반영할 수 있다
 

RNN의 형태

notion image
  1. One to One
    1. 이건 단순 Neural Network와 같다.
  1. One to Many
    1. 이미지 하나를 입력 받아 문장 만들어주기
    2. 근데 이미지 입력을 받고 Sequence가 아닌 형태로 문장을 만들 수 있지 않나?
      1. 문장 자체가 Sequence라서 제대로 된 문장을 만드려면 RNN 형태여야 한다.
  1. Many to One
    1. 감정 분석과 같이 문장을 읽고 감정을 하나로 예측하기
    2. 근데 그냥 Text를 하나로 넣으면 안되나?
      1. 가능은 하지만 문맥 정보가 손실된다.
  1. Many to Many
    1. 번역, 챗봇 등
 
대체로 문장과 같이 Sequence가 중요한 분석에서 RNN을 사용하는 것 같다.
그럼 문장 말고 주식의 경우에는 왜 RNN을 사용할까?
주식은 과거 데이터가 미래 예측에 영향을 주는 시간 의존성이 강한 데이터이다.
 
일반적인 신경망에서는
  • 과거 5일치 가격을 입력으로 넣더라도, 그 순서 자체의 의미는 고려하지 않는다.
  • 예: [1230, 1240, 1220, 1210, 1200]을 그냥 숫자 벡터로 봄
 
그러나 RNN 기반 모델
  • 위 숫자를 하나씩 시퀀스로 넣고, 시간 흐름을 따라 기억하고 누적한다.
  • 이전 시점의 은닉 상태를 사용하여 현재 예측에 반영한다.
  • 즉, “시간 흐름상 어떤 변화가 일어났는가”를 인식한다.
 

Vanishing Gradient Problem

Vanishing Gradient Problem이란, 역전파(backpropagation) 과정에서 기울기(gradient)가 점점 작아져서 과거 시점의 가중치들이 거의 업데이트되지 않는 현상이다.
notion image
다음은 역전파 공식에서 중요한 부분이다.
 
(= recurrent weight) 을 곱하는 이유는 시계열 신경망의 특성상 각 시간 단계의 은닉 상태가 이전 단계의 은닉 상태와 recurrent weight 를 통해 연결되어 있기 때문이다.
  • 시간 간격이 커질수록 → 곱셈 연산이 많아지고
  • 이 작으면 → 곱할수록 0에 가까워진다.
  • 반대로 1보다 크면 곱할수록 Exploding Gradient (기울기 폭발)
 
예를 들어, “나는 밥을 먹고 회사에 갔다.”
이 문장에서 “나는”이라는 단어가 마지막의 “갔다”에 영향을 미쳐야 할 수도 있다.
그런데 Vanishing Gradient 때문에 RNN은 너무 과거의 정보인 “나는”을 거의 기억하지 못하게 되는 것이다.
 

대표적인 해결방법

  1. Exploding Gradient
    1. Truncated Backpropagation
    2. Penalties
    3. Gradient Clipping
  1. Vanishing Gradient
    1. Weight Initialization
    2. Echo State Networks
    3. Long Short-Term Memory Newworks (LSTMs)
 
🔽 RNN과 소멸하는 기울기 문제에 대해서 좀 더 알아보고 싶다면,
 

LSTMs

🔽 LSTMs 에 대해서 아주 잘 적혀있다.
notion image
  • CS (Cell State): 장기기억에 유리함
  • HS (Hidden State): 오른쪽에 Output Gate을 곱하기에 단기기억에 유리함
  • Forget Gate : 이전 셀 상태 중 얼마나 잊을지 결정
    • Sigmoid 함수라서 0~1의 결과를 출력한다. (0을 곱하면 잊게 됨)
  • Input Gate: 현재 입력을 바탕으로 얼마나 저장할지 결정
  • Candidate Gate: 새로운 정보를 기억할 후보값
  • Output Gate: 다음 은닉 상태에 얼마나 보일지 결정
    • tanh 함수는 -1~1의 결과를 출력한다.
 
역전파 공식은 다음과 같다.
기존 RNN과는 다르게 곱하기가 아니라 더하기로 되어있어서 기울기가 0으로 빠르게 수렴하지 않는다.
 
🔽 이 글에 RNN의 뉴런 하나를 기준으로 어떻게 예측하는지 실험 결과를 볼 수 있다.
 

LSTMs variations

이 부분은 논문을 읽으면서 다른 글로 좀 더 자세하게 공부하고자 한다.
🔽 다양한 LSTMs 들을 비교한 논문이다.