반응형

DTW

  • Dynamic time wraping(동적 시간 워핑)은 다른 속도, 움직임을 가진 서로 다른 신호의 시간축에 대한 파장의 유사성을 측정하는 알고리즘
  • 그래픽, 비디오, 오디오 분야에서 자주 사용되며 의료분야에서 보행 유사성, 생체신호 분석 등에 자주 사용되기도 한다. 특히 자동 음성 인식기술 분야에서 가장 두각을 나타내는 알고리즘

I. DTW 의 특징과 개념

스크린샷 2020-08-06 오후 2 59 01

1. 일반적인 시계열 신호의 비교

  • 일반적으로 시계열 신호간 유사성을 따질 때 유클리드 거리(Euclidean distance)를 이용 (각각 시간별 신호 간 MSE를 이용)

장점

  • 계산이 용이
  • 연산속도가 뛰어남

단점

  • 신호의 떨림과 움직임이 심해질수록 결과가 어긋나는 현상 발생
  • 길이가 다른 시계열 분석 불가

2. DTW를 이용한 시계열 신호 비교

스크린샷 2020-08-06 오후 2 57 42

  • 동일한 시간선상의 데이터 뿐 아니라 주변 요소까지 비교쌍으로 사용하여 정확도를 높히는 방식으로 사진과 같이 최상단 끝 - 최하단 끝까지 이동할 때 가장 낮은 합계를 찾아냄
  • 따라서 dtw distance 값이 낮을수록 유사도가 높음

장점

  • 서로 다른 길이의 시계열의 유사도 분석이 가능
  • GPS 데이터 등 다차원 시계열 데이터의 분석 가능

스크린샷 2020-08-06 오후 3 13 28

단점

  • 알고리즘 구현이 어렵고 연산량이 많음

II. DTW in Python

  • DTW를 수행하기 위한 파이썬 패키지 제공 dtw-python : https://pypi.org/project/dtw-python/
  • R의 DTW 라이브러리 개발자가 파이썬에 맞춰 개발한 패키지

1. 사용법

pip install dtw-python 으로 설치 후 import dtw 로 사용

2. 사용예시

import numpy as np
import dtw

idx = np.linspace(0,6.28,num=100)
query = np.sin(idx) + np.random.uniform(size=100)/10.0
query2 = np.sin(idx) + np.random.uniform(size=100)/10.0
dtw.dtw(query, query2, keep_internals=True).plot(type="twoway")

>>> dtw.dtw(query, query2, keep_internals=True).distance
7.8983182873739874 

스크린샷 2020-08-06 오후 3 26 03

동일한 길이와 파장의 형태의 유사도를 위와 같이 비교할 수 있다.

import numpy as np 
import dtw 

idx = np.linspace(0,6.28,num=100) 
idx2 = np.linspace(0,7.28,num=200) 

query = np.sin(idx) + np.random.uniform(size=100)/10.0 
query2 = np.sin(idx2) + np.random.uniform(size=200)/10.0 

>>> dtw.dtw(query, query2, keep_internals=True).distance
19.127911885547793

다운로드

DTW 알고리즘은 다른 길이의 신호간 유사도를 비교할 수 도 있다.
이때, 임의로 두 신호의 길이를 동일하게 만들어(padding 등) 비교할 수 도 있고, 예시와 같이 직접 비교할 수 있다.

III. 관련 자료

  • Generalizing Dynamic Time Warping to the MultiDimensional Case Requires an Adaptive Approach.Mohammad Shokoohi-Yekta, Bing Hu, Hongxia Jin, Jun Wang, Eamonn Keogh. SDM 2015
  • Using time-series similarity measures to compare animal movement trajectories in ecology. Ian R. Cleasby & Ewan D. Wakefield & Barbara J. Morrissey & Thomas W. Bodey & Steven C. Votier & Stuart Bearhop & Keith C. Hamer. Behavioral Ecology and Sociobiology(2019) 73. p.151
  • https://www.youtube.com/watch?v=_K1OsqCicBY
  • DTW-python
반응형
복사했습니다!