同じ順序に並んだ同等の特徴をもつ 2 つの信号が、セクションの持続時間の違いによって大きく異なって見える場合があります。edr
はこれらの持続時間を歪ませて、対応する特徴が共通の時間軸上の同じ位置に現れるようにさせ、信号間の類似点を強調します。歪みを実行するために使用される基準は、外れ値に対してロバストになるように設計されています。
次の 2 つの K 次元信号を考えます。
および
これらの信号には、それぞれ M 個と N 個のサンプルがあります。metric
で指定された X の m 番目のサンプルと Y の n 番目のサンプルの間の距離 dmn(X,Y) が与えられた場合、関数 edr
は X と Y を、信号間の "編集距離" が最小となる時点の共通集合上で引き伸ばします。
tol
に指定された許容誤差である実数 ε が与えられたとき、dmn(X,Y) < ε の場合に X の m 番目のサンプルと Y の n 番目のサンプルが "一致する" ことを宣言します。2 つのサンプルの m と n が一致しない場合には、次の 3 つの方法のいずれかでそれらを一致させることができます。
次のサンプルが n に一致する場合などは、最初の信号から m を削除します。この削除は、m を 2 つ目の信号に追加して、2 つの連続一致を得ることと等価です。
n に一致するサンプルを適切な位置に追加し、残りのサンプルの位置を 1 つ移動することにより、最初の信号の長さを引き伸ばします。この追加は、一致しない n を 2 つ目の信号から削除することと等価です。
最初の信号で m に n を代入します。または、同等の操作として、m と n の両方を削除します。
編集距離は、2 つの信号を一致させるために必要なこれらの操作の合計数です。この数値は一意ではありません。X と Y 間の編集距離ができるだけ小さくなるように計算するには、次の事実に基づいて開始します。
2 つの空の信号間の距離は、ゼロです。
空の信号と L 個のサンプルをもつ信号間の距離は L です。これは、他の信号を復元するために、空の信号に追加する必要があるサンプル数であるためです。これはすなわち、L は L サンプル信号を空にするために削除しなければならないサンプルの数ということです。
次のように (M + 1) 行 (N + 1) 列の行列 D を作成します。
D1,1 = 0.
Dm,1 = m – 1 (m = 2, …, M + 1)
D1,n = n – 1 (n = 2, …, N + 1)
m, n > 1 の場合、
したがって、X と Y 間の最小の編集距離は、DM+1,N+1 となります。
この編集距離が最小となる D 経由の "ワーピング パス" は、次のように、同じ長さの 2 つのシーケンス ix
および iy
によってパラメーター化され、"チェスのキング" の動きの組み合わせになります。
垂直方向の動き: (m,n) → (m + 1,n) は、X からのサンプルの削除、または Y へのサンプルの追加に対応します。それぞれの移動では、編集距離が 1 増えます。
水平方向の動き: (m,n) → (m,n + 1) は、Y からのサンプルの削除、または X へのサンプルの追加に対応します。それぞれの移動では、編集距離が 1 増えます。
対角方向の動き: (m,n) → (m + 1,n + 1) は、dm,n(X,Y) ≤ ε の場合は一致に対応、dm,n(X,Y) > ε の場合は各信号からの 1 サンプル削除に対応します。一致による距離の増加はありません。削除では 1 増えます。
この構造では、条件に合うパスがいずれも、サンプルをスキップしたり、信号の特徴を反復したりせず、すべての信号を揃えることが確保されます。さらに、望ましいパスは、d1,1(X,Y) と dM,N(X,Y) の間に伸びる対角方向のラインの近くを通ります。maxsamp
引数で調整されるこの追加の制約により、長さが類似するセクションのワーピングによる比較が必ず行われます。
2 つのサンプルを一致させるためのペナルティは、サンプル間の値の違いとは無関係です。許容誤差をわずかに超える差がある 2 つのサンプルが、その差が著しい 2 つのサンプルと同じペナルティを受けます。そのため、編集距離は外れ値の影響を受けません。一方、2 つの信号を揃えるためにサンプルを繰り返すことにはコストがかかります。これは動的タイム ワーピングの場合は該当しません。