王良君 陸安琪
(江蘇大學計算機科學與通信工程學院 鎮江 212013)
壓縮感知(Compressive Sensing,CS)[1]是信號處理領域近十幾年來興起的理論,被應用到各個領域[2~3]。假設有一個信號長度為n的原始信號,用一個隨機觀測矩陣A?Rm×n將信號投影到一個低維空間,得到長度為m的測量值y?Rm,CS 的信號采集模型可以用數學公式(1)表示:
通常經典的CS 假設測量具有無限的精度。然而在實踐中,每個測量值都會從一個真實值(可能是無限范圍)映射到一個有限范圍內的離散值。不可避免誤差產生。很多研究提出了從量化測量中具體重建稀疏信號的技術,其中一種極端的方案是1 比特量化,即只保留測量值的符號值。1 比特壓縮感知(1-bit CS)是由P.T.Boufounos 和R.G.Baraniuk 在2008 年提出的理論[4]。該理論的數學模型表示為
其中sign 是一個符號函數,將測量值向量中元素逐個跟零比較,大于0 記作1,反之記作-1,最后得到的測量值是一個布爾型向量Bm:={-1,1}m。1-bit CS 的目標是從1 比特觀測值t和測量矩陣A中恢復稀疏向量x。
最近對該理論的研究成為壓縮感知領域的熱門,出現了大量關于1-bit CS 的重構算法。例如重歸一化固定點迭代[4](Renormalized Fixed Point Iterative,RFPI)及其改進算法[5],二分迭代硬閾值[6](Binary Iterative Hard Thresholding,BIHT),這基礎上做出改進的BIHT-l2在噪聲情況下有更好重構表現,自適應離群值追蹤[7](Adaptive Outlier Pursuit,AOP)可以自適應檢測符號翻轉。然而,這些算法需要預先了解原始信號的稀疏性,并且上述工作都默認閾值為零,由于采樣數據之間的強相關性,帶來的新信息量較少。文獻[8]借鑒可變步長增量調制的思想,提出了一種自適應量化的1 比特壓縮感知,該算法的步長設置跟上一步的測量結果相關,相鄰測量值之間相互依賴,但無法保證其正確性,一旦發生錯誤,將導致整個系統崩潰。文獻[9]用廣義近似消息傳遞(GAMP)設計自適應量化方案,其中1 比特測量值被用作反饋來適應下一個閾值,但是該算法的計算復雜度較高,運行效率較低。本文研究無噪情況下的1-bit CS 信號重構問題,受到GAMP算法[9]啟發,建立1比特動態閾值框架,然后在貝葉斯概率模型中引入動態閾值,并給出變分推斷方法的推導過程。經過實驗和分析,該方案可以有效恢復原始信號,并且與其他算法比較,可以獲得更穩定的重構性能。
動態閾值框架的實際模型分為兩個部分:編碼端和解碼端。其框架圖如圖1。
長度為m的閾值向量τ被分成兩個部分。閾值向量的前minit個元素初始化時被預先設置,剩下的m-minit個元素分成k份,隨觀測次數依次自適應產生。預先給定初始閾值τ0=0,在解碼端輸出信號的初步估計值x?0。假設每份的閾值分量大小為B(block)。在接下來的步驟中,對于第k個閾值分量τk=Ak x?k-1,Ak?,x?k-1是之前所有的觀測值tk-1和閾值τk-1=[τk-2;τk-1]產生的估計值。以此循環,直到所有的觀測值全部用完。
動態閾值框架主要的步驟描述如下:
1)初始設置:初始閾值向量τ0=0,生成信號估計值x?0;
2)計算y?k-1=Ak x?k-1,τk=y?k-1,更新τk=[τk-1;τk],tk=sign(yk-τk);
3)基于觀測值tk和閾值τk,獲得新的信號估計值x?k;
4)回到第2)步直到觀測結束。
假設測量矩陣A中每個元素都是由標準高斯分布隨機生成的并且觀測值t模型的推理。根據式(2),ti的取值只有兩種,可以用伯努利概率分布表示量化觀測值t與原始測量值y以及閾值τ的關系:
這里的h=y-τ,g( ? )=(1+e-?)-1是邏輯函數,與符號函數相比是可微分的,利于后續推導。類似于貝葉斯壓縮感知[10]層級先驗模型中,通過給信號添加雙重稀疏先驗來鼓勵信號稀疏,類似地,也給x添加稀疏先驗:
這里N(x|μ,σ2)是均值為μ,方差為σ2的高斯概率密度分布函數,μ=0,σ2=αi-1。 Γ(ai|a,b)=Γ(a)-1baαia-1exp(-bαi)代表參數a=b=10-4的伽馬函數。為了更直觀和清晰地看出上述這些參數和變量之間的關系,我們用層級先驗模型圖2 來表示。

