程云飛,葉婭蘭*,侯孟書,何文文,李云霞
(1. 電子科技大學計算機科學與工程學院 成都 611731;2. 電子科技大學自動化工程學院 成都 611731)
近年來,人們對于自身健康越來越關注,基于可穿戴設備的遠程健康監(jiān)測得到了快速發(fā)展[1]。由于可穿戴設備對于功耗有著嚴格的要求,傳統(tǒng)的奈奎斯特采樣方法很難滿足長期連續(xù)監(jiān)測對于低功耗的需求,而壓縮感知 (compressed sensing, CS)理論[2]很好地解決了這一問題。相較于奈奎斯特采樣方法,壓縮感知可以以較低的采樣率對信號進行壓縮采樣,然后利用非線性的壓縮感知重構算法從較少的采樣值中重構出原始信號。通常,壓縮感知假定信號在時域或某些變換域中是稀疏的,并利用信號的稀疏性來精確地重構信號。因此一些經(jīng)典的針對稀疏信號的壓縮感知重構算法被提出,如CoSaMP[3]、SL0[4]、BM-MAP-OMP[5]等。但是,有許多信號無論在時域還是在其他變換域中都是非稀疏的,如可穿戴遠程健康監(jiān)測系統(tǒng)中采集的生理信號[6]。因此,大多數(shù)壓縮感知重構算法都不能很好地處理非稀疏生理信號。
為了解決非稀疏生理信號的壓縮感知重構問題,文獻[7]提出了一種塊稀疏貝葉斯學習(block sparse bayesian learning, BSBL)框架以從壓縮數(shù)據(jù)中恢復非稀疏信號,并基于邊界最優(yōu)化方法(bound optimization, BO)提出了BSBL-BO 算法,該算法可以以較高的精度直接從時域?qū)Ψ窍∈枭硇盘栠M行重構。然而該算法的時間復雜度較高,收斂速度慢,很難滿足可穿戴遠程健康監(jiān)測系統(tǒng)對于實時性的要求。而文獻[8]在BSBL 框架的基礎上提出了BSBL-FM 算法,該算法雖然一定程度上提高了BSBL 算法的速度,但是其對于非稀疏信號的重構精度卻無法保證。為了在不降低信號重構精度的前提下提高BSBL 算法的收斂速度,文獻[9]基于交替向量乘子法(alternating direction method of multipliers,ADMM)對BSBL 算法的的迭代過程進行優(yōu)化,提出了BSBL-ADMM 算法,在不降低重構精度的前提下大幅提高了BSBL 重構算法的收斂速度。盡管如此,所有傳統(tǒng)壓縮感知重構算法都是迭代式算法,這意味著這些算法必須經(jīng)過多次迭代,直到收斂才能完成信號的重構。但在很多情況下,需要在一些計算能力受限的設備上(例如智能手機)進行實時數(shù)據(jù)處理,迭代式算法很難實時處理這些設備上接收到的壓縮數(shù)據(jù)。
為了降低信號重構過程中的計算復雜度,文獻[10]將深度學習中基于全連接層的堆疊去噪自編碼器應用于生理信號的壓縮感知重構。但隨著信號長度的增加,網(wǎng)絡參數(shù)的數(shù)量將急劇增加。這給模型的訓練帶來了很大的困難,并且還可能導致過度擬合。因此,這些基于全連接網(wǎng)絡的方法通常在實驗中會將生理信號劃分為非常短的時間窗口 (遠小于1 s),而時間窗口太小可能會破壞信號結構的完整性并對后續(xù)的疾病診斷帶來不利影響。
因此,本文基于深度學習中的一維擴張卷積[11]和殘差網(wǎng)絡[12]提出了一種面向可穿戴設備的生理信號壓縮感知實時重構算法,擴張卷積可以大大減少模型參數(shù)數(shù)量,而殘差網(wǎng)絡則可以緩解模型訓練期間的梯度衰減現(xiàn)象,從而提高網(wǎng)絡模型的的性能。實驗結果表明,在保證生理信號重構精度的前提下,本文所提方法的重構速度比傳統(tǒng)的迭代式壓縮感知重構算法快2~3 個數(shù)量級,從而更容易滿足實際的可穿戴健康監(jiān)護系統(tǒng)對于實時性的需求。
壓縮感知是對信號邊采樣邊壓縮的一個過程,根據(jù)壓縮感知的基本原理,其實際的采樣過程是分時間窗對模擬信號進行隨機的非等間隔采樣,而這種隨機非等間隔采樣從數(shù)學的角度可以表示為預先生成的隨機矩陣乘以一段高采樣率的數(shù)字信號,即原始信號。因此壓縮感知的采樣過程可以表示為:

