謝雪晴
(重慶工業職業技術學院 信息工程學院,重慶 401120)
壓縮感知(CS)是在信號具有稀疏表示的情況下解決線性逆問題的過程,CS框架通過測量矩陣、重構算法和稀疏表示3個方面實現信號的壓縮與重構[1-3],目前CS在這3個方面已經取得相當大的進展。
對于測量矩陣:測量矩陣的一個重要性質是必須滿足有限等距性質(RIP)[4,5]。常見的隨機測量矩陣其元素是獨立同分布高斯或伯努利隨機變量的隨機矩陣[6,7],主要缺點是沒有根據所采集的信號來優化設計;自適應方法[8]測量中每個測量是從以前的測量得到信息設計,降低了不確定性,主要缺點是時間復雜度高;確定性測量矩陣的每個測量值是固定的[9,10],可以進行構造,主要缺點是重構質量較隨機測量矩陣低。對于重構算法:常見的重構算法分為貪婪算法(重構精度低)、凸優化算法(計算復雜度高)和其它算法等[11-13]。對于信號稀疏表示,常用的稀疏基為小波基或DCT基[14,15],主要缺點是它們是人為構造的,因此限制捕獲信號的不同元素之間的復雜依賴性。
本文通過對深度學習和CS理論的研究,針對傳統CS算法中線性測量與重構算法的計算復雜度高及重構精度低的問題,提出了一種深度學習SDA的壓縮感知框架來測量適應原始信號,用前饋深度神經網絡代替傳統重構算法,不需要解決線性程序來重構原始信號。該方法能夠有效測量適應原始信號,提高重構精度,減少重構時間,達到較好的重構效果。
CS過程即存在一個N×N維的稀疏基矩陣Ψ=[Ψ1,Ψ2,…,Ψn],使得x=Ψs,x∈RN,其中s只有K個非零值,且K?N。因此,CS主要關注從一組欠采樣線性測量值中恢復K稀疏信號x的問題,M個測量值通過y=Φx=ΦΨs獲取,其中y∈RM是測量向量,Φ∈RM×N為測量矩陣,滿足RIP條件
(1)

(2)
這個線性規劃可以基于凸優化方法或迭代貪婪算法來求解,這些算法都需要解決優化問題,所以重構計算復雜度較高,本文SDA的壓縮感知信號重構方法不需要解決任何優化問題,只使用前饋神經網絡從測量中重構圖像,使得重構時間大大縮短。
本文方法分為兩種情況:①線性測量SDA的CS信號重構方法;②非線性測量SDA的CS信號重構方法。
在線性測量范式中,測量向量y表示為y=Φx,每個yi(1≤i≤M)是xjs(1≤j≤N)的線性組合。考慮到典型的監督學習框架,其中訓練集Dtrain由l個原始信號和相應的測量結果組成的對,Dtrain={(y(1),x(1)),(y(2),x(2)),…,(y(l),x(l))}。基于這個訓練集,學習從測量向量y到其原始信號x的非線性映射。然后測試經過訓練的深層架構在測試集Dtest中的性能,其組成是由原始信號和它們相應的測量組成的對,Dtest={(y(1),x(1)),(y(2),x(2)),…,(y(s),x(s))}。
用于稀疏重構的SDA結構每一層具有N維(原始信號的維度)的輸入和M維(測量向量的維度)的輸出,反之亦然。我們使用3層SDA,其中每個層對輸入的映射變換應用非線性,接收測量向量作為其輸入的第一隱藏層被表示為
xh1=T(W1y+b1)
(3)
其中,W1∈RN×M和b1∈RN分別是第一層的權值矩陣和偏置向量。T(·)是非線性的輸入映射函數,使用sigmoid函數作為非線性函數,則T(z)=1/1+e-z。給定權重矩陣W1和偏差向量b1,根據式(3)計算xh1,計算復雜度為O(MN),這與CS貪婪重構算法的一次迭代算法復雜度相同,為了保持每層的計算復雜度,第二個隱藏層和輸出層被表示為
(4)

