머신러닝 적용사례 제 1장. Dynamic time warping에 대한 기초적인 이해

오늘날 머신러닝에 대해 많은 사람들이 이야기하고 있지만 실제로 어떤 원리에 의해 무엇을 위해 활용되고 있는지 구체적으로 알고 있는 사람은 많지 않습니다. 이러한 내용이 궁금하신 분들을 위해서 앞으로 편의 글을 통해 머신러닝의 활용사례에 대해 설명해 드리고자 합니다. 참고로, 내용의 상당 부분은 인공지능(AI)·데이터 전문 기업 데이터브릭스가 제공하는 블로그 게시글을 번역한 것임을 사전에 밝힙니다. 원문을 직접 읽어보고 싶으신 분은 여기 eBook 다운로드 받아 보시기 바랍니다.

 

오늘은 첫번째 시간으로서 Dynamic time warping(줄여서 DTW, 한국어로 동적 시간 왜곡) 대해 알아 보겠습니다. Warp라고 하면 SF 영화에서 시공간의 경계를 넘어 단시간에 머나먼 우주로 여행하는 것을 상상하실지도 모르겠습니다. 하지만 여기서 Warp 시공간 여행이 아니라 비교 데이터 포인트 사이의 시간 지표가 완벽하게 동기화되지 않을 사용되는 기술입니다. 보다 쉽게 설명하면 속도가 다른 2개의 시계열 패턴의 유사성을 비교하는 것입니다. 예를 들어 2개의 서로 다른 목소리가 동일인의 것인지 확인하고자 Dynamic time warping 사용됩니다. 동일인이 말하더라도 말할 때마다 속도가 다를 있기 때문에 통상적인 방법으로는 비교가 불가능할 있기 때문입니다. 당신이오케이 구글 빠르게 말하든 느리게 말하든 구글 어시스턴스가 당신의 목소리를 인식할 있는 것은 Dynamic time warping 기술이 적용되어 있기 때문입니다.

 

뿐만 아니라 Dynamic time warping 여러 다양한 분야에 활용되는 유용하고 강력한 기술입니다. 당신이 Dynamic time warping 개념을 이해하게 된다면 다음과 같이 우리의 일상생활에 적용되는 다양한 사례를 찾아볼 있을 것입니다.

n  금융시장 : 완벽하게 일치하지는 않더라도 유사한 기간 동안의 주식 거래 데이터를 비교할 있습니다. 예를 들어, 2 28일과 3 31일의 월간 거래 데이터를 비교할 있습니다.

n  웨어러블 피트니스 트래커 : 보행 속도가 시간에 따라 변하더라도 보행 속도와 걸음 숫자를 보다 정확하게 계산할 있습니다.

n  루트 계산 : 좌회전시에는 직진차로에서 운행할 때보다 느리게 주행하는 것과 같은 사용자의 운전 습관을 알고 있다면 예상 도착 시간을 보다 정확하게 계산할 있습니다.

 

자연 상태에서 완벽하게 일치하는 시계열 데이터를 찾는 것은 매우 힘들기 때문에 데이터 과학자, 데이터 분석가 그리고 시계열 데이터를 다루는 모든 사람은 기술에 익숙해질 필요가 있습니다.

 

글에서 다루고자 하는 것은 다음과 같습니다.

n  Dynamic time warping 기본 원리

n  샘플 오디오 데이터에 Dynamic time warping 적용

n  MLflow 활용하여 샘플 판매 데이터에 Dynamic time warping 적용

 

시계열 비교 방법의 목적은 2개의 시계열 입력간에 거리 측정법을 생성하는 것입니다. 2개의 시계열간의 유사성 또는 비유사성은 데이터를 벡터값으로 변환하고 벡터 공간에서 지점간의 유클리드 거리에 의해 계산함으로써 얻을 있습니다. Dynamic time warping 1970년대 이래로 음파를 이용하여 문장과 단어 인식에 사용되어 왔던 중요한 시계열 비교 기술입니다. 이와 관련하여정렬된 그래프 탐색 기술에 기반한 고립된 단어에 대한 Dynamic time warping”이라는 논문이 종종 인용됩니다.

 

배경

