Küçük bir norm ayarının özvektörleri


10

Yavaş değişen bir veri kümem var ve kovaryans matrisinin özvektörlerini / özdeğerlerini takip etmem gerekiyor.

Kullanıyorum scipy.linalg.eigh, ama çok pahalı ve zaten biraz yanlış olan bir ayrışmam olduğu gerçeğini kullanmıyor.

Herkes bu sorunla başa çıkmak için daha iyi bir yaklaşım önerebilir mi?


1
Verileriniz ne kadar büyük? Tam bir özsisteme mi yoksa sadece en büyük özdeğerlerden birine mi ihtiyacınız var? Onlara tam olarak mı ihtiyacınız var, yoksa bir yaklaşım mı olurdu?
cfh

Tam bir özsisteme ihtiyacım var. Kovaryans matrisinin tersinin regresyon yorumlamasını kullanarak küçük norm güncellemesinden sonra bir matrisin tersini güncellemek için bir algoritma buldum, bu yüzden özvektörler için benzer bir şey olması gerektiğini varsaydım.
Yaroslav Bulatov

Bu tam özdeyiş ile ne yaparsın? İçinden geçmeyen daha iyi bir kısayol olabilir ... Ve cfh'nin sorusunu tekrar ediyorum: "ne kadar büyük"?
Federico Poloni

Ben 8k özellikleri ve milyonlarca veri noktası var, bu yüzden kovaryans yaklaşıktır. Bu, bu algoritmayı uygulamak içindir . Gradyan güncelleme belirli kovaryans matrisinin özdeğerlerine bağlıdır ve bu kovaryans matrisi her adımda değişir
Yaroslav Bulatov

Yanıtlar:


5

Saf bir yaklaşım, matris özdeğer çözeltisi kullanmaktır , yinelemeli eigensolver için matris ilk tahmin olarak bir ( t + δ t ) . Tam spektruma veya güç yöntemine ihtiyacınız varsa QR'yi kullanabilirsiniz. Bununla birlikte, bu tamamen sağlam bir yaklaşım değildir, çünkü bir matrisin özdeğerleri , özellikle zayıf koşulluysa (2) neredeyse komşu bir matrise (1) yakın olmak zorunda değildir .bir(t)bir(t+δt)

Bir altuzay izleme yöntemi görünüşte daha kullanışlıdır (3) . (4) ' ten bir alıntı :

Aşırı (maksimum veya minimum) bir öz çiftinin (özdeğer ve özvektör) yinelemeli hesaplaması 1966'ya kadar uzanabilir [72]. 1980'de Thompson, özvektörü tahmin etmek için, örnek kovaryans matrisinin en küçük özdeğerine karşılık gelen ve Pisarenko'nun harmonik tahmincisi ile açı / frekans taramasının uyarlanabilir izleme algoritmasını sağlayan bir LMS tipi uyarlamalı algoritma önerdi [14]. Sarkar ve ark. [73], yavaş değişen sinyalin kovaryans matrisinin en küçük özdeğerine karşılık gelen aşırı özvektör varyasyonunu izlemek için konjugat gradyan algoritmasını kullanmış ve Thompson'un LMS tipi algoritmasından çok daha hızlı yakınsamasını kanıtlamıştır. Bu yöntemler sadece tek bir aşırı değeri ve özvektörü sınırlı uygulama ile izlemek için kullanıldı, ancak daha sonra öz-altuzay izleme ve güncelleme yöntemleri için genişletildi. 1990'da Comon ve Golub [6], aşırı tekil değeri ve tekil vektörü izlemek için Lanczos yöntemini önerdi. [74].birx=kx

[6]: Comon, P. ve Golub, GH (1990). Sinyal işlemede birkaç aşırı tekil değer ve vektörün izlenmesi. IEEE'nin İşlenmesinde (s. 1327–1343).

[14]: Thompson, PA (1980). Tarafsız frekans için uyarlanabilir bir spektral analiz tekniği

[72]: Bradbury, WW ve Fletcher, R. (1966). Öz problemin çözümleri için yeni yinelemeli yöntemler. Sayısal Matematik, 9 (9), 259-266.

[73]: Sarkar, TK, Dianat, SA, Chen, H. ve Brule, JD (1986). Konjugat gradyan yöntemi ile uyarlanabilir spektral kestirim. Akustik, Konuşma ve Sinyal İşlemede IEEE İşlemleri, 34 (2), 272-284.

[74]: Golub, GH ve Van Load, CF (1989). Matris hesaplaması (2. baskı). Baltimore: John Hopkins Üniversitesi Yayınları.

Ayrıca, kullanımınız göz önüne alındığında çözmeniz gereken şey gibi simetrik matrislerin çözümlerinin scipy.linalg.eighbiraz ucuz olduğunu da belirtmeliyim . Yalnızca birkaç özdeğerle ilgileniyorsanız, yönteminizde hız iyileştirmeleri de bulabilirsiniz. Arnoldi yöntemi bu gibi durumlarda sıklıkla kullanılır.


1
İşaretçi için teşekkürler, QR algoritması iyi bir başlangıç ​​noktası gibi görünüyor
Yaroslav Bulatov

birbir+λben

ps: linalg. bir 4k-4k-matris üzerinde yaklaşık 20 saniye sürüyor (bir nedenle sadece tek çekirdekli kullanıyor). Güncelleme başına yaklaşık 0.25 saniyeye ihtiyacım var
Yaroslav Bulatov

7

ne yazık ki küçük rütbe güncellemeleri yok, tam rütbe küçük norm güncellemeleri var
Yaroslav Bulatov

@YaroslavBulatov Küçük norm tam sıra güncellemelerini işleyebilecek etkili bir algoritmanın farkında değilim - bulabildiğim en iyi şey bu referanstı , ancak çok umut verici görünmüyor. Elbette, özdeğer pertürbasyonuna bakmak isteyebileceğiniz büyük bir literatür vardır (diğer cevaba bakınız).
GoHokies
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.