稀疏信號的一個最重要的部分就是字典A。那么選擇A?怎么樣選擇才是合理?
一、字典的選擇和學習
如何選擇合適的字典,一種基本的方法是選擇預定義的字典,如無抽樣小波、可操縱小波、輪廓博、曲波,等等。近期很多學者提出來主要針對圖像的字典,特別是類似於“卡通”的圖像內容,假設分段平滑並具有平滑邊界。
這些提出的字典附有詳細的理論分析,能夠對簡單信號建立稀疏表示系數。一個典型的應用時M項近似衰減率——用M個最佳的非零系數表示信號。
另一種選擇字典的方法是可調節的——通過在特定參數(連續或者離散的)控制下生成基或幀。兩個最熟知的例子就是小波包和Bandelets.
盡管預定義和自適應的字典通常具有較快的變換速度,他們無法處理稀疏信號,並且,這些字典限制於特定類型的圖像和信號,無法應用於新的,任意類型的信號。因此我們需要尋找克服這些限制的新方法——通過一種學習的觀點。
基於學習的方法首先需要構建一個訓練信號集,然后構建一個經驗學習字典,即通過經驗數據中生成潛在的原子,而不通過理論模型。這樣的字典可以實際應用,作為固定或冗余字典。
與預定義和自適應的字典不同,學習字典能夠適用於符合稀疏場定義的任何類型的信號。然而,這將帶來更重的計算負擔,且只能應用於低維信號(至少目前為止是這樣的)這是為什么這種方法只能應用於圖像塊。
二、字典學習算法
2.MOD算法
顯然,沒有一種通用的算法可以求解(12.1)和(12.2),和我們無法求解(P0)的原因類似。然而,沒有理由我們不去尋找一個啟發式算法,並研究它在特殊情況下的執行表現。
我們可以將(12.1)看成一種嵌套最小化策略:在第k步,我們利用第k-1步得到字典A(k-1),對數據庫中的M個實例yi求解對應的:這可以得到矩陣
,然后我們通過最小二乘法求解
:
這里我們使用了Frobenius范數來評價誤差(矩陣的F范數為矩陣中所有元素的平方和的平方根)。允許對獲得的字典的元素進行縮放。遞增k並重復上述循環,直到滿足收斂准則。這樣的塊坐標松弛算法首先由Engan提出,稱為最優方向法(Method of Optimal Direction,MOD),這個算法描述如圖12.1
以下是本人對MOD算法的理解
1,匹配追蹤算法
在分析該算法前,先介紹下匹配追蹤算法
匹配追蹤最早是時頻分析的分析工具,目的是要將一已知訊號拆解成由許多被稱作為原子訊號的加權總和,而且企圖找到與原來訊號最接近的解。其中原子訊號為一極大的原子庫中的元素。以數學式子表示可以得到:
其中,是權重,
是由字典D中獲得的原子訊號。
如同傅立葉級數將一訊號拆解成一系列的正弦波的相加,其中每個成分擁有不同的系數作為權重,其數學式子如下:
而匹配追蹤也具有將訊號拆解成一系列原子相加的意涵,而甚至可以使用匹配追蹤去描述傅立葉級數,也就是原子庫對應到的所有正弦函數的集合
2.貪婪算法
為了找到最符合原訊號的一組原子加權總合,如果對原子庫進行所有組合的嘗試過於耗費時間。在1993年由Mallat S和Zhang Z的論文[1]中,提出了一個貪婪算法(Greedy Algorithm),並大幅降低找出近似解的時間。其作法首先在原子庫中尋找與原訊號內積結果最大的原子,找到此訊號以及其內積結果之后再將原訊號減掉
作為下一次重復運算的原始訊號,如此反復做下去即可得到一系列的
以及原子,直到達到停止條件為止.
假設Y=D*X,Y為初始信號,大小為M*P,X是我們隨機生成一個N*P大小的矩陣,那么初始字典就可以求得了
其詳細的算法如下:
-
輸入: Signal:
, dictionary
.
-
輸出: List of coefficients:
.
- 初始化:
-
;
-
;
- 重復:
-
find
with maximum inner product
;
-
;
-
;
-
;
-
直到達到停止條件,例如:
)
-
此時的
是稀疏表示的
3.字典更新
到此獲得最終的字典