程云飛,葉婭蘭*,侯孟書,何文文,李云霞
(1. 電子科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 成都 611731;2. 電子科技大學(xué)自動(dòng)化工程學(xué)院 成都 611731)
近年來,人們對于自身健康越來越關(guān)注,基于可穿戴設(shè)備的遠(yuǎn)程健康監(jiān)測得到了快速發(fā)展[1]。由于可穿戴設(shè)備對于功耗有著嚴(yán)格的要求,傳統(tǒng)的奈奎斯特采樣方法很難滿足長期連續(xù)監(jiān)測對于低功耗的需求,而壓縮感知 (compressed sensing, CS)理論[2]很好地解決了這一問題。相較于奈奎斯特采樣方法,壓縮感知可以以較低的采樣率對信號進(jìn)行壓縮采樣,然后利用非線性的壓縮感知重構(gòu)算法從較少的采樣值中重構(gòu)出原始信號。通常,壓縮感知假定信號在時(shí)域或某些變換域中是稀疏的,并利用信號的稀疏性來精確地重構(gòu)信號。因此一些經(jīng)典的針對稀疏信號的壓縮感知重構(gòu)算法被提出,如CoSaMP[3]、SL0[4]、BM-MAP-OMP[5]等。但是,有許多信號無論在時(shí)域還是在其他變換域中都是非稀疏的,如可穿戴遠(yuǎn)程健康監(jiān)測系統(tǒng)中采集的生理信號[6]。因此,大多數(shù)壓縮感知重構(gòu)算法都不能很好地處理非稀疏生理信號。
為了解決非稀疏生理信號的壓縮感知重構(gòu)問題,文獻(xiàn)[7]提出了一種塊稀疏貝葉斯學(xué)習(xí)(block sparse bayesian learning, BSBL)框架以從壓縮數(shù)據(jù)中恢復(fù)非稀疏信號,并基于邊界最優(yōu)化方法(bound optimization, BO)提出了BSBL-BO 算法,該算法可以以較高的精度直接從時(shí)域?qū)Ψ窍∈枭硇盘栠M(jìn)行重構(gòu)。然而該算法的時(shí)間復(fù)雜度較高,收斂速度慢,很難滿足可穿戴遠(yuǎn)程健康監(jiān)測系統(tǒng)對于實(shí)時(shí)性的要求。而文獻(xiàn)[8]在BSBL 框架的基礎(chǔ)上提出了BSBL-FM 算法,該算法雖然一定程度上提高了BSBL 算法的速度,但是其對于非稀疏信號的重構(gòu)精度卻無法保證。為了在不降低信號重構(gòu)精度的前提下提高BSBL 算法的收斂速度,文獻(xiàn)[9]基于交替向量乘子法(alternating direction method of multipliers,ADMM)對BSBL 算法的的迭代過程進(jìn)行優(yōu)化,提出了BSBL-ADMM 算法,在不降低重構(gòu)精度的前提下大幅提高了BSBL 重構(gòu)算法的收斂速度。盡管如此,所有傳統(tǒng)壓縮感知重構(gòu)算法都是迭代式算法,這意味著這些算法必須經(jīng)過多次迭代,直到收斂才能完成信號的重構(gòu)。但在很多情況下,需要在一些計(jì)算能力受限的設(shè)備上(例如智能手機(jī))進(jìn)行實(shí)時(shí)數(shù)據(jù)處理,迭代式算法很難實(shí)時(shí)處理這些設(shè)備上接收到的壓縮數(shù)據(jù)。
為了降低信號重構(gòu)過程中的計(jì)算復(fù)雜度,文獻(xiàn)[10]將深度學(xué)習(xí)中基于全連接層的堆疊去噪自編碼器應(yīng)用于生理信號的壓縮感知重構(gòu)。但隨著信號長度的增加,網(wǎng)絡(luò)參數(shù)的數(shù)量將急劇增加。這給模型的訓(xùn)練帶來了很大的困難,并且還可能導(dǎo)致過度擬合。因此,這些基于全連接網(wǎng)絡(luò)的方法通常在實(shí)驗(yàn)中會(huì)將生理信號劃分為非常短的時(shí)間窗口 (遠(yuǎn)小于1 s),而時(shí)間窗口太小可能會(huì)破壞信號結(jié)構(gòu)的完整性并對后續(xù)的疾病診斷帶來不利影響。
因此,本文基于深度學(xué)習(xí)中的一維擴(kuò)張卷積[11]和殘差網(wǎng)絡(luò)[12]提出了一種面向可穿戴設(shè)備的生理信號壓縮感知實(shí)時(shí)重構(gòu)算法,擴(kuò)張卷積可以大大減少模型參數(shù)數(shù)量,而殘差網(wǎng)絡(luò)則可以緩解模型訓(xùn)練期間的梯度衰減現(xiàn)象,從而提高網(wǎng)絡(luò)模型的的性能。實(shí)驗(yàn)結(jié)果表明,在保證生理信號重構(gòu)精度的前提下,本文所提方法的重構(gòu)速度比傳統(tǒng)的迭代式壓縮感知重構(gòu)算法快2~3 個(gè)數(shù)量級,從而更容易滿足實(shí)際的可穿戴健康監(jiān)護(hù)系統(tǒng)對于實(shí)時(shí)性的需求。
壓縮感知是對信號邊采樣邊壓縮的一個(gè)過程,根據(jù)壓縮感知的基本原理,其實(shí)際的采樣過程是分時(shí)間窗對模擬信號進(jìn)行隨機(jī)的非等間隔采樣,而這種隨機(jī)非等間隔采樣從數(shù)學(xué)的角度可以表示為預(yù)先生成的隨機(jī)矩陣乘以一段高采樣率的數(shù)字信號,即原始信號。因此壓縮感知的采樣過程可以表示為:
在深度學(xué)習(xí)中,可以將壓縮后的生理信號s與原始生理信號 α之間的關(guān)系看做是一個(gè)以s為輸入,α為輸出的非線性函數(shù),根據(jù)通用近似定理[13],深度神經(jīng)網(wǎng)絡(luò)可以通過學(xué)習(xí)在緊支撐集上逼近任意連續(xù)函數(shù),這使得利用深度學(xué)習(xí)方法來實(shí)現(xiàn)壓縮感知重構(gòu)成為可能。
本文基于一維擴(kuò)張卷積和殘差網(wǎng)絡(luò)設(shè)計(jì)了一個(gè)如圖1 所示的面向可穿戴設(shè)備的壓縮感知實(shí)時(shí)重構(gòu)模型,簡稱為CS-DRN(compressed sensing-dilated residual network)。
圖1 本文提出的CS-DRN 模型整體結(jié)構(gòu)
其中,所有卷積層均采用如類似圖2 所示的一維擴(kuò)展卷積。擴(kuò)張卷積是傳統(tǒng)卷積層的擴(kuò)展,其為卷積層引入擴(kuò)張率,擴(kuò)張率定義了一個(gè)卷積核中的元素之間的間隔,擴(kuò)張卷積通過在原始卷積核中插入間隔來擴(kuò)大卷積核的感受野,同時(shí)確保卷積核中的參數(shù)數(shù)量不變。
圖2 本文所采用的一維擴(kuò)張卷積
另外,為了解決一維生理信號的重構(gòu)問題,提出了如圖3 所示的3 層殘差塊單元。在殘差網(wǎng)絡(luò)中不僅將輸入依次傳遞到下一層,并且還將輸入疊加到到下一層的輸出中。與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)相比,殘差網(wǎng)絡(luò)通過恒等快捷連接將數(shù)據(jù)流直接傳遞到后面的層,從而可以減輕由于多次堆疊的非線性變換而引起的梯度衰減。因此,殘差網(wǎng)絡(luò)可以構(gòu)建更深的網(wǎng)絡(luò)模型,并且訓(xùn)練也將更快。
圖3 本文提出的殘差塊單元
本文提出的殘差塊單元包含3 個(gè)一維的擴(kuò)張卷積層,在該殘差塊單元中,為了保證輸入和輸出可以直接相加,輸入和輸出的維度和尺寸必須保持一致,因此這里輸入和輸出均為16 個(gè)通道的特征圖。殘差塊單元中3 個(gè)一維卷積層中的卷積核格式分別為32、64、16,對應(yīng)的卷積核大小分別為7×1、5×1、3×1,并且所有卷積核的擴(kuò)張率都設(shè)為2。為了保持特征圖的尺寸保持不變,在每一層卷積中都根據(jù)當(dāng)前卷積核的大小和擴(kuò)張率設(shè)置合適的填充(Padding)值。在每一個(gè)卷積層后面都使用帶泄露修正線性單元(Leaky ReLU)函數(shù)作為激活函數(shù)。
在模型訓(xùn)練時(shí),本文用Adam 優(yōu)化器[14]對網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,學(xué)習(xí)率為0.001,訓(xùn)練過程中的批大小為128。模型基于python3.7.3 和pytorch 1.4.0深度學(xué)習(xí)框架進(jìn)行實(shí)現(xiàn)。模型訓(xùn)練使用的計(jì)算機(jī)配備了英特爾i5-3 470 CPU、8 GB 內(nèi)存和具有6 GB顯存的英偉達(dá)GTX1060 顯卡。
實(shí)驗(yàn)采用了兩個(gè)公開的生理信號數(shù)據(jù)集,分別是OSET (open-source electrophysiological toolbox)[15]中的“signal01”數(shù)據(jù)集和mitdb (MIT-BIH arrhythmia database)[16]數(shù)據(jù)集。OSET 數(shù)據(jù)包括8 個(gè)采樣率為1 000 Hz 的胎兒心電信號記錄,而mitdb 數(shù)據(jù)集中則包含48 個(gè)長度為30 min 的兩通道心電信號記錄,采樣率為360 Hz。兩個(gè)數(shù)據(jù)集都被下采樣到250 Hz,這也是在心電監(jiān)測系統(tǒng)中最常用的采樣率[17]。此外,從壓縮感知原理來看,信號的采樣與壓縮應(yīng)該是同時(shí)進(jìn)行的。但是從算法研究的角度,需要原始的數(shù)字信號作為參照來評價(jià)算法的性能,因此基于壓縮感知的數(shù)學(xué)模型,可以利用奈奎斯特采樣的數(shù)字信號作為原始信號,通過數(shù)字方法對原始信號進(jìn)行壓縮,而不是直接從模擬信號進(jìn)行壓縮采樣。
PRD 越低代表著重構(gòu)精度越高。
2) 為了評價(jià)信號重構(gòu)算法的速度,本文將每個(gè)信號幀的重構(gòu)時(shí)間作為反映算法速度的性能指標(biāo)。為了便于比較幾種算法的速度,除了深度網(wǎng)絡(luò)模型訓(xùn)練時(shí)使用顯卡計(jì)算外,生理信號的重構(gòu)過程均只使用CPU 進(jìn)行。
由于壓縮感知是對信號進(jìn)行分段采集,因此本文的實(shí)驗(yàn)中,生理信號被分割為時(shí)間長度為2 s 的信號幀,在生理信號被分割后,隨機(jī)選取其中80%作為訓(xùn)練集,剩余20%作為測試集。重構(gòu)算法的對比都在測試集上進(jìn)行。
由于生理信號被下采樣到250 Hz,因此2 s 信號幀的長度為N=500。為了獲得長度為M的壓縮信號,需要先構(gòu)建一個(gè)測量矩陣,本文使用稀疏二值矩陣[18]作為測量矩陣。在構(gòu)造稀疏二值矩陣時(shí),首先構(gòu)造一個(gè)全零的矩陣,無論矩陣的行數(shù)是多少,在每一行中隨機(jī)選擇12 個(gè)元素,將其值置為1,從而生成稀疏二值矩陣。壓縮率(compression ratio, CR)定義為:
為了驗(yàn)證基于深度學(xué)習(xí)的非迭代方法在重構(gòu)速度上的優(yōu)勢,本文將提出的CS-DRN 算法與BSBLADMM 算法、BSBL-FM 算法和BSBL-BO 算法的實(shí)驗(yàn)結(jié)果進(jìn)行對比。此外,還對比了普通卷積神經(jīng)網(wǎng)絡(luò) (CNN) 和堆疊去噪自編碼器 (SDAE) 對生理信號重構(gòu)的結(jié)果,從而證明本文提出的模型結(jié)構(gòu)的有效性。對比實(shí)驗(yàn)中CS-CNN 模型采用了與CS-DRN基本相同的卷積層,但是未采用殘差塊結(jié)構(gòu),而SADE 的結(jié)構(gòu)則參考文獻(xiàn)[10]中提出的網(wǎng)絡(luò)模型結(jié)構(gòu)。由于可穿戴遠(yuǎn)程健康監(jiān)測系統(tǒng)中采集的生理信號往往是非稀疏的[6],因此在本文的所有實(shí)驗(yàn)中都是直接在時(shí)域?qū)ι硇盘栠M(jìn)行重構(gòu)。以上算法中,迭代式壓縮感知重構(gòu)算法均基于Matlab 平臺進(jìn)行實(shí)現(xiàn),而基于深度學(xué)習(xí)方法壓縮感知重構(gòu)算法都是利用python 語言和pytorch 框架實(shí)現(xiàn)。
表1 展示的是在OSET 數(shù)據(jù)集的測試集上重構(gòu)誤差的實(shí)驗(yàn)結(jié)果,從表中可以看出,BSBL-FM 算法的重構(gòu)誤差非常大,基本上無法對生理信號進(jìn)行有效地重構(gòu)。而BSBL-BO 算法的重構(gòu)精度在大部分壓縮率下都略優(yōu)于BSBL-ADMM 算法,但在80%的壓縮率下,BSBL-ADMM 算法的重構(gòu)精度則略優(yōu)于BSBL-BO 算法,而在90%的壓縮率下,BSBL-BO算法的重構(gòu)精度急劇降低,遠(yuǎn)差于BSBL-ADMM算法。相比之下,本文提出的CS-DRN 算法的重構(gòu)精度在各種壓縮率下均優(yōu)于BSBL-ADMM 算法和BSBL-BO 算法。而對比CS-CNN 和SDAE 算法,CS-DRN 在各種壓縮率下均優(yōu)于這兩種方法,這說明本文提出的深度網(wǎng)絡(luò)模型結(jié)構(gòu)相對更優(yōu)。
表2 展示了6 種算法在不同壓縮率下的平均重構(gòu)時(shí)間,從表中可以看出,在同一壓縮率下,BSBLADMM 算法的平均重構(gòu)時(shí)間大約只有BSBL-BO算法的1/4 左右,而BSBL-FM 算法的平均重構(gòu)時(shí)間介于前兩者之間,并且這3 種算法的平均重構(gòu)時(shí)間隨著壓縮率的增大而逐漸減小。而相比于這3 種迭代式壓縮感知重構(gòu)算法,另外3 種基于深度學(xué)習(xí)的非迭代壓縮感知重構(gòu)算法的平均重構(gòu)時(shí)間要小2~3 個(gè)數(shù)量級,這是因?yàn)榛谏疃葘W(xué)習(xí)的方法在模型訓(xùn)練好以后,重構(gòu)信號時(shí)只需要進(jìn)行若干次矩陣向量乘法就可以完成對生理信號的重構(gòu)。在這3 種非迭代壓縮感知重構(gòu)算法中,SDAE 算法的平均重構(gòu)時(shí)間是隨著壓縮率的增大而逐漸減小,這是因?yàn)镾DAE 算法的模型結(jié)構(gòu)是基于全連接網(wǎng)絡(luò)的,模型參數(shù)數(shù)量會(huì)隨著輸入信號長度的增加而呈指數(shù)級增加。而本文提出的CS-DRN 算法以及CS-CNN算法的平均重構(gòu)時(shí)間并不會(huì)隨壓縮率的變化而產(chǎn)生較大差異,這是由于卷積層基于參數(shù)共享機(jī)制,通過卷積核的平移來提取特征,卷積核的參數(shù)數(shù)量并不會(huì)因?yàn)檩斎腴L度的不同而發(fā)生變化。因此當(dāng)劃分信號幀的長度大幅增加時(shí),CS-DRN 算法和CSCNN 算法的平均重構(gòu)時(shí)間不會(huì)急劇增加。另外,從表2 中看到,對于一個(gè)2 s 的信號幀,對比的幾種算法在各種壓縮率下的重構(gòu)時(shí)間基本都在1 s 以內(nèi),似乎都滿足了實(shí)時(shí)性需求。然而具體的算法重構(gòu)時(shí)間是依賴于計(jì)算機(jī)硬件性能的。對于計(jì)算性能充足的高性能計(jì)算機(jī)來說,這些算法的實(shí)時(shí)性都沒有問題,但是針對可穿戴健康生理信號監(jiān)測場景來說,信號重構(gòu)的過程很有可能需要在計(jì)算能力受限的便攜式設(shè)備 (如智能手機(jī)) 上進(jìn)行,此時(shí)迭代式壓縮感知算法就很難滿足實(shí)時(shí)性需求。因此需要盡量降低重構(gòu)算法的復(fù)雜度,減少重構(gòu)所需時(shí)間。
表2 OSET 數(shù)據(jù)集上6 種算法在不同壓縮率下的平均重構(gòu)時(shí)間 ms
為了更好地驗(yàn)證本文提出的CS-DRN 算法的性能,除了OSET 數(shù)據(jù)集以外,本文還在mitdb 數(shù)據(jù)集上進(jìn)行了生理信號重構(gòu)的實(shí)驗(yàn)。圖4 展示了在mitdb 數(shù)據(jù)集上6 種壓縮感知重構(gòu)算法在不同壓縮率下重構(gòu)誤差的對比情況。由圖中可以看出,各種算法的重構(gòu)誤差都隨著壓縮率的增加而增大,其中BSBL-FM 算法的重構(gòu)誤差在各種壓縮率下均遠(yuǎn)大于其他幾種算法。除了BSBL-BO 算法在高壓縮率下重構(gòu)誤差急劇增加外,其他幾種算法的重構(gòu)誤差都比較接近。本文提出的CS-DRN 算法在不同壓縮率下的重構(gòu)精度都要優(yōu)于另外幾種算法。這與在OSET 數(shù)據(jù)集上的得到的結(jié)論一致。
圖4 6 種算法在不同壓縮率下的PRD
圖5 6 種算法在不同壓縮率下的重構(gòu)成功率
圖6 6 種算法在不同壓縮率下的平均重構(gòu)時(shí)間
此外,本文定義了一個(gè)閾值 ε=5%,當(dāng)一個(gè)信號幀的PRD 低于或等于這個(gè)閾值時(shí),則認(rèn)為該信號幀重構(gòu)成功。本文將測試集中所有信號幀統(tǒng)計(jì)重構(gòu)成功率作為算法重構(gòu)性能的一個(gè)評價(jià)指標(biāo),重構(gòu)成功率越高則代表算法的重構(gòu)性能越好。圖5 給出了6 種算法在mitdb 數(shù)據(jù)集上重構(gòu)成功率的對比,從圖中可以看到,除BSBL-FM 算法在各種壓縮率下均無法有效重構(gòu)生理信號外,其他幾種算法的重構(gòu)成功率均隨壓縮率的增大而減小,而本文提出的CS-DRN 算法則在各種壓縮率下的重構(gòu)成功率都優(yōu)于另外幾種算法,這說明CS-DRN 算法的重構(gòu)性能在這幾種算法中是最優(yōu)的。
圖6 給出了在mitdb 數(shù)據(jù)集上6 種算法的平均重構(gòu)時(shí)間,為了便于展示,圖中縱坐標(biāo)軸的刻度以對數(shù)表示。從圖中可以看到,BSBL-ADMM、BSBLFM 和BSBL-BO 這3 種算法的平均重構(gòu)時(shí)間要比其他3 種非迭代式壓縮感知重構(gòu)算法大2~3 個(gè)數(shù)量級。在3 種基于深度學(xué)習(xí)的非迭代壓縮感知重構(gòu)算法中,SDAE 算法的平均重構(gòu)時(shí)間是隨著壓縮率的增大而減小的,而本文提出的CS-DRN 算法以及CS-CNN 算法的平均重構(gòu)時(shí)間則不會(huì)隨壓縮率的變化產(chǎn)生較大的差異。這也與OSET 數(shù)據(jù)集上得到的結(jié)論一致。
綜上所述,本文實(shí)驗(yàn)分別在OSET 數(shù)據(jù)集和mitdb 數(shù)據(jù)集上進(jìn)行了壓縮感知重構(gòu)實(shí)驗(yàn),并與另外兩種基于深度學(xué)習(xí)的非迭代壓縮感知重構(gòu)算法和兩種迭代式壓縮感知重構(gòu)算法在重構(gòu)精度和重構(gòu)速度上進(jìn)行了比較。實(shí)驗(yàn)結(jié)果表明,對于生理信號的壓縮感知重構(gòu)問題,本文提出的CS-DRN 算法所需的平均重構(gòu)時(shí)間要比BSBL-ADMM、BSBL-FM和BSBL-BO 這3 種迭代式的壓縮感知重構(gòu)算法小2~3 個(gè)數(shù)量級,并且CS-DRN 算法的重構(gòu)精度在各種壓縮率下均優(yōu)于其他幾種壓縮感知重構(gòu)算法。
本文提出了一種基于深度學(xué)習(xí)的非迭代方法來進(jìn)行生理信號的壓縮感知重構(gòu)。相比于傳統(tǒng)的迭代式壓縮感知重構(gòu)算法,本文所提出的方法在生理信號重構(gòu)階段無需進(jìn)行迭代,在有著更高重構(gòu)精度的前提下,其重構(gòu)速度要比傳統(tǒng)的迭代式壓縮感知重構(gòu)算法快2~3 個(gè)數(shù)量級,更容易滿足實(shí)時(shí)性需求。因此,本方法在可穿戴遠(yuǎn)程健康監(jiān)測系統(tǒng)中具有良好的應(yīng)用前景。