1. 시계열 회귀분석
- 은닉층이 없고 입력값과 출력값의 관계가 다이렉트로 연결
- 모델 개수는 1개의 회귀분석
- 설명 가능
2. 딥러닝
- 입력값과 출력값이 직접적으로 연결되지 못하고 복잡한 비선형성을 포함
- 2개 이상(은닉층과 노드 갯수만큼)의 회귀분석
- 설명 불가능
- 사람이 설정해야하는 하이퍼파라미터가 많음
3. 시계열분석에서 딥러닝 적용 필요성
(1) 데이터에서 자동으로 feature 추출하고 학습 가능
(2) 여러 X와 여러 Y 가능
(3) 길이가 긴 sequence 패턴도 추출 가능
4. 시계열 딥러닝 알고리즘 (RNN, LSTM, GRU)
(1) CNN
- 비시계열 딥러닝, MLP 기반
- 이미지나 영상에서의 인식이나 분류 문제 등에서 뛰어난 결과
- 입력된 이미지보다 더 큰 이미지로 손쉽게 확장될 수 있는 특징
- YOLO, GAN 등의 모델들은 CNN을 기반
- 은닉층 노드를 두번 이상 건드리지 않고 한번만 실행
- 스냅샷 데이터 (이미지, 영상, 바둑 )
(2) RNN
- 시계열 딥러닝, AR
- 예측이 가장 큰 분석 목적
- 비현실적으로 긴 시계열도 쉽게 확장 가능
- 가변 길이의 시계열 데이터도 처리 가능
- 은닉층 노드를 공통으로 사용하여 계속 갱신
- 시퀀스 데이터 (기상, 주가, 언어, 음성)
1. 종류
- One-to-One : Vanilla Neural Networks
- One-to-Many : Image Captioning, Target Explanation
- Many-to-One : Classification, Time Series Analysis(어제, 오늘 -> 내일), Sentiment Analysis, Spam Detection
- Many-to-Many : Time Series Analysis, Machine Translation (번역), Prediction of Next Word
2. 한계
- 감소하는 Gradients는 학습하기 어려움
- 데이터의 길이에 비례해 BPTT가 사용하는 컴퓨터 비용 증가
- 은닉층 과거 정보가 끝까지 전달되지 못함
- 멀리 전파될 때 전파량이 점차 작아지는 Vanishing Gradients 문제 발생 -> ReLU 사용 (RNN에서는 같은 레이어를 반복하기 때문에 미사용)
(3) LSTM
- 원인과 결과의 관계를 장시간까지 반영 - RNN 개선
- 일정한 오류를 유지함으로써 여러 네트워크가 장시간(1000개 이상 layer)에 걸쳐 학습 가능하도록 함
- Cell 개념으로 열리고 닫히는 게이트로 어떤 데이터를 저장/읽기/쓰기/삭제 선택
- 기존 RNN에 Cell State(C)를 추가하여 얼마나 과거의 데이터를 기억할지를 제안함 (더하기 사용)
- RNN의 은닉층을 LSTM Block으로 대체, 각 Block은 기존 H에 C가 추가된 네트워크 구조
- Forget Gate의 곱하기 노드가 잊어야 할건 기울기를 줄이고 그렇지 않은건 과거로 전해져 '기억셀' 기울기 소실 없음
(4) GRU
- LSTM의 구조를 간결히 변경해 빠른 속도와 유사한 성능 보임
- LSTM의 Ct와 Ht가 하나의 벡터 Ht로 통합
- GRU가 LSTM보다 학습할 가중치가 적음
- 주제별로 LSTM과 GRU의 성능 차이가 있음
+ 참고 자료 및 출처
김경원 < 파이썬을 활용한 시계열 데이터 분석 A-Z 강의 > ( 패스트캠퍼스 강의 )
'Analysis > Time series' 카테고리의 다른 글
Lecture 19. 딥러닝 예측 실습 (2) | 2021.05.04 |
---|---|
Lecture 17. 비선형 확률과정 (0) | 2021.04.06 |
Lecture 16. 다변량 선형확률과정 (0) | 2021.04.05 |
Lecture 15. Kaggle 자전거 수요 예측 (SARIMAX / Auto-ARIMA) (0) | 2021.04.05 |
Lecture 14. Kaggle 자전거 수요 예측 (RF/SARIMA) (0) | 2021.04.03 |
댓글