RNN 이론 개요
- Idea behind Recurrent Neural Network
- Vanishing Gradient Problem
- Long Short Term Memory (LSTM)
- 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의 형태

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

다음은 역전파 공식에서 중요한 부분이다.
(=
recurrent weight) 을 곱하는 이유는 시계열 신경망의 특성상 각 시간 단계의 은닉 상태가 이전 단계의 은닉 상태와 recurrent weight 를 통해 연결되어 있기 때문이다.- 시간 간격이 커질수록 → 곱셈 연산이 많아지고
- 이 작으면 → 곱할수록 0에 가까워진다.
- 반대로 1보다 크면 곱할수록
Exploding Gradient(기울기 폭발)
예를 들어, “나는 밥을 먹고 회사에 갔다.”
이 문장에서 “나는”이라는 단어가 마지막의 “갔다”에 영향을 미쳐야 할 수도 있다.
그런데 Vanishing Gradient 때문에 RNN은 너무 과거의 정보인 “나는”을 거의 기억하지 못하게 되는 것이다.
대표적인 해결방법
- Exploding Gradient
- Truncated Backpropagation
- Penalties
- Gradient Clipping
- Vanishing Gradient
- Weight Initialization
- Echo State Networks
- Long Short-Term Memory Newworks (LSTMs)
🔽 RNN과 소멸하는 기울기 문제에 대해서 좀 더 알아보고 싶다면,
LSTMs
🔽 LSTMs 에 대해서 아주 잘 적혀있다.

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 들을 비교한 논문이다.


![[Deep Learning 101] LSTM, 초보자를 위한 안내서](https://www.notion.so/image/https%3A%2F%2Fi.ytimg.com%2Fvi%2FHXa7Ah87_gM%2Fmaxresdefault.jpg?table=block&id=24060608-ac17-805a-aad5-c17592ae43e4&cache=v2)
