Dinamik zaman atlama - Dynamic time warping

Dinamik zaman atlama
Hareket yakalama sistemi kullanılarak kaydedilen yürüme sekansının iki tekrarı. Tekrarlar arasında yürüme hızında farklılıklar olsa da, uzuvların uzamsal yolları oldukça benzer kalır.[1]

İçinde Zaman serisi analizi, dinamik zaman atlama (DTW) biridir algoritmalar hız olarak değişebilen iki zamansal dizi arasındaki benzerliği ölçmek için. Örneğin, yürüme benzerlikleri, bir kişi diğerinden daha hızlı yürüyor olsa bile veya varsa, DTW kullanılarak tespit edilebilir. ivmeler ve bir gözlem sırasında yavaşlamalar. DTW, video, ses ve grafik verilerinin zamansal dizilerine uygulanmıştır - aslında doğrusal bir diziye dönüştürülebilen herhangi bir veri DTW ile analiz edilebilir. İyi bilinen bir uygulama otomatik olmuştur Konuşma tanıma, farklı konuşma hızlarıyla başa çıkmak için. Diğer uygulamalar şunları içerir: konuşmacı tanıma ve çevrimiçi imza tanıma. Kısmi olarak da kullanılabilir şekil eşleştirme uygulamalar.

Genel olarak DTW, bir optimum eşleşme verilen iki dizi arasında (ör. Zaman serisi ) belirli kısıtlamalar ve kurallar ile:

  • İlk dizideki her dizin, diğer dizideki bir veya daha fazla dizinle eşleştirilmelidir ve bunun tersi de geçerlidir.
  • İlk dizinin ilk dizini, diğer dizinin ilk dizini ile eşleştirilmelidir (ancak tek eşleşmesi olması gerekmez)
  • İlk dizinin son dizini, diğer dizinin son dizini ile eşleştirilmelidir (ancak tek eşleşmesi olması gerekmez)
  • Endekslerin ilk diziden diğer dizinin dizinlerine eşlenmesi monoton olarak artmalı ve tersi olmalıdır, yani eğer ilk diziden endeksler, o zaman iki dizin olmamalıdır diğer sırada, öyle ki indeks indeks ile eşleşti ve indeks indeks ile eşleşti ve tam tersi

optimum eşleşme tüm kısıtlamaları ve kuralları karşılayan ve minimum maliyete sahip olan, maliyetin, eşleşen her bir indeks çifti için değerleri arasındaki mutlak farkların toplamı olarak hesaplandığı eşleşme ile gösterilir.

Diziler "çarpıktır" doğrusal olmayan zaman boyutundaki belirli doğrusal olmayan varyasyonlardan bağımsız olarak benzerliklerinin bir ölçüsünü belirlemek için zaman boyutunda. Bu sıra hizalaması yöntem genellikle zaman serisi sınıflandırmasında kullanılır. DTW, verilen iki dizi arasındaki mesafeye benzer bir miktarı ölçmesine rağmen, üçgen eşitsizliği tutmak.

İki sekans arasındaki bir benzerlik ölçüsüne ek olarak, sözde "atlama yolu" üretilir, bu yola göre eğilerek iki sinyal zaman içinde hizalanabilir. Orijinal noktalara sahip sinyal X(orijinal), Y(orijinal) dönüştürülür X(çarpık), Y(çarpık). Bu, genetik sıradaki ve ses senkronizasyonundaki uygulamaları bulur. İlgili bir teknikte, bu teknik kullanılarak değişen hızdaki dizilerin ortalaması alınabilir. ortalama sıra Bölüm.

Bu kavramsal olarak şuna çok benzer: Needleman-Wunsch algoritması.

Uygulama

Bu örnek, iki dizi, dinamik zaman atlama algoritmasının uygulanmasını göstermektedir. s ve t ayrık sembol dizileridir. İki sembol için x ve y, d (x, y) semboller arasındaki bir mesafedir, ör. d (x, y) = .

