Динамическое искажение времени

редактировать
Динамическое искажение времени Два повторения последовательности ходьбы, записанной с помощью системы захвата движения. Несмотря на различия в скорости ходьбы между повторениями, пространственные пути конечностей остаются очень похожими.

В анализе временных рядов, динамическое искажение времени (DTW ) - один из алгоритмов для измерения сходства между двумя временными последовательностями, которые могут различаться по скорости. Например, сходство в ходьбе можно было обнаружить с помощью DTW, даже если один человек шел быстрее, чем другой, или если в ходе наблюдения было ускорений и замедлений. DTW применялся к временным последовательностям видео, аудио и графических данных - действительно, любые данные, которые можно преобразовать в линейную последовательность, можно проанализировать с помощью DTW. Хорошо известным приложением было автоматическое распознавание речи, чтобы справиться с разными скоростями речи. Другие приложения включают распознавание говорящего и онлайн распознавание подписи. Его также можно использовать в приложении частичного согласования формы .

В общем, DTW - это метод, который вычисляет оптимальное соответствие между двумя заданными последовательностями (например, временным рядом ) с определенными ограничениями и правилами:

  • Каждый индекс из первой последовательности должен совпадать с одним или несколькими индексами из другой последовательности, и наоборот
  • Первый индекс из первой последовательности должен совпадать с первым индексом из другой последовательности (но он не имеет чтобы быть его единственным совпадением)
  • Последний индекс из первой последовательности должен совпадать с последним индексом из другой последовательности (но он не обязательно должен быть его единственным совпадением)
  • Отображение индексов из первой последовательности в индексы из другой последовательности должны монотонно возрастать, и наоборот, то есть если j>i {\ displaystyle j>i}{\displaystyle j>i} - это индексы из первой последовательности, тогда не должно быть двух индексов. ces l>k {\ displaystyle l>k}{\displaystyle l>k} в другой последовательности, так что индекс i {\ displaystyle i}i совпадает с индексом l {\ displaystyle l}l и индекс j {\ displaystyle j}j сопоставляется с индексом k {\ displaystyle k}k , и наоборот

оптимальное совпадение обозначается совпадением, которое удовлетворяет всем ограничениям и правилам и которое имеет минимальную стоимость, где стоимость вычисляется как сумма абсолютных различий для каждой согласованной пары индексов между их значениями.

Последовательности "искажаются" нелинейно во временном измерении, чтобы определить меру их подобия независимо от некоторых нелинейных изменений во временном измерении. Этот метод выравнивания последовательностей часто используется при классификации временных рядов. Хотя DTW измеряет величину, подобную расстоянию между двумя заданными последовательностями, он не гарантирует выполнения неравенства треугольника .

В дополнение к измерению сходства между двумя последовательностями создается так называемый «путь деформации», посредством деформации в соответствии с этим путем два сигнала могут быть выровнены во времени. Сигнал с исходным набором точек X (исходный), Y (исходный) преобразуется в X (деформированный), Y (деформированный). Это находит применение в генетической последовательности и синхронизации звука. В родственной технике последовательности с переменной скоростью могут быть усреднены с использованием этого метода, см. Раздел усредненная последовательность.

Это концептуально очень похоже на алгоритм Нидлмана – Вунша.

Содержание
  • 1 Реализация
  • 2 Свойства деформации
  • 3 Сложность
  • 4 Быстрые вычисления
  • 5 Средняя последовательность
  • 6 Контролируемое обучение
  • 7 Альтернативные подходы
  • 8 Программное обеспечение с открытым исходным кодом
  • 9 Приложения
    • 9.1 Распознавание разговорного слова
    • 9.2 Анализ корреляционной мощности
  • 10 См. Также
  • 11 Ссылки
  • 12 Дополнительная литература
Реализация

Этот пример иллюстрирует реализацию алгоритма динамического преобразования времени, когда две последовательности sи tявляются строки дискретных символов. Для двух символов xи y, d (x, y)- это расстояние между символами, например d (x, y)= | х - у | {\ displaystyle | xy |}| x - y | .

