Seyrek Walsh-Hadamard Dönüşümü


15

Walsh-Hadamard (WHT) dönüşümü Fourier bir genelleme dönüşümü ve boyutu gerçek veya karmaşık sayılar bir vektör üzerine bir dikgen dönüştürme olan . Dönüşüm kuantum hesaplamada popülerdir, ancak yakın zamanda Johnson-Lindenstrauss Lemma'nın kanıtında kullanılmak üzere yüksek boyutlu vektörlerin rastgele projeksiyonları için bir tür ön koşul olarak incelenmiştir. Ana özelliği, kare d × d matris olmasına rağmen , FFT benzeri bir yöntemle O ( d log d ) ( yerine ) zamanında bir vektöre uygulanabilmesidir .d=2md×dO(dlogd)d2

Giriş vektörünün seyrek olduğunu varsayalım : sadece birkaç sıfır olmayan girişi var ( ). Zaman içinde WHT hesaplamak için herhangi bir şekilde var bu şekilde ve için ?rdf(r,d)f(d,d)=O(dlogd)f(r,d)=o(dlogd)r=o(d)

Not: Bu gereksinimler den daha hızlı çalışan bir şey olmasını istediğim fikrini resmileştirmenin bir yoludurdlogd küçük için .r


Aşağıdaki iki kolay gözlemin farkında olduğunuzdan eminim, ama yine de bunları diğer okuyucular için yazacağım: (1) Basit bir çarpma O (rd) süresi verir. Sadece r = o (log d) olduğunda O (d log d) 'den daha iyidir. (2) Giriş vektörü seyrek olsa bile, çıkış genel olarak seyrek değildir. Bu, f (r, d) 'nin r = 1 için bile o (d) olmasını umamayacağımız anlamına gelir.
Tsuyoshi Ito

4
Fourier dönüşümü için aynı sorunun cevabının ne olduğunu biliyor musunuz?
Robin Kothari

Tsuyoshi: evet, (1) 'in farkındayım ve aslında buna ihtiyaç duyan uygulamalar için yapılan şey bu. (2) 'ye gelince, bu da doğrudur. Robin, bu iyi bir nokta - FT için hiçbir şey bilmiyorum ve aslında bu kazı yapmaya başlamak için iyi bir yer olabilir.
Suresh Venkat

Görünen o ki wikipedia'yı kazmış olmalıydım. FFT sayfasında seyrek hesaplama problemi ile ilgili olabilecek iki makaleden bahsedilmektedir.
Suresh Venkat

Yanıtlar:


6

WHT satırlarını için x tamsayısı ile dizinleyin . Yani x, log d bitlerine sahiptir. Benzer şekilde sütunları dizine ekleyin. (X, y) konumu ( - 1 ) x , y üs uzunluğu günlük d nokta ürünüdür. R'nin 2 gücü olduğunu varsayalım, gerekirse yuvarlanır. İlk günlük r bitlerinin değişmesine izin vererek ve diğer günlük (d / r) bitlerini d / r yollarının her birinde sabitleyerek dxr matrisini rxr bloklarına bölün. Bu rxr bloğu, bazı sütunlar eksik, tekrarlanan veya reddedilmiş olması dışında, r boyutunda daha küçük bir WHT matrisidir. Her durumda, vektörü önceden önceden işleyin, sonra r günlüğü r'de rxr WHT yapın, sonra toplam süre d günlüğü r için d / r kez tekrarlayın.0x<d(-1)x,y

Misal:

d = 4.

WHT H:

++++
+-+-
++--
+--+

Rasgele sütun kümesi 00 ve 10'dur (bundan en solda ve ikiden fazladır):

++
++
+-
+-

Satır blokları

++
++

ve

--
--

(bir,b)T(bir+b,0)T

++
+-

(bir,b)T(-bir-b,0)T

++
+-
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.