王蓮子 莊曉東 李鐘曉 陳倩倩
摘要:? 針對傳統(tǒng)K奇異值分解(K-singular value decomposition,K-SVD)算法在訓練中存在運行時間過長的問題,本文將主成分分析(principal component analysis,PCA)與K-SVD算法相結合,提出一種基于PCA的快速字典學習算法。該方法對原信號進行PCA降維,獲取其主要成分,并對主成分信息進行字典學習,同時利用主成分字典作正交變換獲取原信號字典。為驗證本方法的有效性,采用快速字典學習算法對語音信號進行處理。研究結果表明,與傳統(tǒng)K-SVD算法相比,基于PCA的快速字典學習算法在運行上時間減少了近1/2。新算法通過消除訓練樣本的冗余信息,使樣本結構更加緊湊,極大程度降低了學習復雜度,在保證稀疏表示可靠性的同時,提升了字典學習效率,具有較好的應用前景。
關鍵詞:? PCA; 快速字典學習; 稀疏表示; K-SVD
中圖分類號: TN912.3? 文獻標識碼: A
2006年,D.L.Donoho等人[1] 提出的壓縮感知為信號處理技術帶來了革命性突破。以遠低于奈奎斯特頻率對信號進行采樣,不僅簡潔而有效的表示信號,還降低實際應用中龐大數(shù)據(jù)量所帶來的壓力,在理論數(shù)學、信號處理、圖像與視頻處理等方面得到廣泛應用[2 4] 。壓縮感知的前提及基礎是信號必須具有稀疏性,因此,構造合適的字典,從而實現(xiàn)信號的最優(yōu)稀疏表示是壓縮感知中較為關鍵的一個階段。根據(jù)構造方式,字典可分為固定字典和訓練字典。固定字典實現(xiàn)簡單,但原子形態(tài)單一,應用范圍較為局限。K.Engan等人[5] 提出最優(yōu)方向(method of optimal directions,MOD)算法,是一種經典字典學習算法,因在訓練字典中大量使用最小二乘,使字典學習消耗較長時間;M.Aharon等人[6] 提出了K奇異值分解(K-singular value decomposition,K-SVD)算法,與MOD算法相比,其計算復雜度有所降低,因此K-SVD算法逐漸成為研究熱點,但訓練時間過長仍是K-SVD算法存在的主要問題。雖然許多學者對K-SVD算法進行了改進[7 9] ,但大多數(shù)改進僅對K-SVD中的稀疏表示以及字典更新階段的改進,卻忽略了由訓練目標本身所帶來計算量過大的問題,隨著待處理數(shù)據(jù)增多,訓練復雜度逐漸增加,通過減少字典學習的訓練量,可有效提升訓練速度。字典學習的本質是信號特征的針對性訓練,要在保留信號主要特性的同時減少訓練目標量,往往涉及一些數(shù)據(jù)降維技術。余付平等人[10 12] 的研究結果表明,PCA與字典學習及稀疏表示有效結合,在誤差重構方面具有明顯效果,但上述研究并沒有解決字典學習中計算復雜度較高的問題?;诖?,本研究將PCA與K-SVD字典學習算法相結合,提出了一種基于PCA的快速字典學習算法,從根本上解決了字典學習中訓練量過大的問題。實驗結果表明,與傳統(tǒng)字典學習算法相比,該方法在字典學習中具有較高運算效率。該研究具有廣闊的應用前景。
1 字典學習與PCA
1.1 稀疏表示與字典學習
大多數(shù)信號本身不具備稀疏特性,只有在字典下才能稀疏表示,信號 y ∈ R (n×m) 的稀疏表示模型[13 15] 為
y = DC? (1)
其中, D =[ d1 d2 … ds ], D ∈ R (n×s) 是一組具有S個原子的字典,每個原子的矢量長度為n; C ∈ R (s×m) 是信號 y 在字典 D 上展開的系數(shù)。常用的稀疏求解方法有正交匹配追蹤(orthogonal matching pursuit,OMP)算法和匹配追蹤(matching pursuit,MP)算法等,為獲取較快的收斂速度,本研究選擇OMP算法作為稀疏求解方法[16] 。
K-SVD是一種經典的字典學習算法,K-SVD將數(shù)據(jù)矩陣 y 分解為具有符合數(shù)據(jù)特性的字典 D 以及稀疏系數(shù)矩陣 C ,其分解過程[17 19] 為
argmin? D , C ‖ y - DC ‖2F (2)
K-SVD是一種迭代算法,字典學習過程主要分為兩部分,一是固定當前字典,利用稀疏求解算法獲取稀疏系數(shù);二是利用稀疏系數(shù)來更新下一次迭代字典。當達到誤差要求,或者一定迭代次數(shù)時,輸出字典即所需學習字典。
1.2 PCA技術
PCA是一種重要的數(shù)據(jù)降維方法,利用正交變換將原始向量組轉變成一組線性不相關向量,變換后向量組保留了原始數(shù)據(jù)的主要成分,有效消除原始信號冗余信息,在更小維度下展示數(shù)據(jù)特性。PCA算法的主要步驟[20 22] 如下:
1) 首先對信號 y (n×m) ={y1,y2…ym}進行中心化,得到中心化矩陣? 。
2) 對? 的協(xié)方差矩陣進行特征值分解。
3) 取前t個最大特征值對應的特征向量,并將其標準化后組成特征矩陣 W ={W1,W2…Wt}。
4) 得到后數(shù)據(jù) y′ = W T? ,其中 y′ ∈ R (t×m) 。
2 基于PCA的快速字典學習算法
在字典學習中,信號常以一組線性相關向量組形式處理,待處理信號一般具有冗余性。在利用K-SVD算法構造字典中,稀疏表示階段的最優(yōu)解問題以及字典更新階段的奇異值分解,都具有較高計算量,隨著訓練樣本不斷增加,計算復雜度也逐漸增大。對訓練樣本中冗余成分進行學習,不僅降低訓練效率,也增加一定資源浪費。因此,消除冗余信息的字典學習,可以有效提升字典學習效率。字典學習是針對原始信號特征進行訓練,而通過PCA提取到原始信號的特征能較好滿足字典學習的特征需要,對具有冗余性的信號進行降維,在保證不丟失原始信號重要特性情況下,消除了冗余信息。針對上述問題,本文將PCA與K-SVD字典學習算法相結合,提出了一種基于PCA的快速字典學習算法,通過消除訓練樣本冗余信息,解決字典學習過程中訓練集計算量大的問題,極大提高了字典學習效率。基于PCA的快速字典學習算法首先對原信號進行主成分分析,獲得矢量長度較小,代表重要信息的主成分矩陣,將主成分矩陣作為訓練樣本,得到主成分字典,利用正交變換求得原始信號學習字典。
原始信號矩陣為 y (n×m) ,利用PCA技術,設置最佳主成分閾值λ,獲得主成分矩陣 y′ ∈ R (t×m) ,通過對主成分矩陣進行字典學習,得到主成分字典 Dt 以及稀疏系數(shù) Ct ,由文獻[22]得
y′ = W T? ?(3)
經過對式(1)進行分析,主成分矩陣 y′ 可進行稀疏表示,現(xiàn)將式(4)與式(1)結合,得
y′ = W T? = DtCt? (4)
式中, W T∈ R (t×n) 是? 協(xié)方差矩陣的特征矩陣。為獲取能表征原始信號特性的字典,現(xiàn)處理為
( W T)T( W T)? =( W T)T DtCt? (5)
由于 W T為單位正交矩陣,( W T)T( W T)為近似單位矩陣,則式(6)近似表示為
=( W T)T DtCt = DC t (6)
因為 y′ 代表 y? 主要特征; Dt 為 y′ 的學習字典,一定程度上也具有原信號結構特性。因此,將 Ct 作為原始信號臨時稀疏系數(shù),則( W T)T Dt 表示為原始矩陣 y (n×m) 經過快速字典學習算法得到的訓練字典 D ,并將 D 進一步與OMP算法相結合,取代臨時稀疏系數(shù) Ct ,得到原信號在字典 D 上的稀疏系數(shù) C 。
研究結果表明,稀疏系數(shù) C 有著較強的稀疏性,字典 D 有著較小的RMSE以及極快的運行速度?;赑CA的快速字典學習算法主要步驟如下:
輸入:原始信號 y (n×m) 。
1) 對原信號 y (n×m) 進行PCA處理,獲取主成分矩陣 y′ ∈ R (t×m) 。
2) 對主成分矩陣利用K-SVD進行字典學習,獲取主成分字 Dt ,主成分稀疏系數(shù) Ct 。
3) 固定主成分稀疏系數(shù) Ct ,對 Dt 作正交變換,得原始信號字典 D =( W T)T Dt 。
4) 利用OMP算法,得原始信號稀疏系數(shù) C 。
輸出:字典 D ,稀疏系數(shù) C 。
3 語音信號快速字典學習仿真實驗
基于PCA的快速字典學習算法首先對原始信號進行降維,選取合適主成分閾值,保留信號主要信息,減少計算維度,得到主成分矩陣。再利用K-SVD字典學習算法以及OMP稀疏表示算法對主成分信息進行字典學習,獲主成分字典,對主成分字典正交變換,得到符合原始信號特性的訓練字典。為驗證本方法的有效性,現(xiàn)利用快速字典學習算法對語音信號進行稀疏處理。字典稀疏表示能力的強弱以及表示誤差的大小反應了字典學習能力,為了更加客觀分析字典的性能,本研究將稀疏性、均方根誤差(root mean square error,RMSE)和運行時間作為客觀評價標準,現(xiàn)將稀疏性進行定量處理,稀疏性度量K的計算模型為
K= 1 m ∑ m i=1 ‖ Ci ‖1F?(7)
式中, C ∈ R (s×m) 代表稀疏系數(shù)矩陣; Ci 表示第i列系數(shù);‖ Ci ‖1F表示對第i列系數(shù)求解1范數(shù)。
3.1 獲取主成分矩陣
本研究運行環(huán)境為windows7,運行軟件為matalba2014b,采用的樣本數(shù)據(jù)及測試數(shù)據(jù)是在安靜環(huán)境下錄制,語音信號采樣頻率為16 kHz,因語音具有短時平穩(wěn)性,現(xiàn)對語音進行分幀處理,幀長128 ms,幀移32 ms。將語音數(shù)據(jù) y ∈ R (n×m) 進行PCA降維,選擇主成分閾值λ,得到主成分矩陣 y′ (t×m) (t 由表1可以看出,隨著主成分閾值λ增大,主成分矩陣矢量長度也逐漸增大。降維后,矩陣的矢量長度最少可為原始信號矢量長度的1/7,且至少包含原始信號97%以上的信息。由此可見,主成分矩陣以較小矢量長度占據(jù)了原始信號的主要信息。快速字典學習算法再以主成分矩陣為訓練目標,學習主成分字典,而在字典訓練過程中,主成分矩陣的矢量長度越大,字典訓練效率越低。因此,選擇合適主成分閾值,可以使主成分矩陣在能保證信號主要結構特征的同時,極大提升字典學習效率。 3.2 最佳主成分閾值選取 將主成分矩陣 y′ 作為字典學習訓練樣本,獲其主成分字典,對主成分字典按式(6)正交變換,一定程度上保證了字典稀疏表示能力,得到與原始信號特性相符的學習字典。實驗對多個音素進行測試,比較λ在(97,99.5)范圍內,快速字典學習算法的運行時間、RMSE及稀疏性度量K。語音信號在不同λ下,運行時間隨主成分閾值的變化曲線如圖1所示,均方根誤差隨主成分閾值的變化曲線如圖2所示,稀疏性度量隨主成分閾值的變化曲線如圖3所示。由圖1~圖3可以看出,主成分閾值λ越大,主成分矩陣包含的主要信息 越多,即越接近原始信號;同時,主成分矩陣的矢量長度也隨之增大,參與訓練樣本維數(shù)增加,導致主成分矩陣在字典學習中的存儲空間與計算量增加,運行時間也隨之增加;當提取到的主成分矩陣逐漸接近原始信號時, 由快速字典學習算法訓練得到字典的RMSE逐漸減小;在稀疏性方面,主成分閾值λ的增大,展開系數(shù)的稀疏性度量K保持在一個相對穩(wěn)定的數(shù)值,受閾值變化影響較小,稀疏展開效果較為穩(wěn)定。因此選擇合適的主成分閾值,可以使主成分矩陣在既包含主要信息的同時,又具有較小的矢量長度,在保證一定的RMSE及稀疏性的同時,又具有較快運行速度,使新方法具有更加明顯的效果。 為使快速字典學習算法在多方面具有較好處理效果,現(xiàn)對語音音素[a],[h],[i]在主成分閾值λ為97%,97.5%,98%,98.5%,99%和99.5%條件下的RMSE、運行時間和稀疏性三個性能進行綜合分析。針對不同信號,采用主成分分析法作為多個性能綜合評價的分析方法,獲取在不同主成分閾值下快速字典學習方法性能的綜合得分,選擇具有最高綜合得分的閾值,并以此閾值λ作為此信號在快速字典學習算法中的最佳主成分閾值。 3.3 仿真結果分析 根據(jù)3.2選出最佳主成分閾值,采用基于PCA的快速字典學習算法對語音信號進行稀疏處理, 從RMSE、運行時間和稀疏性K多個方面與K-SVD算法進行分析比較,將發(fā)音信號[a],[h],[i]在基于PCA的快速字典學習算法與K-SVD算法下的性能進行對比,語音音素在兩種算法下的學習性能對比如表2所示。 由表2可以看出,與K-SVD算法相比,基于PCA的快速字典學習算法在運行時間上減少了近1/2,這是因為利用快速字典學習算法處理信號時,參與字典學習的主成分矩陣以更小矢量長度代表原始信號主要信息,則訓練樣本結構特性更加緊湊,一定程度上減少了冗余信息的字典訓練,使字典學習的稀疏表示階段及原子更新階段的計算復雜度得到大幅度減少,避免了訓練樣本在字典學習中由維數(shù)過多而引發(fā)運行時間過長的問題,使字典學習計算速度得到極大提升。利用PCA獲取的主成分矩陣,在至少包含97%原始信息情況下,作為訓練樣本學習主成分字典,通過正交變換構造有穩(wěn)定稀疏展開的原始信號字典,且其RMSE與K-SVD算法相比,均保持在同一數(shù)量等級,在保證字典稀疏表示可靠性的同時,極大提升了字典學習效率。 4 結束語 針對傳統(tǒng)字典學習算法中運算時間過長的問題,提出了一種基于PCA的快速字典學習算法。選擇最佳主要成分閾值,利用PCA對原信號進行處理,對主成分矩陣進行訓練,對主成分字典進行字典變換處理,得到與原始信號結構相適應的學習字典。 與K-SVD算法的定性和定量實驗表明,基于PCA的快速字典學習算法極大降低了計算復雜度,在保留原始信號重要特性情況下,消除冗余信息的字典學習,提高字典運行速度。 參考文獻: [1] Donoho D L. Compressed sensing [J]. IEEE Transactions on Information Theory, 2006, 52(4): 1289 1306. [2] 金卯亨嘉. 壓縮感知中字典學習算法的研究及應用[D]. 天津: 天津大學, 2014. [3] 尹宏鵬, 劉兆棟, 柴毅, 等. 壓縮感知綜述[J]. 控制與決策, 2013, 28(10): 1441 1445, 1453. [4] 石光明, 劉丹華, 高大化, 等. 壓縮感知理論及其研究進展[J]. 電子學報, 2009, 37(5): 1070 1081. [5] Engan K, Aase S O, Husoy J H. Method of optimal directions for frame design[C]∥IEEE International Conference on Acoustics. IEEE, 1999, 5: 2443 2446. [6] Aharon M, Elad M, Bruckstein A M.The K-SVD: an algorithm for designing of over complete dictionaries for sparse representation [J]. IEEE Transactions on Signal Processing, 2006, 54(11): 4311 4322. [7] Rubinstein R, Zibulevsky M, Elad M. Efficient implement-tation of the K-SVD algorithm using batch orthogonalmatching pursuit[J]. CS Technion, 2008, 40(8): 1 15. [8] Smith L N, Elad M. Improving dictionary learning: Multiple dictionary updates and coefficient reuse[J]. IEEE Signal Processing Letters, 2013, 20(1): 79 82. [9] 袁超, 李海洋. 基于TL1范數(shù)的改進 K-SVD 字典學習算法[J]. 計算機與數(shù)學工程, 2017, 45(12): 2327 2331, 2363. [10] 余付平, 馮有前, 范成禮, 等. 基于主成分分析的字典學習[J]. 控制與決策, 2013, 28(7): 1109 1112. [11] 首照宇, 吳廣祥, 張彤. 基于PCA子字典學習的圖像超分辨率重建[J]. 計算機工程與設計, 2015, 36(11): 3025 3029. [12] 霍雷剛, 馮象初. 基于主成分分析和字典學習的高光譜遙感圖像去噪方法[J]. 電子與信息學報, 2014, 36(11): 2723 2729. [13] 劉振, 姜暉, 王粒賓. 基于稀疏表示的SAR圖像目標識別方法[J]. 計算機工程與應用, 2014, 50(10): 212 215, 232. [14] 王凡, 王屹, 劉洋. 利用結構化和一致性約束的稀疏表示模型進行紅外和可見光圖像融合 [J]. 信號處理, 2020, 36(4): 572 583. [15] 鄭思龍, 李元祥, 魏憲, 等. 基于字典學習的非線性降維方法[J]. 自動化學報, 2016, 42(7): 1065 1076. [16] 莫長鑫, 畢寧. OMP算法對稀疏信號準確重構的一個充分條件[J]. 復旦學報: 自然科學版, 2019, 58(1): 19 24. [17] 鮑光照. 基于稀疏表示與聯(lián)合字典學習的語音增強算法研究[D]. 合肥: 中國科學技術大學, 2015. [18] 郭欣. 基于K-SVD稀疏表示的語音增強算法[D]. 太原: 太原理工大學, 2016. [19] Zhou Y, Zhao H, Shang L, et al. Immune K-SVD algorithm for dictionary learning in speech denoising[J]. Neurocomputing, 2014, 137(15): 223 233. [20] 趙鑫, 汪維家, 曾雅云, 等. 改進的模塊PCA人臉識別新算法[J]. 計算機工程與應用, 2015, 51(2): 161 164, 175. [21] 董恩增, 魏魁祥, 于曉, 等. 一種融入PCA 的LBP特征降維車型識別算法[J]. 計算機工程與科學, 2017, 39(2): 359 363. [22] 董航. 基于PCA字典和兩階段優(yōu)化的非凸壓縮感知重構[D]. 西安: 西安電子科技大學, 2013. A Fast Dictionary Learning Algorithm Based on PCA WANG Lianzi, ZHUANG Xiaodong, LI Zhongxiao, CHEN Qianqian (College of Electronic Information, Qingdao University, Qingdao 266071, China) Abstract:? A fast dictionary learning algorithm based on PCA is proposed to solve the problem that the K-SVD algorithm runs too long in dictionary training. In this method, PCA is used to reduce the dimension of speech signal to obtain its main components and the dictionary of original signal is acquired by taking orthogonal transformation in the components dictionary which is learned by main components. In order to verify the effectiveness of this method, a fast dictionary learning algorithm is used to process speech signals. The results show that, compared with K-SVD algorithm, the fast dictionary learning algorithm reduces the running time by nearly half. By eliminating redundant information of training samples, the sample structure is more compact and the learning complexity is greatly reduced. The new method not only guarantees the reliability of sparse representation but also improves the efficiency of dictionary learning, and has a strong application prospect. Key words: PCA; fast dictionary learning; sparse representation; K-SVD