거리 측정 행렬의 일부만 채우도록 계산을 지시할 수 있습니다. 예를 들어 계산을 여러 노드에 분산하거나 소스 계열과 대상 계열만 비교합니다. 위의 플롯은 두 신호 간의 매핑을 보여줍니다. 빨간색 선은 DTW 알고리즘에 의해 주어진 일치하는 점을 연결깔끔하게 보이지 않는가? 이제 알려진 신호에 대해 이것을 시도해 보겠습니다. 이 예제는 R의 dtw 구현에 사용된 예제에서 영감을 얻은 것입니다. 우리는 같은 각도에서 사인과 코사네 사이의 DTW 경로를 볼 수 있습니다. 시작과 끝에서 일치를 완화하는 psi 매개 변수를 확인합니다. 이 예제에서는 사위 파가 약간 이동하더라도 완벽한 일치를 이수합니다. 이제 (0,0)부터 시작하는 모든 경로의 비용을 포함하는 행렬을 얻었습니다.

이제 역추적을 통해 거리를 최소화하는 경로를 찾아야 합니다. 위의 플롯에서 대각선 항목은 거리가 낮은 것처럼 보이며, 이는 x와 y의 유사한 인덱스 점 사이의 거리가 낮다는 것을 의미합니다. 거리 옆에 있는 전체 행렬에서 가능한 모든 뒤틀기 경로를 보려면 뒤틀기 경로에 제한 없이 신호를 정렬합니다. 완벽한 정렬을 생성하려면 함수가 짧은 신호의 하나의 샘플만 반복해야 합니다. dist = dtw(x,y)는 두 벡터인 x와 y를 공통 인스턴트 집합에 뻗어 해당 점 사이의 유클리드 거리의 합이 가장 작습니다. 입력을 늘리려면 dtw는 필요에 따라 x와 y의 각 요소를 여러 번 반복합니다. x와 y가 행렬인 경우 dist는 열을 반복하여 연신합니다. 이 경우 x와 y는 동일한 수의 행을 가져야 합니다. 결과는 행렬 표현에 저장됩니다. 위쪽 삼각형 행렬만 필요하기 때문에 이 표현은 더 많은 메모리가 필요합니다. 이 동작은 인수를 true로 압축하여 비활성화할 수 있습니다.

그런 다음 메서드는 모든 결과와 함께 1차원 배열을 반환합니다. 이 배열은 모든 상위 삼각형 행의 연결부를 나타냅니다. 는 최소입니다. 허용 가능한 dist 경로는 d11(X,Y)에서 시작하여 dMN(X,Y)에서 시작하여 ”체스 킹” 이동의 조합입니다: 문자의 임의의 열을 반복하고 간격을 변경하여 단어를 손상시입니다.

dtw 예제