在深度學習中,可以將壓縮后的生理信號s與原始生理信號 α之間的關系看做是一個以s為輸入,α為輸出的非線性函數(shù),根據(jù)通用近似定理[13],深度神經(jīng)網(wǎng)絡可以通過學習在緊支撐集上逼近任意連續(xù)函數(shù),這使得利用深度學習方法來實現(xiàn)壓縮感知重構成為可能。

本文基于一維擴張卷積和殘差網(wǎng)絡設計了一個如圖1 所示的面向可穿戴設備的壓縮感知實時重構模型,簡稱為CS-DRN(compressed sensing-dilated residual network)。

圖1 本文提出的CS-DRN 模型整體結構
其中,所有卷積層均采用如類似圖2 所示的一維擴展卷積。擴張卷積是傳統(tǒng)卷積層的擴展,其為卷積層引入擴張率,擴張率定義了一個卷積核中的元素之間的間隔,擴張卷積通過在原始卷積核中插入間隔來擴大卷積核的感受野,同時確保卷積核中的參數(shù)數(shù)量不變。

圖2 本文所采用的一維擴張卷積
另外,為了解決一維生理信號的重構問題,提出了如圖3 所示的3 層殘差塊單元。在殘差網(wǎng)絡中不僅將輸入依次傳遞到下一層,并且還將輸入疊加到到下一層的輸出中。與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡相比,殘差網(wǎng)絡通過恒等快捷連接將數(shù)據(jù)流直接傳遞到后面的層,從而可以減輕由于多次堆疊的非線性變換而引起的梯度衰減。因此,殘差網(wǎng)絡可以構建更深的網(wǎng)絡模型,并且訓練也將更快。

圖3 本文提出的殘差塊單元
本文提出的殘差塊單元包含3 個一維的擴張卷積層,在該殘差塊單元中,為了保證輸入和輸出可以直接相加,輸入和輸出的維度和尺寸必須保持一致,因此這里輸入和輸出均為16 個通道的特征圖。殘差塊單元中3 個一維卷積層中的卷積核格式分別為32、64、16,對應的卷積核大小分別為7×1、5×1、3×1,并且所有卷積核的擴張率都設為2。為了保持特征圖的尺寸保持不變,在每一層卷積中都根據(jù)當前卷積核的大小和擴張率設置合適的填充(Padding)值。在每一個卷積層后面都使用帶泄露修正線性單元(Leaky ReLU)函數(shù)作為激活函數(shù)。

在模型訓練時,本文用Adam 優(yōu)化器[14]對網(wǎng)絡模型進行訓練,學習率為0.001,訓練過程中的批大小為128。模型基于python3.7.3 和pytorch 1.4.0深度學習框架進行實現(xiàn)。模型訓練使用的計算機配備了英特爾i5-3 470 CPU、8 GB 內(nèi)存和具有6 GB顯存的英偉達GTX1060 顯卡。
實驗采用了兩個公開的生理信號數(shù)據(jù)集,分別是OSET (open-source electrophysiological toolbox)[15]中的“signal01”數(shù)據(jù)集和mitdb (MIT-BIH arrhythmia database)[16]數(shù)據(jù)集。OSET 數(shù)據(jù)包括8 個采樣率為1 000 Hz 的胎兒心電信號記錄,而mitdb 數(shù)據(jù)集中則包含48 個長度為30 min 的兩通道心電信號記錄,采樣率為360 Hz。兩個數(shù)據(jù)集都被下采樣到250 Hz,這也是在心電監(jiān)測系統(tǒng)中最常用的采樣率[17]。此外,從壓縮感知原理來看,信號的采樣與壓縮應該是同時進行的。但是從算法研究的角度,需要原始的數(shù)字信號作為參照來評價算法的性能,因此基于壓縮感知的數(shù)學模型,可以利用奈奎斯特采樣的數(shù)字信號作為原始信號,通過數(shù)字方法對原始信號進行壓縮,而不是直接從模擬信號進行壓縮采樣。