int DTWDistance (s: array [1..n], t: array [1..m]) {DTW: = array [0..n, 0..m] для i: = от 0 до n для j: = от 0 до m DTW [i, j]: = бесконечность DTW [0, 0]: = 0 для i: = от 1 до n для j: = от 1 до m стоимость: = d ( s [i], t [j]) DTW [i, j]: = cost + minimum (DTW [i-1, j], // вставка DTW [i, j-1], // удаление DTW [i- 1, j-1]) // соответствие return DTW [n, m]}

где DTW [i, j]- расстояние между s [1: i]и t [1: j]с наилучшим выравниванием.

Иногда мы хотим добавить ограничение местоположения. То есть мы требуем, чтобы если s [i]совпал с t [j], то | i - j | {\ displaystyle | i-j |}| i - j | не больше, чем w, параметр окна.

Мы можем легко изменить приведенный выше алгоритм, чтобы добавить ограничение местоположения (различия помечены как). Однако данная модификация работает, только если | п - м | {\ displaystyle | n-m |}| n - м | не больше, чем w, т.е. конечная точка находится в пределах длины окна от диагонали. Чтобы алгоритм работал, параметр окна wдолжен быть адаптирован так, чтобы | п - м | ≤ w {\ displaystyle | n-m | \ leq w}| n - m | \ le w (см. Строку, отмеченную (*) в коде).

int DTWDistance (s: array [1..n], t: array [1..m] , w: int) {DTW: = array [0..n, 0..m] w: = max (w, abs (nm))// адаптируем размер окна (*) для i: = 0 до n для j: = 0 до m DTW [i, j ]: = бесконечность DTW [0, 0]: = 0 для i: = от 1 до nдля j: = от max (1, iw) до min (m, i + w)DTW [i, j]: = 0для i: = от 1 до n для j: = от max (1, iw) до min (m, i + w)стоимость: = d (s [i], t [j]) DTW [i, j]: = cost + minimum (DTW [i-1, j], // вставка DTW [i, j-1], // удаление DTW [i-1, j-1]) // соответствие return DTW [n, m]}
Свойства деформации

Алгоритм DTW производит дискретное сопоставление между существующими элементами одной серии и другой. Другими словами, он не позволяет масштабировать сегменты в последовательности по времени. Другие методы допускают непрерывную деформацию. Например, оптимизированное корреляционное искажение (COW) делит последовательность на однородные сегменты, которые масштабируются во времени с помощью линейной интерполяции, чтобы обеспечить наилучшее согласование искажения. Масштабирование сегмента приводит к потенциальному созданию новых элементов путем масштабирования сегментов по времени вниз или вверх и, таким образом, дает более чувствительное искажение, чем дискретное сопоставление исходных элементов DTW.

Сложность

Временная сложность алгоритма DTW составляет O (NM) {\ displaystyle O (NM)}O (нм) , где N {\ displaystyle N}N и M {\ displaystyle M}M - длины двух входных последовательностей. Предполагая, что N ≥ M {\ displaystyle N \ geq M}{\ displaystyle N \ geq M} , можно сказать, что сложность времени равна O (N 2) {\ displaystyle O (N ^ {2}) }O ( N ^ {2}) . 50-летняя квадратичная временная граница была недавно нарушена, реализация, разработанная Голдом и Шариром, позволяет вычислять DTW за O (n 2 / loglog (n)) {\ displaystyle O ({n ^ {2}} / {loglog (n)})}{\ displaystyle O ({n ^ {2}} / {loglog (n)})} время и пространство.

Естественная реализация DTW также имеет O (NM) {\ displaystyle O (NM)}O (нм) космическая сложность. Эта граница была недавно нарушена с помощью алгоритма «разделяй и властвуй» Трали и Демпси, что дало линейную пространственную сложность O (N + M) {\ displaystyle O (N + M)}{\ displaystyle O (N + M)} . У этого алгоритма есть дополнительное преимущество, заключающееся в возможности параллельных вычислений.

Быстрое вычисление

Быстрые методы для вычисления DTW включают PrunedDTW, SparseDTW, FastDTW и MultiscaleDTW. Обычная задача - получение аналогичных временных рядов - может быть ускорена с помощью нижних границ, таких как LB_Keogh или LB_Improved. В обзоре Wang et al. сообщили о несколько лучших результатах с нижней границей LB_Improved, чем с границей LB_Keogh, и обнаружили, что другие методы были неэффективными.

Средняя последовательность

Усреднение для динамического преобразования времени - это проблема поиска средней последовательности для набор последовательностей. NLAAF - это точный метод усреднения двух последовательностей с использованием DTW. Для более чем двух последовательностей проблема связана с одним из множественного выравнивания и требует эвристики. DBA в настоящее время является эталонным методом для усреднения набора последовательностей в соответствии с DTW. COMASA эффективно рандомизирует поиск средней последовательности, используя DBA в качестве локального процесса оптимизации.

Контролируемое обучение

A классификатор ближайшего соседа может обеспечить высочайшую производительность при использовании динамического преобразования времени в качестве меры расстояния.

Альтернативные подходы

В функциональном анализе данных временные ряды рассматриваются как дискретизации гладких (дифференцируемых) функций времени. Просматривая наблюдаемые образцы на гладких функциях, можно использовать непрерывную математику для анализа данных. Гладкость и монотонность функций деформации времени могут быть получены, например, путем интегрирования изменяющейся во времени радиальной базисной функции, которая, таким образом, является одномерным диффеоморфизмом . Оптимальные нелинейные функции деформации времени вычисляются путем минимизации меры расстояния набора функций до их деформированного среднего. Условия штрафа за шероховатость для функций деформации могут быть добавлены, например, путем ограничения размера их кривизны. Получаемые в результате функции деформации гладкие, что облегчает дальнейшую обработку. Этот подход был успешно применен для анализа паттернов и изменчивости речевых движений.

Другой связанный подход - скрытые модели Маркова (HMM), и было показано, что алгоритм Витерби, используемый для поиска наиболее вероятного пути через HMM, эквивалентен стохастическому DTW.

DTW и связанные с ним методы деформации обычно используются в качестве этапов предварительной или последующей обработки при анализе данных. Если наблюдаемые последовательности содержат как случайные вариации в своих значениях (форме наблюдаемых последовательностей), так и (случайное) временное рассогласование, деформация может перерасти в шум, что приведет к смещению результатов. Формулировка одновременной модели со случайным изменением как значений (по вертикали), так и с параметризацией во времени (по горизонтали) является примером нелинейной модели смешанных эффектов. При анализе движений человека одновременное нелинейное моделирование смешанных эффектов показало превосходные результаты по сравнению с DTW.

Программное обеспечение с открытым исходным кодом
  • Библиотека C ++ lbimproved реализует Fast Nearest-Neighbor Алгоритмы поиска под Стандартной общественной лицензией GNU (GPL). Он также предоставляет C ++ реализацию динамического преобразования времени, а также различные нижние границы.
  • Библиотека FastDTW - это реализация DTW и FastDTW на Java, которая обеспечивает оптимальные или почти оптимальные выравнивания по времени и сложности памяти O (N) в отличие от требования O (N) для стандартного алгоритма DTW. FastDTW использует многоуровневый подход, рекурсивно проецирующий решение с более грубым разрешением и уточняющий спроектированное решение.
  • Форк FastDTW (Java), опубликованный в Maven Central.
  • Пакет DTW предоставляет пакеты Python (dtw-python ) и R (dtw ) с полным охватом членов семейства алгоритмов DTW, включая различные правила рекурсии (также называемые пошаговыми шаблонами), ограничения и сопоставление подстрок.
  • Библиотека Python mlpy реализует DTW.
  • Библиотека Python pydtw реализует меры DTW с манхэттенским и евклидовым вкусом, включая нижние границы LB_Keogh.
  • Библиотека cudadtw C ++ / CUDA реализует выравнивание подпоследовательностей евклидова DTW и z-нормализованного евклидова расстояния, аналогично популярному UCR-Suite на ускорителях с поддержкой CUDA.
  • Библиотека машинного обучения JavaML реализует DTW.
  • Библиотека C # ndtw реализует DTW с различными параметрами.
  • Sketch-a-Char использует Greedy DTW (реализованный в JavaScript) как часть программы классификатора символов LaTeX.
  • MatchBox реализует DTW для сопоставления кепстральных коэффициентов мелкочастотной аудиосигналы.
  • Усреднение последовательности : реализация DBA GPL Java.
  • Gesture Recognition Toolkit | GRT Набор инструментов C ++ для распознавания жестов в реальном времени реализует DTW.
  • Программный пакет PyHubs реализует классификаторы DTW и ближайшего соседа, а также их расширения (классификаторы, учитывающие концентрацию).
  • Библиотека Python simpledtw реализует классический алгоритм динамического программирования O (NM) и основан на Numpy. Он поддерживает значения любого измерения, а также использует пользовательские функции норм для расстояний. Он под лицензией MIT.
  • Библиотека Python tslearn реализует DTW в контексте временных рядов.
  • Библиотека Python cuTWED CUDA реализует современное улучшенное Time Warp Edit Distance с использованием только линейной памяти с феноменальным ускорением.
  • DynamicAxisWarping.jl Является реализацией Julia DTW и связанных алгоритмов, таких как FastDTW, SoftDTW, GeneralDTW и DTW барицентры.
Приложения

Распознавание речи

Из-за разной скорости речи в структуре речи возникают нелинейные колебания по оси времени, которые необходимо устранить. Сопоставление DP - это алгоритм сопоставления с образцом, основанный на динамическом программировании (DP), который использует эффект нормализации по времени, когда колебания по оси времени моделируются с использованием нелинейной функции преобразования времени. Рассматривая любые два речевых паттерна, мы можем избавиться от их временных различий, искривляя временную ось одного так, чтобы достигалось максимальное совпадение с другим. Более того, если разрешить функции деформирования принимать любое возможное значение, можно будет гораздо меньше различать слова, принадлежащие к разным категориям. Итак, чтобы усилить различение слов, принадлежащих к разным категориям, были наложены ограничения на наклон функции деформации.

Анализ корреляционной мощности

Нестабильные часы используются для того, чтобы обойти наивный анализ мощности. Для противодействия этой защите используются несколько методов, одна из которых - динамическое искажение времени.

См. Также
Литература
Дополнительная литература
Последняя правка сделана 2021-05-18 07:27:58
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте