王良君 陸安琪
(江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院 鎮(zhèn)江 212013)
壓縮感知(Compressive Sensing,CS)[1]是信號(hào)處理領(lǐng)域近十幾年來興起的理論,被應(yīng)用到各個(gè)領(lǐng)域[2~3]。假設(shè)有一個(gè)信號(hào)長度為n的原始信號(hào),用一個(gè)隨機(jī)觀測(cè)矩陣A?Rm×n將信號(hào)投影到一個(gè)低維空間,得到長度為m的測(cè)量值y?Rm,CS 的信號(hào)采集模型可以用數(shù)學(xué)公式(1)表示:
通常經(jīng)典的CS 假設(shè)測(cè)量具有無限的精度。然而在實(shí)踐中,每個(gè)測(cè)量值都會(huì)從一個(gè)真實(shí)值(可能是無限范圍)映射到一個(gè)有限范圍內(nèi)的離散值。不可避免誤差產(chǎn)生。很多研究提出了從量化測(cè)量中具體重建稀疏信號(hào)的技術(shù),其中一種極端的方案是1 比特量化,即只保留測(cè)量值的符號(hào)值。1 比特壓縮感知(1-bit CS)是由P.T.Boufounos 和R.G.Baraniuk 在2008 年提出的理論[4]。該理論的數(shù)學(xué)模型表示為
其中sign 是一個(gè)符號(hào)函數(shù),將測(cè)量值向量中元素逐個(gè)跟零比較,大于0 記作1,反之記作-1,最后得到的測(cè)量值是一個(gè)布爾型向量Bm:={-1,1}m。1-bit CS 的目標(biāo)是從1 比特觀測(cè)值t和測(cè)量矩陣A中恢復(fù)稀疏向量x。
最近對(duì)該理論的研究成為壓縮感知領(lǐng)域的熱門,出現(xiàn)了大量關(guān)于1-bit CS 的重構(gòu)算法。例如重歸一化固定點(diǎn)迭代[4](Renormalized Fixed Point Iterative,RFPI)及其改進(jìn)算法[5],二分迭代硬閾值[6](Binary Iterative Hard Thresholding,BIHT),這基礎(chǔ)上做出改進(jìn)的BIHT-l2在噪聲情況下有更好重構(gòu)表現(xiàn),自適應(yīng)離群值追蹤[7](Adaptive Outlier Pursuit,AOP)可以自適應(yīng)檢測(cè)符號(hào)翻轉(zhuǎn)。然而,這些算法需要預(yù)先了解原始信號(hào)的稀疏性,并且上述工作都默認(rèn)閾值為零,由于采樣數(shù)據(jù)之間的強(qiáng)相關(guān)性,帶來的新信息量較少。文獻(xiàn)[8]借鑒可變步長增量調(diào)制的思想,提出了一種自適應(yīng)量化的1 比特壓縮感知,該算法的步長設(shè)置跟上一步的測(cè)量結(jié)果相關(guān),相鄰測(cè)量值之間相互依賴,但無法保證其正確性,一旦發(fā)生錯(cuò)誤,將導(dǎo)致整個(gè)系統(tǒng)崩潰。文獻(xiàn)[9]用廣義近似消息傳遞(GAMP)設(shè)計(jì)自適應(yīng)量化方案,其中1 比特測(cè)量值被用作反饋來適應(yīng)下一個(gè)閾值,但是該算法的計(jì)算復(fù)雜度較高,運(yùn)行效率較低。本文研究無噪情況下的1-bit CS 信號(hào)重構(gòu)問題,受到GAMP算法[9]啟發(fā),建立1比特動(dòng)態(tài)閾值框架,然后在貝葉斯概率模型中引入動(dòng)態(tài)閾值,并給出變分推斷方法的推導(dǎo)過程。經(jīng)過實(shí)驗(yàn)和分析,該方案可以有效恢復(fù)原始信號(hào),并且與其他算法比較,可以獲得更穩(wěn)定的重構(gòu)性能。
動(dòng)態(tài)閾值框架的實(shí)際模型分為兩個(gè)部分:編碼端和解碼端。其框架圖如圖1。
長度為m的閾值向量τ被分成兩個(gè)部分。閾值向量的前minit個(gè)元素初始化時(shí)被預(yù)先設(shè)置,剩下的m-minit個(gè)元素分成k份,隨觀測(cè)次數(shù)依次自適應(yīng)產(chǎn)生。預(yù)先給定初始閾值τ0=0,在解碼端輸出信號(hào)的初步估計(jì)值x?0。假設(shè)每份的閾值分量大小為B(block)。在接下來的步驟中,對(duì)于第k個(gè)閾值分量τk=Ak x?k-1,Ak?,x?k-1是之前所有的觀測(cè)值tk-1和閾值τk-1=[τk-2;τk-1]產(chǎn)生的估計(jì)值。以此循環(huán),直到所有的觀測(cè)值全部用完。
動(dòng)態(tài)閾值框架主要的步驟描述如下:
1)初始設(shè)置:初始閾值向量τ0=0,生成信號(hào)估計(jì)值x?0;
2)計(jì)算y?k-1=Ak x?k-1,τk=y?k-1,更新τk=[τk-1;τk],tk=sign(yk-τk);
3)基于觀測(cè)值tk和閾值τk,獲得新的信號(hào)估計(jì)值x?k;
4)回到第2)步直到觀測(cè)結(jié)束。
假設(shè)測(cè)量矩陣A中每個(gè)元素都是由標(biāo)準(zhǔn)高斯分布隨機(jī)生成的并且觀測(cè)值t模型的推理。根據(jù)式(2),ti的取值只有兩種,可以用伯努利概率分布表示量化觀測(cè)值t與原始測(cè)量值y以及閾值τ的關(guān)系:
這里的h=y-τ,g( ? )=(1+e-?)-1是邏輯函數(shù),與符號(hào)函數(shù)相比是可微分的,利于后續(xù)推導(dǎo)。類似于貝葉斯壓縮感知[10]層級(jí)先驗(yàn)?zāi)P椭校ㄟ^給信號(hào)添加雙重稀疏先驗(yàn)來鼓勵(lì)信號(hào)稀疏,類似地,也給x添加稀疏先驗(yàn):
這里N(x|μ,σ2)是均值為μ,方差為σ2的高斯概率密度分布函數(shù),μ=0,σ2=αi-1。 Γ(ai|a,b)=Γ(a)-1baαia-1exp(-bαi)代表參數(shù)a=b=10-4的伽馬函數(shù)。為了更直觀和清晰地看出上述這些參數(shù)和變量之間的關(guān)系,我們用層級(jí)先驗(yàn)?zāi)P蛨D2 來表示。
圖2 層級(jí)先驗(yàn)?zāi)P蛨D
在變分貝葉斯推斷模型[11]中,隨機(jī)變量用X=(H,V)表示,其中V表示可觀測(cè)到的數(shù)據(jù),對(duì)應(yīng)上述模型,很容易看出V={t},H 表示隱藏變量,在本問題中,H={x,α}。理想情況下,我們希望可以從這個(gè)模型中精確推理出每個(gè)潛在變量的后驗(yàn)邊緣分布。變分推斷的目標(biāo)是找到一個(gè)復(fù)雜度低的變分分布q(H) ,它非常接近真實(shí)的后驗(yàn)分布p(H|V)。
以下等式是對(duì)觀測(cè)數(shù)據(jù)的對(duì)數(shù)邊際概率的分解,它適用于任何概率分布:
這里的KL(q||p|表示真實(shí)的后驗(yàn)概率p(H|t)和近似后驗(yàn)概率q(H)之間的Kullback-Leibler 散度(KL 散度),由于KL(q||p|≥0,L(q)在lnp(t)上有下界,因此最大化L(q)就是最小化KL(q||p|。如果我們?cè)试Sq(H)足夠靈活,那么當(dāng)KL 散度為零時(shí),下界的最大值就會(huì)出現(xiàn)。在這種情況下,變分后驗(yàn)分布等于真后驗(yàn),即L(q)=lnp(t)。然而,使用真實(shí)的后驗(yàn)分布在計(jì)算上是困難的。因此,我們必須考慮一個(gè)q分布,它具有下界,可以有效地求值和優(yōu)化的性質(zhì),而且可以很好地近似于真正的后驗(yàn)分布。
我們希望選擇一個(gè)比模型結(jié)構(gòu)簡單的變分分布q(H),使L(q)下界更容易計(jì)算。簡化依賴結(jié)構(gòu)的一種方法是選擇一種變量之間是獨(dú)立的變分分布,我們將q(H)寫成因子形式:
將式(10)代入式(9)中,可以得出:
從上式分離出因子qj中的所有項(xiàng),得到:
這里的C為常數(shù),表示跟q相關(guān)的均值或期望。當(dāng)式(12)中的KL 散度為零,也就是qj=時(shí),這個(gè)界對(duì)qj來說是最大的。因此,我們可以通過設(shè)置qj=替換當(dāng)前分布,變分優(yōu)化通過初始化后驗(yàn)分布qj,然后循環(huán)遍歷,更新每個(gè)因子,直到收斂。
基于上述分析,由于變量q(x)和q(α)是相互獨(dú)立的。隱藏變量H={x,α} 的后驗(yàn)分布可以寫成:
根據(jù)貝葉斯概率q(α)=p(x|α)p(α) 和變分推斷公式(13),α的后驗(yàn)分布q(α)可以表示成:
這里表示與q(x)相關(guān)的均值。結(jié)合上面層級(jí)模型中x的高斯先驗(yàn)公式(6)和α的伽馬先驗(yàn)公式(6),可以得到:
最終可以求出x關(guān)于q(x)的后驗(yàn)均值μα為
同樣的,利用式(5)和式(13),q(x)也可以表示成:
最終,我們可以得到q(x)的均值μ和方差Σ:
為了清楚描述整個(gè)重構(gòu)算法,結(jié)合提出的1 比特動(dòng)態(tài)閾值方案,梳理的基于1 比特動(dòng)態(tài)閾值的壓縮感知重構(gòu)算法簡化流程如下:
1)初始化:k=1,信號(hào)x=0,閾值τ0=0;
2)根據(jù)采樣得到的觀測(cè)值tk,通過式(21)、(22);得到信號(hào)估計(jì)值μx;
3)根據(jù)信號(hào)估計(jì)值更新閾值τ,τk=[τk-1;τk] ;
4)根據(jù)式(17)、(21)更新后驗(yàn)估計(jì)均值μα,μx;
5)更新信號(hào)估計(jì)值x?,判斷是否收斂,如果收斂,流程結(jié)束,否則回到2)。
上述內(nèi)容對(duì)基于變分推斷的1 比特動(dòng)態(tài)閾值壓縮感知方案進(jìn)行了介紹。為了驗(yàn)證本文算法的正確性,測(cè)試信號(hào)重構(gòu)性能,下面從不同維度對(duì)算法進(jìn)行仿真,將上述重構(gòu)方案應(yīng)用于隨機(jī)信號(hào)中。實(shí)驗(yàn)中我們?cè)O(shè)置信號(hào)長度N=50,稀疏度K=5,測(cè)量值數(shù)目M=100,圖3 為本文提出的1 比特動(dòng)態(tài)閾值算法恢復(fù)信號(hào)的實(shí)驗(yàn),可以證明動(dòng)態(tài)閾值算法重構(gòu)信號(hào)的有效性。
圖3 零閾值和動(dòng)態(tài)閾值信號(hào)重構(gòu)
首先對(duì)本文提出的算法重構(gòu)性能的影響因素進(jìn)行分析。圖4 研究了閾值分量大小對(duì)誤差的影響,在這個(gè)實(shí)驗(yàn)中,設(shè)置N=100,M=200,K=5。在動(dòng)態(tài)閾值框架中,觀測(cè)值分為兩大部分,在第一部分的觀測(cè)中預(yù)設(shè)閾值前100 個(gè)元素為零,得到關(guān)于信號(hào)的初步估計(jì),剩下的100 個(gè)元素分成k份,隨觀測(cè)次數(shù)依次自適應(yīng)產(chǎn)生。假設(shè)每份的閾值分量大小為B(block),在恢復(fù)相同信號(hào)的情況下,觀察閾值分量B 對(duì)誤差的影響,發(fā)現(xiàn)閾值分量B 越大,誤差越大。說明當(dāng)閾值分量變大時(shí),每次獲得的觀測(cè)數(shù)量變多,對(duì)后續(xù)觀測(cè)值的影響變小,削弱了動(dòng)態(tài)閾值的效果。
圖4 閾值分塊長度與重構(gòu)誤差的關(guān)系
此外,為了更進(jìn)一步的研究算法在不同影響元素下的表現(xiàn),將本文提出的動(dòng)態(tài)閾值重構(gòu)算法和經(jīng)典的二分迭代硬閾值算法(Binary Iterative Hard Thresholding,BIHT)和迭代加權(quán)算法[15](Iterative Reweighted Algorithm,IRA)進(jìn)行比較。設(shè)置N=100,在稀疏度K=3、K=5、K=10 三種情況下,讓測(cè)量值M的數(shù)量從50增加到400,不同測(cè)量值對(duì)應(yīng)的誤差取100 次實(shí)驗(yàn)的平均值,研究稀疏度K和測(cè)量數(shù)量對(duì)三種算法重構(gòu)誤差的影響。實(shí)驗(yàn)結(jié)果如圖5所示,隨著信號(hào)稀疏度增大,三種算法的重構(gòu)誤差也隨之增大,經(jīng)典BIHT 算法相對(duì)兩外兩種算法重構(gòu)誤差較大,說明信號(hào)越不稀疏,重構(gòu)難度越大。
圖5 不同稀疏度下測(cè)量值數(shù)量和誤差的關(guān)系
在圖5 前兩個(gè)子圖中,本文提出的算法相對(duì)穩(wěn)定,隨著測(cè)量值數(shù)目的增加,與IRA 算法的重構(gòu)水平幾乎一致。這表示在1 比特重構(gòu)算法雖然以丟失測(cè)量值的幅度值,但增加觀測(cè)樣本數(shù),依然可以獲得較好的重構(gòu)效果。圖5 中第三張子圖表明,當(dāng)稀疏度增大為K=20 時(shí),本文提出的算法重構(gòu)效果要優(yōu)于IRA 算法。圖6 研究了閾值分量block 和測(cè)量數(shù)量對(duì)三種算法重構(gòu)誤差的影響,綜合來看,這四種情況下,本文提出的算法具有更佳的重構(gòu)性能。
圖6 不同閾值分量下三種算法的重構(gòu)性能比較
本文提出了一種基于變分貝葉斯推斷方法的1 比特動(dòng)態(tài)閾值壓縮感知重構(gòu)方案。這一方案利用信號(hào)的一些潛在結(jié)構(gòu)特性,設(shè)計(jì)一種動(dòng)態(tài)閾值重構(gòu)模型,從一定程度上提高了編碼端信息的利用率。另外,由于貝葉斯推斷方法可以保證在給定信號(hào)分布的情況下獲得最優(yōu)性能,并且不需要預(yù)先知道信號(hào)的稀疏性。我們?cè)谧兎重惾~斯推斷模型中引入動(dòng)態(tài)閾值,迭代更新閾值和信號(hào)估計(jì)值。最后通過實(shí)驗(yàn)驗(yàn)證該算法具有較好的重構(gòu)性能。