PRD 越低代表著重構精度越高。
2) 為了評價信號重構算法的速度,本文將每個信號幀的重構時間作為反映算法速度的性能指標。為了便于比較幾種算法的速度,除了深度網(wǎng)絡模型訓練時使用顯卡計算外,生理信號的重構過程均只使用CPU 進行。
由于壓縮感知是對信號進行分段采集,因此本文的實驗中,生理信號被分割為時間長度為2 s 的信號幀,在生理信號被分割后,隨機選取其中80%作為訓練集,剩余20%作為測試集。重構算法的對比都在測試集上進行。
由于生理信號被下采樣到250 Hz,因此2 s 信號幀的長度為N=500。為了獲得長度為M的壓縮信號,需要先構建一個測量矩陣,本文使用稀疏二值矩陣[18]作為測量矩陣。在構造稀疏二值矩陣時,首先構造一個全零的矩陣,無論矩陣的行數(shù)是多少,在每一行中隨機選擇12 個元素,將其值置為1,從而生成稀疏二值矩陣。壓縮率(compression ratio, CR)定義為:

為了驗證基于深度學習的非迭代方法在重構速度上的優(yōu)勢,本文將提出的CS-DRN 算法與BSBLADMM 算法、BSBL-FM 算法和BSBL-BO 算法的實驗結果進行對比。此外,還對比了普通卷積神經(jīng)網(wǎng)絡 (CNN) 和堆疊去噪自編碼器 (SDAE) 對生理信號重構的結果,從而證明本文提出的模型結構的有效性。對比實驗中CS-CNN 模型采用了與CS-DRN基本相同的卷積層,但是未采用殘差塊結構,而SADE 的結構則參考文獻[10]中提出的網(wǎng)絡模型結構。由于可穿戴遠程健康監(jiān)測系統(tǒng)中采集的生理信號往往是非稀疏的[6],因此在本文的所有實驗中都是直接在時域?qū)ι硇盘栠M行重構。以上算法中,迭代式壓縮感知重構算法均基于Matlab 平臺進行實現(xiàn),而基于深度學習方法壓縮感知重構算法都是利用python 語言和pytorch 框架實現(xiàn)。
表1 展示的是在OSET 數(shù)據(jù)集的測試集上重構誤差的實驗結果,從表中可以看出,BSBL-FM 算法的重構誤差非常大,基本上無法對生理信號進行有效地重構。而BSBL-BO 算法的重構精度在大部分壓縮率下都略優(yōu)于BSBL-ADMM 算法,但在80%的壓縮率下,BSBL-ADMM 算法的重構精度則略優(yōu)于BSBL-BO 算法,而在90%的壓縮率下,BSBL-BO算法的重構精度急劇降低,遠差于BSBL-ADMM算法。相比之下,本文提出的CS-DRN 算法的重構精度在各種壓縮率下均優(yōu)于BSBL-ADMM 算法和BSBL-BO 算法。而對比CS-CNN 和SDAE 算法,CS-DRN 在各種壓縮率下均優(yōu)于這兩種方法,這說明本文提出的深度網(wǎng)絡模型結構相對更優(yōu)。
表2 展示了6 種算法在不同壓縮率下的平均重構時間,從表中可以看出,在同一壓縮率下,BSBLADMM 算法的平均重構時間大約只有BSBL-BO算法的1/4 左右,而BSBL-FM 算法的平均重構時間介于前兩者之間,并且這3 種算法的平均重構時間隨著壓縮率的增大而逐漸減小。而相比于這3 種迭代式壓縮感知重構算法,另外3 種基于深度學習的非迭代壓縮感知重構算法的平均重構時間要小2~3 個數(shù)量級,這是因為基于深度學習的方法在模型訓練好以后,重構信號時只需要進行若干次矩陣向量乘法就可以完成對生理信號的重構。在這3 種非迭代壓縮感知重構算法中,SDAE 算法的平均重構時間是隨著壓縮率的增大而逐漸減小,這是因為SDAE 算法的模型結構是基于全連接網(wǎng)絡的,模型參數(shù)數(shù)量會隨著輸入信號長度的增加而呈指數(shù)級增加。而本文提出的CS-DRN 算法以及CS-CNN算法的平均重構時間并不會隨壓縮率的變化而產(chǎn)生較大差異,這是由于卷積層基于參數(shù)共享機制,通過卷積核的平移來提取特征,卷積核的參數(shù)數(shù)量并不會因為輸入長度的不同而發(fā)生變化。因此當劃分信號幀的長度大幅增加時,CS-DRN 算法和CSCNN 算法的平均重構時間不會急劇增加。另外,從表2 中看到,對于一個2 s 的信號幀,對比的幾種算法在各種壓縮率下的重構時間基本都在1 s 以內(nèi),似乎都滿足了實時性需求。然而具體的算法重構時間是依賴于計算機硬件性能的。對于計算性能充足的高性能計算機來說,這些算法的實時性都沒有問題,但是針對可穿戴健康生理信號監(jiān)測場景來說,信號重構的過程很有可能需要在計算能力受限的便攜式設備 (如智能手機) 上進行,此時迭代式壓縮感知算法就很難滿足實時性需求。因此需要盡量降低重構算法的復雜度,減少重構所需時間。

