Time Series(시계열)
일정 시간 간격으로 배치된 데이터들의 수열
- 과거의 데이터가 현재/미래까지 영향을 미침
- 머신러닝에서 배운 회귀분석은 시점은 고려하지 않으나 Time Series(시계열) 분석은 시간을 고려함
- 시계열 분석의 목적 : 시계열 데이터를 보고 앞으로 일어날 미래의 일을 예측
- e.g.
- 주가 예측
- 날씨 예측
- 자연어 처리
- 비디오 다음 frame 예측
- 음성 모델 등
sequence Model
모델의 입력이나 출력이 Sequence data인 상황을 다루는 모델
- e.g.
- Non sequential
- One to Many
- Many to Many
- Many to One
Sequence data
- 텍스트 스트림, 오디오 클립, 비디오 클립, 시계열 데이터 등
RNN(Recurrent Neural network)
시간에 의존적인 Time Series 분석을 하거나 순차적인(Sequential) 데이터 학습에 활용
- 일반 Neural network : 이전의 입력값에 영향을 받지 않음
- RNN : ht-1이라는 정보가 추가되어 이전의 입력값에 영향을 받게됨
BPTT(BackPropagation Through Time)
시간 방향으로 펼친 Neural Network의 역전파 수행
RNN의 단점
- 신경망이 깊어질 수록 Gradient vanishing(or exploding)문제가 일어날 수 있음
- RNN은 가까이 있는 정보(입력)에 영향을 더 많이 받음
- 몇몇 사례에서 초반부 데이터에 여향을 받는 경우가 많다
- Gradient vanishing/Exploding이 일어나면 기울기가 중간에 소멸하여 정보가 남아있지 않게되며 학습이 안됨
- 장기적인 의존성을 확인하는데 효과적이지 않음
LSTM(LongShort Term Memory Network)
![](https://velog.velcdn.com/images/dhtkddbs01/post/80f8e2c4-8c61-4fda-8d4e-e9c88a1c649a/image.png)
장기적인 의존성을 요구하는 학습을 할 수 있다.
Cell State
- LSTM의 핵심 아이디어
- 이전의 정보가 잘 흐를 수 있는 구조
- Cell State에 어떠한 값을 곱하거나 더해줌으로써 정보를 적절히 다음 state로 전달
- 곱하거나 더해지는 정도는 여러 gate에 의해 조정됨
Forget gate(f)
![](https://velog.velcdn.com/images/dhtkddbs01/post/96830543-7e0f-4bb4-bc04-d2319f89e0fd/image.png)
- 과거의 정보를 얼마나 잊을 것인가
- 이전 hidden state(ht-1)와 현재 input(xt)를 받아 sigmoid를 취함
- 0에 가까울 수록 이전의 많은 정보를 잊고 1에 가까울수록 유지
![](https://velog.velcdn.com/images/dhtkddbs01/post/6d3ed68c-edbf-4ef3-bbac-51411847ce4e/image.png)
- 현재 정보를 얼마나 기억할 것인가
- 이전 hidden state(ht-1)와 현재 input(xt)를 받아 sigmoid를 취함으로써 it를 구함
- tanh를 통해 새로운 백터를 만듦
- it와 새로운 백터를 곱한 값을 cell state를 업데이트하기 위해 사용
output gate(o)
![](https://velog.velcdn.com/images/dhtkddbs01/post/321ad49a-7fd7-4b85-90a7-7539e42dbfa2/image.png)
- 다음 state로 보낼 output(hidden state)를 구함
- 이전 hidden state(ht-1)와 현재 input(xt)를 받아 sigmoid를 취함으로써 ot를 구함
- Cell state(ct)에 tanh를 취한것과 ot를 곱함으로써 output(hidden state)으로 보냄