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(dlog⁡d)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 ?r≪df(r,d)f(d,d)=O(dlog⁡d)f(r,d)=o(dlog⁡d)r=o(d)

Not: Bu gereksinimler den daha hızlı çalışan bir şey olmasını istediğim fikrini resmileştirmenin bir yoludurdlog⁡d 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.0≤x<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.