Déformation temporelle dynamique et normalisation

9

J'utilise Dynamic Time Warping pour faire correspondre une "requête" et une courbe "modèle" et j'ai eu un succès raisonnable jusqu'à présent, mais j'ai quelques questions de base:

  1. J'évalue une «correspondance» en évaluant si le résultat DTW est inférieur à une valeur seuil que je trouve heuristiquement. Est-ce l'approche générale pour déterminer une «correspondance» à l'aide de DTW? Sinon, veuillez expliquer ...

    En supposant que la réponse à (1) est "oui", alors je suis confus, car le résultat DTW est assez sensible à a) la différence d'amplitudes des courbes et b) la longueur du vecteur de requête et la longueur du " modèle "vecteur.

    J'utilise une fonction de pas symétrique, donc pour (b) je normalise mon résultat DTW en divisant par M + N (largeur + hauteur de la matrice DTW). Cela semble être quelque peu efficace, mais il semble que cela pénaliserait les correspondances DTW qui sont plus éloignées de la diagonale (c'est-à-dire qui ont un chemin plus long à travers la matrice DTW). Ce qui semble un peu arbitraire pour une approche de "normalisation". Diviser par le nombre d'étapes à travers la matrice semble avoir un sens intuitif, mais cela ne semble pas être le moyen de le faire selon la littérature.

  2. Existe-t-il un meilleur moyen d'ajuster le résultat DTW pour la taille des vecteurs de requête et de modèle?

  3. Enfin, comment normaliser le résultat DTW pour la différence d'amplitudes entre la requête et les vecteurs modèles?

En l'état, étant donné le manque de techniques de normalisation fiables (ou mon manque de compréhension), il semble y avoir beaucoup d'efforts manuels impliqués dans le travail avec les données d'échantillon pour identifier le meilleur niveau de seuil pour définir une "correspondance". Suis-je en train de manquer quelque chose?

monsieur blinky
la source

Réponses:

8

Aucune "approche générale" n'existe pour cela au moins à ma connaissance. De plus, vous essayez de minimiser une métrique de distance de toute façon. Par exemple, dans le grand-père des papiers DTW, Sakoe et Chiba (1978) utilisentcomme la mesure de la différence entre deux vecteurs caractéristiques.||aibi||

Comme vous l'avez correctement identifié, vous devez avoir le même nombre de points (généralement) pour que cela fonctionne hors de la boîte. Je proposerais d'utiliser un lisseur / interpolateur lowess () sur vos courbes pour les rendre de taille égale en premier. C'est assez standard pour les "statistiques de courbe". Vous pouvez voir un exemple d'application dans Chiou et al. (2003) ; les auteurs ne se soucient pas de DTW en tant que tel dans ce travail, mais c'est un bon exemple de la façon de traiter les lectures de tailles inégales.

De plus, comme vous le dites, "l'amplitude" est un problème. C'est un peu plus ouvert pour être honnête. Vous pouvez essayer une approche de zone sous la courbe comme celle proposée par Zhang et Mueller (2011) pour prendre soin de cela, mais vraiment à des fins de déformation temporelle, même de normalisation sup-normale (c'est-à-dire remplacer par pourrait faire comme dans cet article de Tang et Mueller (2009) . Je suivrais le second, mais en tout cas comme vous l'avez également remarqué, la normalisation des échantillons est un nécessité.f(x)f(x)supy|f(x)|

Selon la nature de vos données, vous pouvez trouver de la documentation plus spécifique à l'application. Personnellement, je trouve l'approche de minimisation par rapport à une fonction de déformation par paire cible la plus intuitive de toutes. La fonction cible à minimiser est donc: , où le tout malgré son étrangeté est en fait assez simple: vous essayez de trouver la fonction de déformation qui minimise la somme attendue de la non-concordance de la courbe de requête déformée avec le courbe de référence (le termegCλ(Yi,Yk,g)=E{T(Yi(g(t))Yk(t))2+λ(g(t)t)2dt|Yi,Yk}gY k ( t ) Y i ( g ( t ) ) - Y k ( t ) g ( t ) - tYi(g(t))Yk(t)Yi(g(t))Yk(t)) sous réserve d'une certaine normalisation de la distorsion temporelle que vous imposez par cette déformation (le terme ). C'est ce que le package MATLAB PACE implémente. Je sais qu'il existe un package R fda par JO Ramsay et al. cela pourrait également être utile, mais je ne l'ai pas personnellement utilisé (un peu ennuyeux, la référence standard pour les méthodes de ce package est dans de nombreux cas l'excellent livre de Ramsay et Silverman, Functional Data Analysis (2006) 2e éd. , et vous devez parcourir un Livre de 400 pages pour obtenir ce que vous cherchez; au moins c'est bien lu quand même)g(t)t

Le problème que vous décrivez dans la littérature statistique est largement connu sous le nom d '« enregistrement de courbe » (par exemple, voir Gasser et Kneip (1995) pour un traitement précoce du problème) et relève du cadre général des techniques d' analyse des données fonctionnelles .

(Dans les cas où je pourrais trouver le document original disponible en ligne, le lien y dirige; sinon le lien renvoie à une bibliothèque numérique générale. Presque tous les documents mentionnés peuvent être trouvés pour rédiger des versions gratuitement. J'ai supprimé mon commentaire d'origine tel qu'il est remplacé par ce post.)

usεr11852
la source
Il s'agit d'une excellente et très très utile réponse. Les références sont particulièrement utiles.
Mikko
Connaissez-vous une référence appropriée pour déclarer que "l'amplitude est un problème" en DTW? C'est probablement si évident que j'ai du mal à trouver une référence, qui en discute clairement.
Mikko
Je suis content que tu l'aimes. Comme je l'ai dit, le traitement de l'amplitude "est un peu plus ouvert" et je ne pense pas que vous trouverez une seule référence le mentionnant à moins qu'il ne soit lié à l'application ou à la méthodologie en question (comme par exemple dans le travail de Zhang & Mueller ' 09). La normalisation est nécessaire lorsque vous avez des données mesurées dans différentes unités. Ce qui est généralement crucial est la normalisation des composants fonctionnels principaux / canoniques / what_have_you afin qu'ils forment une base dans . L2
usεr11852
D'après les ressources déjà mentionnées, votre meilleur pari sera probablement le livre de la FDA de Ramsay & Silverman, Chapt. 7 sur "l'enregistrement et l'affichage des données fonctionnelles". Une très bonne ressource est également le livre: "Inférence pour les données fonctionnelles avec les applications" par Horváth et Kokoszka; La partie III "Données fonctionnelles dépendantes" aborde la question de la normalisation principalement parce que l'on se soucie de la détection des points de changement.
usεr11852