기술은 패턴 매칭뿐만 아니라 이상 감지에도 사용할 있습니다. (: 중첩 모양이 크게 변경되었는지 이해하거나 이상값을 조사하기 위해 개의 분리된 기간 사이의 시계열을 중첩 시키는 )

예를 들어 다음 그래프에서 빨간색과 파란색 선을 전통적인 시계열 매칭(, 유클리드 매칭) 극도로 제한적입니다.

반면에 Dynamic time warping 사용하면 X(, 시간) 반드시 동기화되어 있지 않더라도 곡선을 균등하게 일치시킬 있습니다.

 

다른 방면으로는, 낮은 숫자가 계열이 유사함을 의미한다는 비유사성 점수에 대해 생각해 있습니다.

 

최적(워핑) 경로를 사용하여 크기를 일치시키도록 다음 규칙에 따라 함수 f(x) 매핑할 있는 경우 시계열(기본 시계열 시계열) 유사한 것으로 간주됩니다.

 

사운드 패턴 매칭

통상적으로, Dynamic time warping 오디오 클립의 유사성을 확인하기 위해 사용됩니다.

예제에서 우리는 “The Expanse”라는 TV 쇼의 가지 다른 인용문을 담은 4개의 서로 다른 오디오 클립을 사용할 것입니다.

4개의 오디오 클립(아래에서 들을 있지만 필수는 아님) 있으며 3(클립 1, 2 4) 인용문을 기반으로 합니다.

Doors and corners, kid. That’s where they get you.”

 

그리고 클립 하나(clip 3) 인용문입니다.

You walk into a room too fast, the room eats you.”

 

아래는 matplotlib9* 이용한 4개의 오디오 클립의 시각화 이미지입니다.

l  클립1 인용문 “Doors and corners, kid. That’s where they get you.” 기반한 기본 시계열입니다.

l  클립2 클립1 기반으로 억양과 발화 패턴을 극도로 과장시켜 만든 새로운 시계열[ v2]입니다.

l  클립3 인용문 “You walk into a room too fast, the room eats you.” 클립1 동일한 억양과 속도로 만든 다른 시계열입니다.

l  클립4 클립1 기반으로 억양과 발화 패턴을 클립1 유사하게 만든 새로운 시계열[v3]입니다.

 


 

Matplotlib 사용하여 오디오 클립들을 읽고 시각화한 코드는 다음 줄의 코드에 요약되어 있습니다.


 

전체 코드는 Dynamic time warping Background 노트북에서 찾아볼 있습니다.

아래에 언급된 것처럼 클립( 경우 클립 1 4) 동일한 인용문에 대해 다른 억양(진폭) 대기 시간을 갖습니다.

 

전통적인 유클리드 매칭을 따른다면(다음 그래프에 따라), 진폭을 무시하더라도 원본 클립(파란색) 클립(노란색) 사이의 타이밍은 일치하지 않습니다.

 

하지만 Dynamic time warping 따른다면 클립 사이에 시계열 매칭을 위해 시간을 이동시킬 있습니다.

시계열 비교를 위해 우리는 fastdtw PyPi 라이브러리를 사용할 것입니다. Databricks 작업 영역 내에 PyPi 라이브러리를 설치하는 지침은 여기(Azure | AWS)에서 찾을 있습니다. fastdtw 사용하여 우리는 서로 다른 시계열 사이의 거리를 빠르게 계산할 있습니다.

전체 코드는 Dynamic time warping Background 노트북에서 찾아볼 있습니다.

 

몇가지 관찰할 있는 것들 :

l  앞의 그래프에서 있듯이 클립 1 클립 4 동일한 단어와 억양을 가지므로 클립 사이의 거리가 가장 짧습니다.

l  클립 4 비해 길지만 클립 1 3 사이의 거리도 상당히 짧습니다. 단어는 다르지만 억양과 속도는 동일합니다.

l  1번과 2번은 같은 인용구를 사용하고 있지만 지나치게 과장된 억양과 속도로 인해 거리가 가장 깁니다.

 

위의 사례에서 있듯이, Dynamic time warping 이용하여 2개의 서로 다른 시계열의 유사성을 확인할 있습니다.

 

다음 순서로, Dynamic time warping 판매 동향 감지 활용하는 사례 알아보겠습니다.

네피리티
No Comments

Sorry, the comment form is closed at this time.