表2 OSET 數(shù)據(jù)集上6 種算法在不同壓縮率下的平均重構時間 ms
為了更好地驗證本文提出的CS-DRN 算法的性能,除了OSET 數(shù)據(jù)集以外,本文還在mitdb 數(shù)據(jù)集上進行了生理信號重構的實驗。圖4 展示了在mitdb 數(shù)據(jù)集上6 種壓縮感知重構算法在不同壓縮率下重構誤差的對比情況。由圖中可以看出,各種算法的重構誤差都隨著壓縮率的增加而增大,其中BSBL-FM 算法的重構誤差在各種壓縮率下均遠大于其他幾種算法。除了BSBL-BO 算法在高壓縮率下重構誤差急劇增加外,其他幾種算法的重構誤差都比較接近。本文提出的CS-DRN 算法在不同壓縮率下的重構精度都要優(yōu)于另外幾種算法。這與在OSET 數(shù)據(jù)集上的得到的結論一致。

圖4 6 種算法在不同壓縮率下的PRD

圖5 6 種算法在不同壓縮率下的重構成功率

圖6 6 種算法在不同壓縮率下的平均重構時間
此外,本文定義了一個閾值 ε=5%,當一個信號幀的PRD 低于或等于這個閾值時,則認為該信號幀重構成功。本文將測試集中所有信號幀統(tǒng)計重構成功率作為算法重構性能的一個評價指標,重構成功率越高則代表算法的重構性能越好。圖5 給出了6 種算法在mitdb 數(shù)據(jù)集上重構成功率的對比,從圖中可以看到,除BSBL-FM 算法在各種壓縮率下均無法有效重構生理信號外,其他幾種算法的重構成功率均隨壓縮率的增大而減小,而本文提出的CS-DRN 算法則在各種壓縮率下的重構成功率都優(yōu)于另外幾種算法,這說明CS-DRN 算法的重構性能在這幾種算法中是最優(yōu)的。
圖6 給出了在mitdb 數(shù)據(jù)集上6 種算法的平均重構時間,為了便于展示,圖中縱坐標軸的刻度以對數(shù)表示。從圖中可以看到,BSBL-ADMM、BSBLFM 和BSBL-BO 這3 種算法的平均重構時間要比其他3 種非迭代式壓縮感知重構算法大2~3 個數(shù)量級。在3 種基于深度學習的非迭代壓縮感知重構算法中,SDAE 算法的平均重構時間是隨著壓縮率的增大而減小的,而本文提出的CS-DRN 算法以及CS-CNN 算法的平均重構時間則不會隨壓縮率的變化產(chǎn)生較大的差異。這也與OSET 數(shù)據(jù)集上得到的結論一致。
綜上所述,本文實驗分別在OSET 數(shù)據(jù)集和mitdb 數(shù)據(jù)集上進行了壓縮感知重構實驗,并與另外兩種基于深度學習的非迭代壓縮感知重構算法和兩種迭代式壓縮感知重構算法在重構精度和重構速度上進行了比較。實驗結果表明,對于生理信號的壓縮感知重構問題,本文提出的CS-DRN 算法所需的平均重構時間要比BSBL-ADMM、BSBL-FM和BSBL-BO 這3 種迭代式的壓縮感知重構算法小2~3 個數(shù)量級,并且CS-DRN 算法的重構精度在各種壓縮率下均優(yōu)于其他幾種壓縮感知重構算法。
本文提出了一種基于深度學習的非迭代方法來進行生理信號的壓縮感知重構。相比于傳統(tǒng)的迭代式壓縮感知重構算法,本文所提出的方法在生理信號重構階段無需進行迭代,在有著更高重構精度的前提下,其重構速度要比傳統(tǒng)的迭代式壓縮感知重構算法快2~3 個數(shù)量級,更容易滿足實時性需求。因此,本方法在可穿戴遠程健康監(jiān)測系統(tǒng)中具有良好的應用前景。