시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

12. Ch01. 시계열 알고리즘 딥러닝 시계열 - 04. 시계열과 딥러닝 알고리즘 비교

13. Ch01. 시계열 알고리즘 딥러닝 시계열 - 05. 시계열분석에 딥러닝이 필요한 이유

14. Ch01. 시계열 알고리즘 딥러닝 시계열 - 06. 시계열딥러닝 알고리즘1-1(CNN vs RNN)

1. 시계열 회귀 분석과 딥러닝의 차이

일반적인 다중회귀식은 다음 그림에 나와있다.

이를 네트워크로 표현하면 아래 노드와 엣지와 같이 나타나는데, 이에 활성함수를 취해준 모습으로 인공신경망(딥러닝)처럼 표현할 수 있다. 

시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

1-1. 인공신경망 식과 구조

시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

위 표현식을 간단하게 표현하면 아래 그림과 같은데, 각 노드와 가중치가 반복적으로 곱해지고 더해지며 predicted Y를 구하는 것이다. 

시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

1-2. 인공신경망의 검증(Evaluation)

시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum
  • 인공신경망은 입력과 출력이 직접적으로 연결되지 않기 때문에 비선형성을 포함하며, 구성된 층만큼 더 다양한 패턴을 학습(회귀)할 수 있다. 그만큼 회귀모델보다 나은 성능을 보이지만 설명 가능 정도는 그만큼 떨어진다.(어느 층에서 어떻게 영향을 주는지 추측하기 어렵다; Black box)
  • 모델을 적당하게 구성하고, 최적의 하이퍼 파라미터를 찾는 것 또한 딥러닝의 주요한 과제이다. 

2. 시계열 분석에서 딥러닝이 필요한 이유

2-1. 머신러닝 방향 및 발전

시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

2-2. 시계열 분석에 딥러닝 적용 필요성

1) 자동 Feature 추출과 학습

  • 기존에는 사람이 손수 생성
  • 그에 따라 많은 손실과 오류가 반영될 가능성 
  • 사람의 영향을 최소화하고 여러층을 적용해 새로운 Feature를 추출해야 한다. 
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

2) 다양한 입출력 작업을 가능하게 함

  • 기존의 머신러닝 방법도 다양한 입출력을 사용할 수는 있지만 알고리즘에 따라 달라지고 한계가 존재.
  • 그보다 딥러닝에서는 입출력에 따라 딥러닝 구조를 바꿔 여러 경우에 대처 가능하게 됨.

3) 길이가 긴 Sequence 패턴 추출 가능

2-2. 알고리즘의 한계 : Garbage in, garbage out(GIGO)

  • 대부분의 연구가 알고리즘 설명과 성능에만 집중하고, 어떻게 분석했는지에 대해서는 상대적 경시. 
  • 이를 실제 사례에 적용, 분석해보면 결과가 안 좋은 경우도 많다.(머신러닝 기법보다도)

가장 중요한 것은 데이터이다. 데이터의 질이 쓰레기라면 좋은 알고리즘의 출력이라도 쓰레기이기 때문이다.

3. 시계열 딥러닝(Supervised Learning)

3-1. CNN 과 RNN 

시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum
  • CNN : 이미지처럼 여러 값이 격자의 형태로 구성된 데이터를 처리하는데 특화됨.
    • 이미지나 영상 인식, 분류 문제 등에서 뛰어난 결과 
  • RNN : 순서가 있는 데이터를 처리하는데 특화된 모델
    • 은닉층 노드를 공통으로 사용하여 이전 상태를 반영한 가중치 갱신이 가장 큰 특징.(그림 우측)
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

강의 소개 링크 : https://bit.ly/3czfg42

1. 시계열 회귀분석

  • 은닉층이 없고 입력값과 출력값의 관계가 다이렉트로 연결
  • 모델 개수는 1개의 회귀분석
  • 설명 가능
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum
회귀분석

2. 딥러닝

  • 입력값과 출력값이 직접적으로 연결되지 못하고 복잡한 비선형성을 포함
  • 2개 이상(은닉층과 노드 갯수만큼)의 회귀분석
  • 설명 불가능
  • 사람이 설정해야하는 하이퍼파라미터가 많음
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum
딥러닝

시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

시계열 / 딥러닝

3. 시계열분석에서 딥러닝 적용 필요성

(1) 데이터에서 자동으로 feature 추출하고 학습 가능

(2) 여러 X와 여러 Y 가능

(3) 길이가 긴 sequence 패턴도 추출 가능

4. 시계열 딥러닝 알고리즘 (RNN, LSTM, GRU)

(1) CNN

  • 비시계열 딥러닝, MLP 기반
  • 이미지나 영상에서의 인식이나 분류 문제 등에서 뛰어난 결과
  • 입력된 이미지보다 더 큰 이미지로 손쉽게 확장될 수 있는 특징
  • YOLO, GAN 등의 모델들은 CNN을 기반
  • 은닉층 노드를 두번 이상 건드리지 않고 한번만 실행
  • 스냅샷 데이터 (이미지, 영상, 바둑 )
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum
CNN

(2) RNN

  • 시계열 딥러닝, AR
  • 예측이 가장 큰 분석 목적
  • 비현실적으로 긴 시계열도 쉽게 확장 가능
  • 가변 길이의 시계열 데이터도 처리 가능
  • 은닉층 노드를 공통으로 사용하여 계속 갱신
  • 시퀀스 데이터 (기상, 주가, 언어, 음성)
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum
RNN

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
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

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의 곱하기 노드가 잊어야 할건 기울기를 줄이고 그렇지 않은건 과거로 전해져 '기억셀' 기울기 소실 없음
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

(4) GRU

  • LSTM의 구조를 간결히 변경해 빠른 속도와 유사한 성능 보임
  • LSTM의 Ct와 Ht가 하나의 벡터 Ht로 통합
  • GRU가 LSTM보다 학습할 가중치가 적음
  • 주제별로 LSTM과 GRU의 성능 차이가 있음
시계열 데이터 분석 알고리즘 - sigyeyeol deiteo bunseog algolijeum

+ 참고 자료 및 출처

  김경원 < 파이썬을 활용한 시계열 데이터 분석 A-Z  강의 >  ( 패스트캠퍼스 강의 )