圖2 層級先驗模型圖
在變分貝葉斯推斷模型[11]中,隨機變量用X=(H,V)表示,其中V表示可觀測到的數據,對應上述模型,很容易看出V={t},H 表示隱藏變量,在本問題中,H={x,α}。理想情況下,我們希望可以從這個模型中精確推理出每個潛在變量的后驗邊緣分布。變分推斷的目標是找到一個復雜度低的變分分布q(H) ,它非常接近真實的后驗分布p(H|V)。
以下等式是對觀測數據的對數邊際概率的分解,它適用于任何概率分布:
這里的KL(q||p|表示真實的后驗概率p(H|t)和近似后驗概率q(H)之間的Kullback-Leibler 散度(KL 散度),由于KL(q||p|≥0,L(q)在lnp(t)上有下界,因此最大化L(q)就是最小化KL(q||p|。如果我們允許q(H)足夠靈活,那么當KL 散度為零時,下界的最大值就會出現。在這種情況下,變分后驗分布等于真后驗,即L(q)=lnp(t)。然而,使用真實的后驗分布在計算上是困難的。因此,我們必須考慮一個q分布,它具有下界,可以有效地求值和優化的性質,而且可以很好地近似于真正的后驗分布。
我們希望選擇一個比模型結構簡單的變分分布q(H),使L(q)下界更容易計算。簡化依賴結構的一種方法是選擇一種變量之間是獨立的變分分布,我們將q(H)寫成因子形式:
將式(10)代入式(9)中,可以得出:
從上式分離出因子qj中的所有項,得到:
這里的C為常數,表示跟q相關的均值或期望。當式(12)中的KL 散度為零,也就是qj=時,這個界對qj來說是最大的。因此,我們可以通過設置qj=替換當前分布,變分優化通過初始化后驗分布qj,然后循環遍歷,更新每個因子,直到收斂。
基于上述分析,由于變量q(x)和q(α)是相互獨立的。隱藏變量H={x,α} 的后驗分布可以寫成:
根據貝葉斯概率q(α)=p(x|α)p(α) 和變分推斷公式(13),α的后驗分布q(α)可以表示成:
這里表示與q(x)相關的均值。結合上面層級模型中x的高斯先驗公式(6)和α的伽馬先驗公式(6),可以得到:
最終可以求出x關于q(x)的后驗均值μα為
同樣的,利用式(5)和式(13),q(x)也可以表示成:
最終,我們可以得到q(x)的均值μ和方差Σ:
為了清楚描述整個重構算法,結合提出的1 比特動態閾值方案,梳理的基于1 比特動態閾值的壓縮感知重構算法簡化流程如下:
1)初始化:k=1,信號x=0,閾值τ0=0;
2)根據采樣得到的觀測值tk,通過式(21)、(22);得到信號估計值μx;
3)根據信號估計值更新閾值τ,τk=[τk-1;τk] ;
4)根據式(17)、(21)更新后驗估計均值μα,μx;
5)更新信號估計值x?,判斷是否收斂,如果收斂,流程結束,否則回到2)。
上述內容對基于變分推斷的1 比特動態閾值壓縮感知方案進行了介紹。為了驗證本文算法的正確性,測試信號重構性能,下面從不同維度對算法進行仿真,將上述重構方案應用于隨機信號中。實驗中我們設置信號長度N=50,稀疏度K=5,測量值數目M=100,圖3 為本文提出的1 比特動態閾值算法恢復信號的實驗,可以證明動態閾值算法重構信號的有效性。

圖3 零閾值和動態閾值信號重構
首先對本文提出的算法重構性能的影響因素進行分析。圖4 研究了閾值分量大小對誤差的影響,在這個實驗中,設置N=100,M=200,K=5。在動態閾值框架中,觀測值分為兩大部分,在第一部分的觀測中預設閾值前100 個元素為零,得到關于信號的初步估計,剩下的100 個元素分成k份,隨觀測次數依次自適應產生。假設每份的閾值分量大小為B(block),在恢復相同信號的情況下,觀察閾值分量B 對誤差的影響,發現閾值分量B 越大,誤差越大。說明當閾值分量變大時,每次獲得的觀測數量變多,對后續觀測值的影響變小,削弱了動態閾值的效果。

圖4 閾值分塊長度與重構誤差的關系
此外,為了更進一步的研究算法在不同影響元素下的表現,將本文提出的動態閾值重構算法和經典的二分迭代硬閾值算法(Binary Iterative Hard Thresholding,BIHT)和迭代加權算法[15](Iterative Reweighted Algorithm,IRA)進行比較。設置N=100,在稀疏度K=3、K=5、K=10 三種情況下,讓測量值M的數量從50增加到400,不同測量值對應的誤差取100 次實驗的平均值,研究稀疏度K和測量數量對三種算法重構誤差的影響。實驗結果如圖5所示,隨著信號稀疏度增大,三種算法的重構誤差也隨之增大,經典BIHT 算法相對兩外兩種算法重構誤差較大,說明信號越不稀疏,重構難度越大。

圖5 不同稀疏度下測量值數量和誤差的關系
在圖5 前兩個子圖中,本文提出的算法相對穩定,隨著測量值數目的增加,與IRA 算法的重構水平幾乎一致。這表示在1 比特重構算法雖然以丟失測量值的幅度值,但增加觀測樣本數,依然可以獲得較好的重構效果。圖5 中第三張子圖表明,當稀疏度增大為K=20 時,本文提出的算法重構效果要優于IRA 算法。圖6 研究了閾值分量block 和測量數量對三種算法重構誤差的影響,綜合來看,這四種情況下,本文提出的算法具有更佳的重構性能。

圖6 不同閾值分量下三種算法的重構性能比較
本文提出了一種基于變分貝葉斯推斷方法的1 比特動態閾值壓縮感知重構方案。這一方案利用信號的一些潛在結構特性,設計一種動態閾值重構模型,從一定程度上提高了編碼端信息的利用率。另外,由于貝葉斯推斷方法可以保證在給定信號分布的情況下獲得最優性能,并且不需要預先知道信號的稀疏性。我們在變分貝葉斯推斷模型中引入動態閾值,迭代更新閾值和信號估計值。最后通過實驗驗證該算法具有較好的重構性能。