Un algoritmo para medir la similitud entre dos secuencias temporales, que pueden variar en velocidad.
En el análisis de series temporales , la deformación temporal dinámica ( DTW ) es un algoritmo para medir la similitud entre dos secuencias temporales que pueden variar en velocidad. Por ejemplo, las similitudes en la forma de caminar se pueden detectar utilizando DTW, incluso si una persona camina más rápido que la otra, o si hubo aceleraciones y desaceleraciones durante el curso de una observación. DTW se ha aplicado a secuencias temporales de datos de video, audio y gráficos; de hecho, cualquier dato que se pueda convertir en una secuencia unidimensional se puede analizar con DTW. Una aplicación bien conocida ha sido el reconocimiento automático de voz , para hacer frente a diferentes velocidades de habla. Otras aplicaciones incluyen el reconocimiento de hablantes y el reconocimiento de firmas en línea . También se puede utilizar en aplicaciones de coincidencia de formas parciales .
En general, DTW es un método que calcula una coincidencia óptima entre dos secuencias dadas (por ejemplo, series de tiempo ) con ciertas restricciones y reglas:
Cada índice de la primera secuencia debe coincidir con uno o más índices de la otra secuencia, y viceversa.
El primer índice de la primera secuencia debe coincidir con el primer índice de la otra secuencia (pero no tiene que ser su única coincidencia)
El último índice de la primera secuencia debe coincidir con el último índice de la otra secuencia (pero no tiene que ser su única coincidencia)
La asignación de los índices de la primera secuencia a los índices de la otra secuencia debe ser monótonamente creciente, y viceversa, es decir, si son índices de la primera secuencia, entonces no debe haber dos índices en la otra secuencia, de modo que el índice coincida con el índice y el índice coincida con el índice , y viceversa.
Podemos representar gráficamente cada coincidencia entre las secuencias y como una ruta en una matriz desde hasta , de modo que cada paso sea uno de . En esta formulación, vemos que el número de coincidencias posibles es el número de Delannoy .
La coincidencia óptima se denota por la coincidencia que satisface todas las restricciones y reglas y que tiene el costo mínimo, donde el costo se calcula como la suma de las diferencias absolutas, para cada par de índices coincidentes, entre sus valores.
Las secuencias se "deforman" de forma no lineal en la dimensión temporal para determinar una medida de su similitud independientemente de ciertas variaciones no lineales en la dimensión temporal. Este método de alineación de secuencias se utiliza a menudo en la clasificación de series temporales. Aunque la deformación de secuencias mide una cantidad similar a la distancia entre dos secuencias dadas, no garantiza que se cumpla la desigualdad triangular .
Además de una medida de similitud entre las dos secuencias (se produce un llamado "camino de deformación"), al deformar según este camino las dos señales pueden alinearse en el tiempo. La señal con un conjunto original de puntos X (original), Y (original) se transforma en X (deformada), Y (deformada). Esto encuentra aplicaciones en la sincronización de audio y secuencias genéticas. En una técnica relacionada, las secuencias de velocidad variable pueden promediarse utilizando esta técnica (consulte la sección de secuencia promedio).
Este ejemplo ilustra la implementación del algoritmo de distorsión temporal dinámica cuando las dos secuencias s y t son cadenas de símbolos discretos. Para dos símbolos x e y , d(x, y)es una distancia entre los símbolos, p. ej. d(x, y)= .
int DTWDistance(s: matriz [1..n], t: matriz [1..m]) { DTW := matriz [0..n, 0..m] para i := 0 a n para j := 0 a m DTW[i, j] := infinito DTW[0, 0] := 0 para i := 1 a n para j := 1 a m costo := d(s[i], t[j]) DTW[i, j] := costo + mínimo(DTW[i-1, j ], // inserción DTW[i, j-1], // eliminación DTW[i-1, j-1]) // coincidencia devuelve DTW[n, m]}
¿Dónde DTW[i, j]está la distancia entre s[1:i]y t[1:j]con la mejor alineación?
A veces queremos agregar una restricción de localidad. Es decir, requerimos que si s[i]coincide con t[j], entonces no sea mayor que w , un parámetro de ventana.
Podemos modificar fácilmente el algoritmo anterior para agregar una restricción de localidad (diferenciasmarcado). Sin embargo, la modificación dada anteriormente funciona solo si no es mayor que w , es decir, el punto final está dentro de la longitud de la ventana desde la diagonal. Para que el algoritmo funcione, el parámetro de ventana w debe adaptarse de manera que (vea la línea marcada con (*) en el código).
int DTWDistance(s: matriz [1..n], t: matriz [1..m], w: entero) { DTW := matriz [0..n, 0..m] w := máx(w, abs(nm))// adaptar el tamaño de la ventana (*) para i := 0 a n para j:= 0 a m DTW[i, j] := infinito DTW[0, 0] := 0 para i := 1 a n para j := máx(1, iw) a mín(m, i+w) DTW[i, j] := 0 para i := 1 a n para j :=máx(1, iw) a mín(m, i+w) costo := d(s[i], t[j]) DTW[i, j] := costo + mínimo(DTW[i-1, j ], // inserción DTW[i, j-1], // eliminación DTW[i-1, j-1]) // coincidencia devuelve DTW[n, m]}
Propiedades de deformación
El algoritmo DTW produce una correspondencia discreta entre elementos existentes de una serie y otra. En otras palabras, no permite la escala temporal de segmentos dentro de la secuencia. Otros métodos permiten una deformación continua. Por ejemplo, la deformación optimizada por correlación (COW) divide la secuencia en segmentos uniformes que se escalan en el tiempo mediante interpolación lineal, para producir la deformación con la mejor correspondencia. La escala temporal de los segmentos provoca la creación potencial de nuevos elementos, al escalar los segmentos hacia abajo o hacia arriba, y, por lo tanto, produce una deformación más sensible que la correspondencia discreta de elementos sin procesar de DTW.
Complejidad
La complejidad temporal del algoritmo DTW es , donde y son las longitudes de las dos secuencias de entrada. El límite temporal cuadrático de 50 años se rompió en 2016: un algoritmo creado por Gold y Sharir permite calcular DTW en tiempo y espacio para dos secuencias de entrada de longitud . [2]
Este algoritmo también se puede adaptar a secuencias de diferentes longitudes. A pesar de esta mejora, se demostró que no puede existir un tiempo de ejecución fuertemente subcuadrático de la forma para algunos a menos que falle la hipótesis del tiempo exponencial fuerte . [3] [4]
Si bien el algoritmo de programación dinámica para DTW requiere espacio en una implementación ingenua, el consumo de espacio se puede reducir utilizando el algoritmo de Hirschberg .
Computación rápida
Las técnicas rápidas para calcular DTW incluyen PrunedDTW, [5] SparseDTW, [6] FastDTW, [7] y MultiscaleDTW. [8] [9]
Una tarea común, la recuperación de series temporales similares, se puede acelerar mediante el uso de límites inferiores como LB_Keogh, [10] LB_Improved, [11] o LB_Petitjean. [12] Sin embargo, el algoritmo Early Abandon and Pruned DTW reduce el grado de aceleración que proporciona el límite inferior y, a veces, lo vuelve ineficaz.
En una encuesta, Wang et al. informaron resultados ligeramente mejores con el límite inferior LB_Improved que con el límite LB_Keogh, y descubrieron que otras técnicas eran ineficientes. [13] Posteriormente a esta encuesta, se desarrolló el límite LB_Enhanced que siempre es más estricto que LB_Keogh y, al mismo tiempo, es más eficiente de calcular. [14] LB_Petitjean es el límite inferior más estricto conocido que se puede calcular en tiempo lineal. [12]
Secuencia promedio
El promedio para la distorsión temporal dinámica es el problema de encontrar una secuencia promedio para un conjunto de secuencias. NLAAF [15] es un método exacto para promediar dos secuencias utilizando DTW. Para más de dos secuencias, el problema está relacionado con el de la alineación múltiple y requiere heurística. DBA [16] es actualmente un método de referencia para promediar un conjunto de secuencias de manera consistente con DTW. COMASA [17] aleatoriza de manera eficiente la búsqueda de la secuencia promedio, utilizando DBA como un proceso de optimización local.
Aprendizaje supervisado
Un clasificador de vecino más cercano puede lograr un rendimiento de última generación al utilizar la deformación temporal dinámica como medida de distancia. [18]
Deformación temporal dinámica de América
American Dynamic Time Warping (ADTW) es una variante de DTW diseñada para controlar mejor la permisividad de DTW en las alineaciones que permite. [19] Las ventanas que usa DTW clásica para restringir las alineaciones introducen una función de paso. Se permite cualquier deformación de la ruta dentro de la ventana y ninguna más allá de ella. Por el contrario, ADTW emplea una penalización aditiva que se aplica cada vez que se deforma la ruta. Se permite cualquier cantidad de deformación, pero cada acción de deformación implica una penalización directa. ADTW supera significativamente a DTW con ventanas cuando se aplica como un clasificador de vecino más cercano en un conjunto de tareas de clasificación de series temporales de referencia. [19]
Enfoques alternativos
En el análisis de datos funcionales , las series temporales se consideran discretizaciones de funciones suaves (diferenciables) del tiempo. Al ver las muestras observadas en funciones suaves, se pueden utilizar matemáticas continuas para analizar los datos. [20] La suavidad y la monotonía de las funciones de distorsión temporal se pueden obtener, por ejemplo, integrando una función de base radial variable en el tiempo, siendo así un difeomorfismo unidimensional . [21] Las funciones de distorsión temporal no lineales óptimas se calculan minimizando una medida de distancia del conjunto de funciones a su promedio distorsionado. Se pueden agregar términos de penalización de rugosidad para las funciones de distorsión, por ejemplo, restringiendo el tamaño de su curvatura. Las funciones de distorsión resultantes son suaves, lo que facilita el procesamiento posterior. Este enfoque se ha aplicado con éxito para analizar patrones y variabilidad de los movimientos del habla. [22] [23]
Otro enfoque relacionado son los modelos ocultos de Markov (HMM) y se ha demostrado que el algoritmo de Viterbi utilizado para buscar la ruta más probable a través del HMM es equivalente al DTW estocástico. [24] [25] [26]
La DTW y los métodos de deformación relacionados se utilizan normalmente como pasos de preprocesamiento o posprocesamiento en los análisis de datos. Si las secuencias observadas contienen variación aleatoria tanto en sus valores como en la forma de las secuencias observadas y desalineación temporal aleatoria, la deformación puede sobreajustarse al ruido, lo que genera resultados sesgados. Una formulación de modelo simultáneo con variación aleatoria tanto en valores (vertical) como en parametrización temporal (horizontal) es un ejemplo de un modelo no lineal de efectos mixtos . [27] En el análisis del movimiento humano, se ha demostrado que el modelado simultáneo de efectos mixtos no lineales produce resultados superiores en comparación con la DTW. [28]
Software de código abierto
La biblioteca C++ tempo con enlaces de Python implementa DTW abandonado y podado temprano, así como límites inferiores de ADTW y DTW abandonados y podados tempranos LB_Keogh, LB_Enhanced y LB_Webb.
La biblioteca Java UltraFastMPSearch implementa el algoritmo UltraFastWWSearch [29] para el ajuste rápido de la ventana de deformación.
La biblioteca C++ lbimproved implementa algoritmos de recuperación rápida del vecino más cercano bajo la licencia pública general de GNU (GPL). También proporciona una implementación C++ de distorsión temporal dinámica, así como varios límites inferiores.
La biblioteca FastDTW es una implementación Java de DTW y una implementación de FastDTW que proporciona alineaciones óptimas o casi óptimas con una complejidad de memoria y tiempo O ( N ), en contraste con el requisito O ( N2 ) para el algoritmo DTW estándar . FastDTW utiliza un enfoque multinivel que proyecta recursivamente una solución a partir de una resolución más burda y refina la solución proyectada.
Bifurcación FastDTW (Java) publicada en Maven Central.
time-series-classification (Java) un paquete para la clasificación de series de tiempo utilizando DTW en Weka.
La suite DTW proporciona paquetes Python (dtw-python) y R (dtw) con una cobertura integral de los miembros de la familia de algoritmos DTW, incluida una variedad de reglas de recursión (también llamadas patrones de pasos), restricciones y coincidencia de subcadenas.
La biblioteca Python mlpy implementa DTW.
La biblioteca de Python pydtw implementa las medidas DTW con sabor Manhattan y Euclidiano, incluidos los límites inferiores LB_Keogh.
La biblioteca C++/CUDA cudadtw implementa la alineación de subsecuencias de DTW con sabor euclidiano y la distancia euclidiana normalizada en z similar a la popular UCR-Suite en aceleradores habilitados para CUDA.
La biblioteca de aprendizaje automático JavaML implementa DTW.
La biblioteca C# ndtw implementa DTW con varias opciones.
Sketch-a-Char utiliza Greedy DTW (implementado en JavaScript) como parte del programa clasificador de símbolos LaTeX.
MatchBox implementa DTW para hacer coincidir los coeficientes cepstrales de frecuencia mel de las señales de audio.
Promedio de secuencia: una implementación GPL de DBA en Java. [16]
El kit de herramientas de reconocimiento de gestos en tiempo real GRT C++ implementa DTW.
El paquete de software PyHubs implementa DTW y clasificadores de vecino más cercano, así como sus extensiones (clasificadores que tienen en cuenta el centro de concentración).
La biblioteca de Python simpledtw implementa el algoritmo clásico de programación dinámica O ( NM ) y se basa en Numpy. Admite valores de cualquier dimensión, así como el uso de funciones de norma personalizadas para las distancias. Tiene licencia MIT.
La biblioteca Python tslearn implementa DTW en el contexto de series de tiempo.
DynamicAxisWarping.jl es una implementación de Julia de DTW y algoritmos relacionados como FastDTW, SoftDTW, GeneralDTW y baricentros DTW.
Multi_DTW implementa DTW para hacer coincidir dos matrices 1-D o archivos de voz 2-D (matriz 2-D).
Aplicaciones
Reconocimiento de palabras habladas
Debido a las diferentes velocidades de habla, se produce una fluctuación no lineal en el patrón de habla versus el eje de tiempo, que debe eliminarse. [30] La coincidencia de DP es un algoritmo de coincidencia de patrones basado en programación dinámica (DP) , que utiliza un efecto de normalización de tiempo, donde las fluctuaciones en el eje de tiempo se modelan utilizando una función de deformación de tiempo no lineal. Considerando dos patrones de habla cualesquiera, podemos deshacernos de sus diferencias de tiempo deformando el eje de tiempo de uno de modo que se logre la máxima coincidencia con el otro. Además, si se permite que la función de deformación tome cualquier valor posible, se puede hacer muy poca [ aclarar ] distinción entre palabras que pertenecen a diferentes categorías. Entonces, para mejorar la distinción entre palabras que pertenecen a diferentes categorías, se impusieron restricciones en la pendiente de la función de deformación.
La deformación temporal dinámica se utiliza en finanzas y econometría para evaluar la calidad de la predicción en comparación con los datos del mundo real. [31] [32] [33]
^ Olsen, NL; Markussen, B; Raket, LL (2018), "Inferencia simultánea para datos funcionales multivariados desalineados", Journal of the Royal Statistical Society, Serie C , 67 (5): 1147–76, arXiv : 1606.03295 , doi :10.1111/rssc.12276, S2CID 88515233
^ Gold, Omer; Sharir, Micha (2018). "Deformación temporal dinámica y distancia de edición geométrica: rompiendo la barrera cuadrática". ACM Transactions on Algorithms . 14 (4). doi :10.1145/3230734. S2CID 52070903.
^ Bringmann, Karl; Künnemann, Marvin (2015). "Límites inferiores condicionales cuadráticos para problemas de cadenas y distorsión temporal dinámica". 2015 IEEE 56th Annual Symposium on Foundations of Computer Science . págs. 79–97. arXiv : 1502.01063 . doi :10.1109/FOCS.2015.15. ISBN978-1-4673-8191-8.S2CID1308171 .
^ Abboud, Amir; Backurs, Arturs; Williams, Virginia Vassilevska (2015). "Resultados de dureza ajustados para LCS y otras medidas de similitud de secuencias". 2015 IEEE 56th Annual Symposium on Foundations of Computer Science . págs. 59–78. doi :10.1109/FOCS.2015.14. ISBN978-1-4673-8191-8.S2CID16094517 .
^ Silva, DF, Batista, GEAPA (2015). Aceleración del cálculo de matrices de deformación temporal dinámicas por pares.
^
Al-Naymat, G., Chawla, S., Taheri, J. (2012). SparseDTW: un enfoque novedoso para acelerar la deformación dinámica del tiempo.
^ Stan Salvador, Philip Chan, FastDTW: Hacia una deformación temporal dinámica y precisa en tiempo y espacio lineales. Taller de KDD sobre minería de datos temporales y secuenciales, págs. 70-80, 2004.
^ Meinard Müller, Henning Mattes y Frank Kurth (2006). Un enfoque multiescala eficiente para la sincronización de audio. Actas de la Conferencia Internacional sobre Recuperación de Información Musical (ISMIR), págs. 192-197.
^ Thomas Prätzlich, Jonathan Driedger y Meinard Müller (2016). Deformación temporal dinámica multiescala con restricción de memoria. Actas de la Conferencia internacional IEEE sobre acústica, habla y procesamiento de señales (ICASSP), págs. 569-573.
^ Keogh, E.; Ratanamahatana, CA (2005). "Indexación exacta de la distorsión temporal dinámica". Conocimiento y sistemas de información . 7 (3): 358–386. doi :10.1007/s10115-004-0154-9. S2CID 207056701.
^ Lemire, D. (2009). "Recuperación más rápida con un límite inferior de deformación temporal dinámica de dos pasos". Reconocimiento de patrones . 42 (9): 2169–2180. arXiv : 0811.3301 . doi :10.1016/j.patcog.2008.11.030. S2CID 8658213.
^ ab Webb, Geoffrey I.; Petitjean, Francois (2021). "Límites inferiores estrictos para la deformación temporal dinámica". Reconocimiento de patrones . 115 : 107895. arXiv : 2102.07076 . doi :10.1016/j.patcog.2021.107895. S2CID 231925247.
^ Wang, Xiaoyue; et al. (2010). "Comparación experimental de métodos de representación y medidas de distancia para datos de series temporales". Minería de datos y descubrimiento de conocimiento . 2010 : 1–35. arXiv : 1012.2789 .
^ Tan, Chang Wei; Petitjean, Francois; Webb, Geoffrey I. (2019). "Bandas elásticas a lo largo de la trayectoria: un nuevo marco y método para reducir el límite de DTW". Actas de la Conferencia Internacional SIAM de 2019 sobre Minería de Datos . págs. 522–530. arXiv : 1808.09617 . doi :10.1137/1.9781611975673.59. ISBN .978-1-61197-567-3. Número de identificación del sujeto 52120426.
^ Gupta, L.; Molfese, DL; Tammana, R.; Simos, PG (1996). "Alineación no lineal y promediado para estimar el potencial evocado". IEEE Transactions on Biomedical Engineering . 43 (4): 348–356. doi :10.1109/10.486255. PMID 8626184. S2CID 28688330.
^ ab Petitjean, FO; Ketterlin, A.; Gançarski, P. (2011). "Un método de promediado global para distorsión temporal dinámica, con aplicaciones a la agrupación". Reconocimiento de patrones . 44 (3): 678. doi :10.1016/j.patcog.2010.09.013.
^ Petitjean, FO; Gançarski, P. (2012). "Resumen de un conjunto de series temporales mediante promedios: de la secuencia de Steiner al alineamiento múltiple compacto". Ciencias de la Computación Teórica . 414 : 76–91. doi : 10.1016/j.tcs.2011.09.029 .
^ Ding, Hui; Trajcevski, Goce; Scheuermann, Peter; Wang, Xiaoyue; Keogh, Eamonn (2008). "Consulta y minería de datos de series temporales: comparación experimental de representaciones y medidas de distancia". Proc. VLDB Endow . 1 (2): 1542–1552. doi : 10.14778/1454159.1454226 .
^ ab Herrmann, Matthieu; Webb, Geoffrey I. (2023). "Amercing: una restricción intuitiva y efectiva para la distorsión temporal dinámica". Reconocimiento de patrones . 137 : 109333. doi :10.1016/j.patcog.2023.109333. S2CID 256182457.
^ Lucero, JC; Munhall, KG; Gracco, VG; Ramsay, JO (1997). "Sobre el registro del tiempo y la pauta de los movimientos del habla". Revista de investigación del habla, el lenguaje y la audición . 40 (5): 1111–1117. doi :10.1044/jslhr.4005.1111. PMID 9328881.
^ Durrleman, S; Pennec, X.; Trouvé, A.; Braga, J.; Gerig, G. y Ayache, N. (2013). "Hacia un marco integral para el análisis estadístico espaciotemporal de datos de forma longitudinal". Revista internacional de visión por computadora . 103 (1): 22–59. doi :10.1007/s11263-012-0592-x. PMC 3744347 . PMID 23956495.
^ Howell, P.; Anderson, A.; Lucero, JC (2010). "Sincronización motora del habla y fluidez". En Maassen, B.; van Lieshout, P. (eds.). Control motor del habla: nuevos avances en la investigación básica y aplicada . Oxford University Press. págs. 215–225. ISBN978-0199235797.
^ Koenig, Laura L.; Lucero, Jorge C.; Perlman, Elizabeth (2008). "Variabilidad de la producción del habla en fricativas de niños y adultos: resultados del análisis de datos funcionales". Revista de la Sociedad Acústica de América . 124 (5): 3158–3170. Bibcode :2008ASAJ..124.3158K. doi :10.1121/1.2981639. ISSN 0001-4966. PMC 2677351. PMID 19045800 .
^ Nakagawa, Seiichi; Nakanishi, Hirobumi (1988-01-01). "Reconocimiento de consonantes en inglés y palabras en japonés independientes del hablante mediante un método de deformación temporal dinámica estocástica". IETE Journal of Research . 34 (1): 87–95. doi :10.1080/03772063.1988.11436710. ISSN 0377-2063.
^ Fang, Chunsheng. "De la deformación temporal dinámica (DTW) al modelo oculto de Markov (HMM)" (PDF) .
^ Juang, BH (septiembre de 1984). "Sobre el modelo oculto de Markov y la deformación temporal dinámica para el reconocimiento de voz #x2014; una visión unificada". AT&T Bell Laboratories Technical Journal . 63 (7): 1213–1243. doi :10.1002/j.1538-7305.1984.tb00034.x. ISSN 0748-612X. S2CID 8461145.
^ Raket LL, Sommer S, Markussen B (2014). "Un modelo no lineal de efectos mixtos para el suavizado y registro simultáneos de datos funcionales". Pattern Recognition Letters . 38 : 1–7. doi :10.1016/j.patrec.2013.10.018.
^ Raket LL, Grimme B, Schöner G, Igel C, Markussen B (2016). "Separación de tiempos, condiciones de movimiento y diferencias individuales en el análisis del movimiento humano". PLOS Computational Biology . 12 (9): e1005092. arXiv : 1601.02775 . Bibcode :2016PLSCB..12E5092R. doi : 10.1371/journal.pcbi.1005092 . PMC 5033575 . PMID 27657545.
^ Tan, Chang Wei; Herrmann, Matthieu; Webb, Geoffrey I. (2021). "Optimización de ventana de deformación ultrarrápida para deformación temporal dinámica" (PDF) . 2021 IEEE International Conference on Data Mining (ICDM) . págs. 589–598. doi :10.1109/ICDM51629.2021.00070. ISBN .978-1-6654-2398-4.S2CID246291550 .
^ Sakoe, Hiroaki; Chiba, Seibi (1978). "Optimización de algoritmos de programación dinámica para el reconocimiento de palabras habladas". IEEE Transactions on Acoustics, Speech, and Signal Processing . 26 (1): 43–49. doi :10.1109/tassp.1978.1163055. S2CID 17900407.
^ Orlando, Giuseppe; Bufalo, Michele; Stoop, Ruedi (1 de febrero de 2022). "Aspectos deterministas de los mercados financieros modelados por una ecuación de baja dimensión". Scientific Reports . 12 (1): 1693. doi : 10.1038/s41598-022-05765-z . ISSN 2045-2322. PMC 8807815 . PMID 35105929.
^ Mastroeni, Loretta; Mazzoccoli, Alessandro; Quaresima, Greta; Vellucci, Pierluigi (1 de febrero de 2021). "Desacoplamiento y reacoplamiento en los índices de referencia del precio del petróleo crudo: una investigación de patrones de similitud". Economía de la energía . 94 : 105036. doi :10.1016/j.eneco.2020.105036. ISSN 0140-9883. S2CID 230536868.
^ Orlando, Giuseppe; Bufalo, Michele (10 de diciembre de 2021). "Modelado de ráfagas y regularización del caos en el riesgo crediticio con un modelo no lineal determinista". Finance Research Letters . 47 : 102599. doi :10.1016/j.frl.2021.102599. ISSN 1544-6123.
Lectura adicional
Pavel Senin, revisión del algoritmo de deformación temporal dinámica
Vintsyuk, TK (1968). "Discriminación del habla por programación dinámica". Kibernética . 4 : 81–88.
Sakoe, H.; Chiba (1978). "Optimización de algoritmos de programación dinámica para el reconocimiento de palabras habladas". IEEE Transactions on Acoustics, Speech, and Signal Processing . 26 (1): 43–49. doi :10.1109/tassp.1978.1163055. S2CID 17900407.
Myers, CS; Rabiner, LR (1981). "Un estudio comparativo de varios algoritmos de deformación temporal dinámica para el reconocimiento de palabras conectadas". Bell System Technical Journal . 60 (7): 1389–1409. doi :10.1002/j.1538-7305.1981.tb00272.x. ISSN 0005-8580. S2CID 12857347.
Rabiner, Lawrence; Juang, Biing-Hwang (1993). "Capítulo 4: Técnicas de comparación de patrones". Fundamentos del reconocimiento de voz . Englewood Cliffs, NJ: PTR Prentice Hall. ISBN 978-0-13-015157-5.
Müller, Meinard (2007). Deformación temporal dinámica. En Recuperación de información para música y movimiento, capítulo 4, páginas 69-84 (PDF) . Springer. doi :10.1007/978-3-540-74048-3. ISBN .978-3-540-74047-6.
Rakthanmanon, Thanawin (septiembre de 2013). "Abordaje de series temporales de big data: extracción de billones de subsecuencias de series temporales bajo distorsión temporal dinámica". ACM Transactions on Knowledge Discovery from Data . 7 (3): 10:1–10:31. doi :10.1145/2513092.2500489. PMC 6790126 . PMID 31607834.