(5)
我們使用反向傳播算法來最小化式(5)中定義的損失函數,圖1給出了通過原始信號的線性測量饋送的SDA結構,這相當于一個3層神經網絡,用原始信號的線性測量值進行饋送,并重構原始信號。

圖1 基于SDA的CS線性測量信號重構
非線性測量范例的SDA的結構與第2.1節中的結構幾乎相同,不同之處在于從原始信號到其測量向量的映射作為SDA的一個層。這個額外的層將使SDA適應其訓練集Dtrain的結構。因此,如果有足夠的數據,則能夠使得測量矩陣很好地適應正在實驗的信號類別,這個額外的層表示為SDA的第一層,表達式如式(6)所示
y=F(W1x+b1)
(6)

(7)
圖2給出了了非線性測量范式的SDA結構,這相當于有一個4層神經網絡從原始信號進行非線性和自適應測量。用于進行測量的非線性函數為了適應反向傳播框架,不同于其它層中使用的非線性函數,它是分析性的。

圖2 基于SDA的CS非線性測量信號重構
對于圖像壓縮與重構的評價指標,本文采用峰值信噪比(PSNR)作為實驗評價指標,實驗圖像的灰度級數為256級,計算方法如式(8)所示
(8)
其中,MSE即為2.1節與2.2節中式(5)和式(7)中的損失函數。
本次實驗使用來自imagenet圖像數據集中的圖像來訓練和測試網絡。提取每幅圖像的中心256×256部分,將其轉換成灰度圖像并將其分割成32×32的子圖像進行實驗。SDA壓縮感知重構結構中,使用0均值和標準差為0.2的高斯噪聲來破壞SDA每一層輸入,并讓該層將其破壞的輸入進行重構作為預訓練階段,之后,使用反向傳播算法來調整權重和偏差,實驗中使用Theano包實現深度神經網絡。
在本節中,將對本文提出的線性SDA和非線性測量SDA的CS信號重構性能進行驗證,并與其它CS重構算法進行性能比對,其它重構算法包括:平滑投影landweber(SPL)算法、基于降噪的近似消息傳遞(D-AMP)算法和全變分(TV)算法。
表1中是對圖3中圖像的圖像重構結果比對結果,壓縮采樣比M/N=0.25。

表1 不同重構算法的圖像重構效果

圖3 訓練的部分樣本圖像
從表1中數據可以得到,本文所提線性SDA和非線性SDA壓縮感知重構方法與SLP、D-AMP和TV算法相比,本文提出的SDA結構算法具有更好的性能。另外由于圖3(a)中Damselfly的重構PSNR較高,是因為具有較多非常平滑和規則的結構,能夠使得重構效果更好,圖3(e)中Dog重構PSNR較高低,是因為具有較多不規則的結構和紋理,使得重構效果差。
重構效果以Lena圖像作為測試圖像進行實驗。圖4給出壓縮采樣比M/N=0.1的條件下,不同CS重構算法對Lena圖的重構。

圖4 不同算法對Lena圖的重構
從圖4可以看出來本文所提的線性和非線性SDA的壓縮感知圖像重構效果較好,表2給出了不同壓縮采樣比條件下,不同CS重構算法對Lena圖的重構時間性能。由于本文方法不需要解決任何優化問題,只使用前饋神經網絡從測量中重構圖像,因此重構時間大大縮短。

表2 不同壓縮采樣比下不同算法的運行時間/s
從表2中可以看到本文所提方法重構時間僅為0.002 s,且不受壓縮采樣比的影響,在時間性能方面大大優于其它3種重構算法。
本文針對壓縮感知現有重構算法的不足之處,提出了一個CS框架即深度學習SDA框架來測量與重構信號,該方法能夠從訓練數據中學習結構化表示,捕獲特定信號的不同元素之間的統計依賴性,支持線性和非線性測量,且本文方法不需要解決任何優化問題,只使用前饋神經網絡從測量中重構圖像,因此重構精度提高且重構時間縮短。將本方法實驗結果與壓縮感知SPL算法、D-AMP算法和TV算法進行比較,驗證了本文方法是可行與有效的。