int DTWDistance (s: array [1..n], t: array [1..m]) {DTW: = array [0..n, 0..m] for i: = 0 - n for j: = 0 - m DTW [i, j]: = sonsuz DTW [0, 0]: = 0 i için: = 1 - n için j: = 1 - m maliyet: = d (s [i], t [j]) DTW [i, j]: = maliyet + minimum (DTW [i-1, j], // ekleme DTW [i, j-1], // silme DTW [i-1, j-1]) // eşleşme dönüş DTW [n, d]}

nerede DTW [i, j] arasındaki mesafe s [1: i] ve t [1: j] en iyi hizalamayla.

Bazen bir yerellik kısıtlaması eklemek isteriz. Yani, eğer bunu istiyoruz si] ile eşleşti t [j], sonra daha büyük değil w, bir pencere parametresi.

Bir yerellik kısıtlaması eklemek için yukarıdaki algoritmayı kolayca değiştirebiliriz (farklılıklar işaretlenmiş). Bununla birlikte, yukarıda verilen değişiklik yalnızca daha büyük değil wyani bitiş noktası, köşegen pencerenin uzunluğu dahilindedir. Algoritmanın çalışmasını sağlamak için pencere parametresi w böylece uyarlanmalıdır (kodda (*) ile işaretlenmiş satıra bakın).

int DTWDistance (s: array [1..n], t: array [1..m], w: int) {DTW: = dizi [0..n, 0..m] w: = max (w, abs (n-m)) // i için pencere boyutunu (*) uyarla: = 0 - n için j: = 0 - m DTW [i, j]: = sonsuz DTW [0, 0]: = 0 i için: = 1 ila n        j için: = max (1, i-w) ile min (m, i + w) arası            DTW [i, j]: = 0    i için: = 1 ila n için j: = max (1, i-w) ile min (m, i + w) arası            maliyet: = d (s [i], t [j]) DTW [i, j]: = maliyet + minimum (DTW [i-1, j], // ekleme DTW [i, j-1], // silme DTW [i-1, j-1]) // eşleşme dönüşü DTW [n, m]}

Çözgü özellikleri

DTW algoritması, bir serinin mevcut elemanları arasında diğerine ayrı bir eşleşme üretir. Başka bir deyişle, sekans içindeki segmentlerin zaman ölçeklendirmesine izin vermez. Diğer yöntemler sürekli eğrilmeye izin verir. Örneğin, Correlation Optimized Warping (COW), en iyi eşleşen çarpıtmayı üretmek için diziyi doğrusal enterpolasyon kullanılarak zaman içinde ölçeklenen tek tip parçalara böler. Segment ölçeklendirme, segmentleri aşağı veya yukarı zaman ölçeklendirerek yeni öğelerin potansiyel oluşturulmasına neden olur ve bu nedenle DTW'nin ayrı ham öğeler eşleştirmesinden daha hassas bir çarpıtma üretir.

Karmaşıklık

DTW algoritmasının zaman karmaşıklığı , nerede ve iki giriş dizisinin uzunluklarıdır. Varsayalım ki zaman karmaşıklığının olduğu söylenebilir . 50 yıllık ikinci dereceden zaman sınırı yakın zamanda kırıldı, Gold ve Sharir nedeniyle yapılan bir uygulama, DTW'nin zaman ve uzay.[2]

DTW'nin doğal uygulaması ayrıca uzay karmaşıklığı. Bu sınır yakın zamanda Tralie ve Dempsey tarafından bir böl ve yönet algoritması kullanılarak kırılarak doğrusal uzay karmaşıklığı elde edildi. . Bu algoritma, paralel hesaplamaya uygun olma gibi ek bir avantaja sahiptir.[3]

Hızlı hesaplama

DTW'yi hesaplamak için hızlı teknikler arasında PrunedDTW,[4] Seyrek DTW,[5] FastDTW,[6] ve MultiscaleDTW.[7][8]Ortak bir görev, benzer zaman serilerinin geri alınması, LB_Keogh gibi alt sınırlar kullanılarak hızlandırılabilir.[9] veya LB_Improved.[10] Bir ankette Wang ve ark. LB_Improved alt sınırıyla LB_Keogh sınırına göre biraz daha iyi sonuçlar bildirdi ve diğer tekniklerin verimsiz olduğunu buldu.[11]

Ortalama sıra

Dinamik zaman atlama için ortalama alma, bir dizi dizi için ortalama bir dizi bulma sorunudur. NLAAF[12] DTW kullanarak iki dizinin ortalamasını almak için kesin bir yöntemdir. İkiden fazla dizi için, sorun aşağıdakilerden biri ile ilgilidir: çoklu hizalama ve buluşsal yöntem gerektirir.DBA[13] şu anda DTW.COMASA ile tutarlı bir şekilde bir dizi dizinin ortalamasını almak için bir referans yöntemdir[14] Yerel optimizasyon süreci olarak DBA'yı kullanarak ortalama sıra için aramayı verimli bir şekilde rastgele hale getirir.

Denetimli öğrenme

Bir en yakın komşu sınıflandırıcı bir mesafe ölçüsü olarak dinamik zaman atlatmayı kullanırken en gelişmiş performansı elde edebilir.[15]

Alternatif yaklaşımlar

İçinde fonksiyonel veri analizi zaman serileri, zamanın pürüzsüz (türevlenebilir) fonksiyonlarının ayrıklaştırmaları olarak kabul edilir. Gözlemlenen örnekleri pürüzsüz fonksiyonlarda görüntüleyerek, verileri analiz etmek için sürekli matematik kullanılabilir.[16] Zaman atlama fonksiyonlarının düzgünlüğü ve tekdüzeliği, örneğin zamanla değişen bir entegrasyonla elde edilebilir. radyal temel işlevi, böylece tek boyutlu olmak diffeomorfizm.[17] Optimal doğrusal olmayan zaman atlama işlevleri, işlevler kümesinin çarpık ortalamalarına olan mesafesinin bir ölçüsü en aza indirilerek hesaplanır. Bükme fonksiyonları için pürüzlülük cezası terimleri, örneğin eğriliklerinin boyutu sınırlandırılarak eklenebilir. Ortaya çıkan çözgü fonksiyonları pürüzsüzdür ve bu da daha fazla işlemeyi kolaylaştırır. Bu yaklaşım, konuşma hareketlerinin kalıplarını ve değişkenliğini analiz etmek için başarıyla uygulandı.[18][19]

Bir başka ilgili yaklaşım gizli Markov modelleri (HMM) ve Viterbi algoritması HMM üzerinden en olası yolu aramak için kullanılan, stokastik DTW'ye eşdeğerdir.[20][21][22]

DTW ve ilgili çarpıtma yöntemleri tipik olarak veri analizlerinde ön veya son işleme adımları olarak kullanılır. Gözlemlenen diziler, hem değerlerinde (gözlemlenen dizilerin şekli) hem de (rasgele) zamansal yanlış hizalamada hem rasgele varyasyon içeriyorsa, eğrilik gürültüye aşırı uyarak önyargılı sonuçlara yol açabilir. Hem değerlerde (dikey) hem de zaman parametrelerinde (yatay) rastgele varyasyonlu bir eşzamanlı model formülasyonu, bir doğrusal olmayan karma efekt modeli.[23] İnsan hareketi analizinde, eşzamanlı doğrusal olmayan karma efekt modellemesinin DTW'ye kıyasla daha üstün sonuçlar ürettiği gösterilmiştir.[24]

Açık kaynaklı yazılım

  • lbimproved C ++ kitaplığı, GNU Genel Kamu Lisansı (GPL) altında Hızlı En Yakın Komşu Erişim algoritmalarını uygular. Ayrıca, çeşitli alt sınırların yanı sıra dinamik zaman atlama için bir C ++ uygulaması sağlar.
  • FastDTW kütüphane, DTW'nin bir Java uygulaması ve bir dosya ile optimum veya optimuma yakın hizalamalar sağlayan bir FastDTW uygulamasıdır Ö(N) zaman ve hafıza karmaşıklığı, Ö(N2) standart DTW algoritması gereksinimi. FastDTW, bir çözümü daha kaba bir çözünürlükten yinelemeli olarak yansıtan ve öngörülen çözümü iyileştiren çok düzeyli bir yaklaşım kullanır.
  • FastDTW çatal (Java) Maven Central'da yayınlandı.
  • DTW paketi Python sağlar (dtw-python ) ve R paketleri (dtw ) çeşitli özyineleme kuralları (adım kalıpları da denir), kısıtlamalar ve alt dize eşleştirmesi dahil olmak üzere DTW algoritma ailesi üyelerinin kapsamlı bir kapsamı ile
  • mlpy Python kütüphanesi DTW'yi uygular.
  • pydtw Python kütüphanesi, LB_Keogh alt sınırları dahil olmak üzere Manhattan ve Öklid aromalı DTW önlemlerini uygular.
  • Cudadtw C ++ / CUDA kitaplığı, Öklid aromalı DTW'nin alt sıra hizalamasını uygular ve z- CUDA etkin hızlandırıcılarda popüler UCR-Suite'e benzer normalleştirilmiş Öklid mesafesi.
  • JavaML makine öğrenimi kitaplığı uygulamaları DTW.
  • ndtw C # kütüphanesi DTW'yi çeşitli seçeneklerle uygular.
  • Sketch-a-Char LaTeX sembol sınıflandırıcı programının bir parçası olarak Greedy DTW'yi (JavaScript'te uygulanmıştır) kullanır.
  • Kibrit kutusu DTW'yi ses sinyallerinin mel-frekansı sepstral katsayılarıyla eşleştirmek için uygular.
  • Sıra ortalaması: DBA'nın bir GPL Java uygulaması.[13]
  • Hareket Tanıma Araç Seti | GRT C ++ gerçek zamanlı hareket tanıma araç seti DTW'yi uygular.
  • PyHub'lar yazılım paketi, DTW ve en yakın komşu sınıflandırıcıları ve bunların uzantılarını (hubness-farkında sınıflandırıcılar) uygular.
  • Simpledtw Python kitaplığı, klasik Ö(NM) Dinamik Programlama algoritması ve Numpy temelleri. Her boyuttaki değerleri destekler ve mesafeler için özel norm fonksiyonlarını kullanır. MIT lisansı altında lisanslanmıştır.
  • tslearn Python kütüphanesi, zaman serisi bağlamında DTW'yi uygular.
  • cuTWED CUDA Python kütüphanesi gelişmiş bir son teknoloji uygular Zaman Bükme Düzenleme Mesafesi olağanüstü hızlanmalara sahip yalnızca doğrusal bellek kullanarak.
  • DynamicAxisWarping.jl DTW ve FastDTW, SoftDTW, GeneralDTW ve DTW barycenters gibi ilgili algoritmaların Julia uygulamasıdır.

Başvurular

Sözlü kelime tanıma

Farklı konuşma hızları nedeniyle, ortadan kaldırılması gereken zaman eksenine karşı konuşma modelinde doğrusal olmayan bir dalgalanma meydana gelir.[25] DP eşleştirme, temel alan dinamik programlama (DP), zaman eksenindeki dalgalanmaların doğrusal olmayan bir zaman atlama fonksiyonu kullanılarak modellendiği bir zaman normalleştirme efekti kullanan. Herhangi iki konuşma modelini göz önünde bulundurarak, birinin zaman eksenini çarpıtarak zamanlama farklılıklarından kurtulabiliriz, böylece diğeri ile maksimum çakışmaya ulaşılır. Ayrıca, eğrilme fonksiyonunun olası herhangi bir değeri almasına izin verilirse, Çok az[netleştirmek ] farklı kategorilere ait kelimeler arasında ayrım yapılabilir. Bu nedenle, farklı kategorilere ait sözcükler arasındaki ayrımı geliştirmek için çarpıtma işlevi eğimine kısıtlamalar getirildi.

Korelasyon gücü analizi

Kararsız saatler saflığı yenmek için kullanılır güç analizi. Bu savunmaya karşı koymak için, biri dinamik zaman atlaması olan çeşitli teknikler kullanılmaktadır.

Ayrıca bakınız

Referanslar

  1. ^ Olsen, NL; Markussen, B; Raket, LL (2018), "Yanlış hizalanmış çok değişkenli işlevsel veriler için eşzamanlı çıkarım", Kraliyet İstatistik Derneği Dergisi C Serisi, 67 (5): 1147–76, arXiv:1606.03295, doi:10.1111 / rssc.12276, S2CID  88515233
  2. ^ Altın, Ömer; Sharir Micha (2018). "Dinamik Zaman Bükme ve Geometrik Düzenleme Mesafesi: İkinci Dereceden Engelin Kaldırılması". Bilgi İşlem Makineleri Derneği. 14 (4). doi:10.1145/3230734. S2CID  52070903.
  3. ^ Tralie, Christopher; Dempsey Elizabeth (2020). "Doğrusal Bellek ile Tam, Paralelleştirilebilir Dinamik Zaman Bükme Hizalaması". Uluslararası Müzik Bilgi Edinme Konferansı (ISMIR) Bildirileri.
  4. ^ Silva, D.F., Batista, G.E.A.P.A. (2015). Tam Çift Yönlü Dinamik Zaman Bükme Matrisi Hesaplamasını Hızlandırma.
  5. ^ Al-Naymat, G., Chawla, S., Taheri, J. (2012). SparseDTW: Dinamik Zaman Bükmeyi Hızlandırmak İçin Yeni Bir Yaklaşım.
  6. ^ Stan Salvador, Philip Chan, FastDTW: Doğrusal Zaman ve Uzayda Doğru Dinamik Zaman Bükülmesine Doğru. Madencilik Geçici ve Sıralı Veriler üzerine KDD Çalıştayı, s. 70–80, 2004.
  7. ^ Meinard Müller, Henning Mattes ve Frank Kurth (2006). Ses Senkronizasyonuna Verimli Çok Ölçekli Bir Yaklaşım. Uluslararası Müzik Bilgisine Erişim Konferansı Bildirileri (ISMIR), s. 192-197.
  8. ^ Thomas Prätzlich, Jonathan Driedger ve Meinard Müller (2016). Hafıza Kısıtlı Çok Ölçekli Dinamik Zaman Atlama. IEEE Uluslararası Akustik, Konuşma ve Sinyal İşleme Konferansı Bildirileri (ICASSP), s. 569-573.
  9. ^ Keogh, E .; Ratanamahatana, C.A. (2005). "Dinamik zaman atlamasının tam indekslenmesi". Bilgi ve Bilgi Sistemleri. 7 (3): 358–386. doi:10.1007 / s10115-004-0154-9. S2CID  207056701.
  10. ^ Lemire, D. (2009). "İki Geçişli Dinamik Zaman Bükme Alt Sınırı ile Daha Hızlı Erişim". Desen tanıma. 42 (9): 2169–2180. arXiv:0811.3301. doi:10.1016 / j.patcog.2008.11.030. S2CID  8658213.
  11. ^ Wang, Xiaoyue; et al. (2010). "Temsil yöntemlerinin deneysel karşılaştırması ve zaman serisi verileri için mesafe ölçüleri". Veri Madenciliği ve Bilgi Keşfi. 2010: 1–35. arXiv:1012.2789.
  12. ^ Gupta, L .; Molfese, D. L .; Tammana, R .; Simos, P.G. (1996). "Doğrusal olmayan hizalama ve uyarılmış potansiyeli tahmin etmek için ortalama". Biyomedikal Mühendisliğinde IEEE İşlemleri. 43 (4): 348–356. doi:10.1109/10.486255. PMID  8626184. S2CID  28688330.
  13. ^ a b Petitjean, F. O .; Ketterlin, A .; Gançarski, P. (2011). "Kümelemeye yönelik uygulamalarla dinamik zaman atlama için global bir ortalama yöntemi". Desen tanıma. 44 (3): 678. doi:10.1016 / j.patcog.2010.09.013.
  14. ^ Petitjean, F. O .; Gançarski, P. (2012). "Ortalamayla bir dizi zaman serisini özetleme: Steiner dizisinden kompakt çoklu hizalamaya". Teorik Bilgisayar Bilimleri. 414: 76–91. doi:10.1016 / j.tcs.2011.09.029.
  15. ^ Ding, Hui; Trajcevski, Goce; Scheuermann, Peter; Wang, Xiaoyue; Keogh, Eamonn (2008). "Zaman serisi verilerinin sorgulanması ve madenciliği: gösterimlerin ve uzaklık ölçülerinin deneysel karşılaştırması". Proc. VLDB Bağış. 1 (2): 1542–1552. doi:10.14778/1454159.1454226.
  16. ^ Lucero, J. C .; Munhall, K. G .; Gracco, V. G .; Ramsay, J. O. (1997). "Zaman Kaydı ve Konuşma Hareketlerinin Örüntüsü Üzerine". Konuşma, Dil ve İşitme Araştırmaları Dergisi. 40 (5): 1111–1117. doi:10.1044 / jslhr.4005.1111. PMID  9328881.
  17. ^ Durrleman, S; Pennec, X .; Trouvé, A .; Braga, J .; Gerig, G. ve Ayache, N. (2013). "Boylamsal Şekil Verilerinin Zaman-Uzamsal İstatistiksel Analizi için Kapsamlı Bir Çerçeveye Doğru". International Journal of Computer Vision. 103 (1): 22–59. doi:10.1007 / s11263-012-0592-x. PMC  3744347. PMID  23956495.
  18. ^ Howell, P .; Anderson, A .; Lucero, J.C. (2010). "Konuşma motoru zamanlaması ve akıcılığı". Maassen, B .; van Lieshout, P. (editörler). Konuşma Motor Kontrolü: Temel ve Uygulamalı Araştırmada Yeni Gelişmeler. Oxford University Press. s. 215–225. ISBN  978-0199235797.
  19. ^ Koenig, Laura L .; Lucero, Jorge C .; Perlman Elizabeth (2008). "Çocukların ve yetişkinlerin sürtüşmelerinde konuşma üretimi değişkenliği: Fonksiyonel veri analizinin sonuçları". Amerika Akustik Derneği Dergisi. 124 (5): 3158–3170. Bibcode:2008ASAJ..124.3158K. doi:10.1121/1.2981639. ISSN  0001-4966. PMC  2677351. PMID  19045800.
  20. ^ Nakagawa, Seiichi; Nakanishi, Hirobumi (1988-01-01). "Stokastik Dinamik Zaman Bükme Yöntemi ile Konuşmacıdan Bağımsız İngilizce Ünsüz ve Japonca Sözcük Tanıma". IETE Araştırma Dergisi. 34 (1): 87–95. doi:10.1080/03772063.1988.11436710. ISSN  0377-2063.
  21. ^ Fang, Chunsheng. "Dinamik Zaman Bükülmeden (DTW) Gizli Markov Modeline (HMM)" (PDF).
  22. ^ Juang, B.H. (Eylül 1984). "Gizli Markov modeli ve konuşma tanıma için dinamik zaman atlama hakkında # x2014; Birleşik bir görünüm". AT&T Bell Laboratories Teknik Dergisi. 63 (7): 1213–1243. doi:10.1002 / j.1538-7305.1984.tb00034.x. ISSN  0748-612X. S2CID  8461145.
  23. ^ Raket LL, Sommer S, Markussen B (2014). "İşlevsel verilerin eşzamanlı olarak düzgünleştirilmesi ve kaydı için doğrusal olmayan bir karma efekt modeli". Desen Tanıma Mektupları. 38: 1–7. doi:10.1016 / j.patrec.2013.10.018.
  24. ^ Raket LL, Grimme B, Schöner G, Igel C, Markussen B (2016). "İnsan hareketinin analizinde zamanlamayı, hareket koşullarını ve bireysel farklılıkları ayırmak". PLOS Hesaplamalı Biyoloji. 12 (9): e1005092. Bibcode:2016PLSCB..12E5092R. doi:10.1371 / journal.pcbi.1005092. PMC  5033575. PMID  27657545.
  25. ^ Sakoe, Hiroaki; Chiba, Seibi (1978). "Sözlü kelime tanıma için dinamik programlama algoritması optimizasyonu". Akustik, Konuşma ve Sinyal İşleme ile ilgili IEEE İşlemleri. 26 (1): 43–49. doi:10.1109 / tassp.1978.1163055.

daha fazla okuma