艾玲梅,薛亞慶,李天東
(陜西師范大學 計算機科學學院,陜西 西安 710119)
亞健康是一種介于健康與疾病之間的中間狀態(tài),是由學者王育學[1]首次提出。亞健康狀態(tài),人體雖未明顯病變,但已經(jīng)有潛在的發(fā)病可能,其機體結(jié)構(gòu)以及生理功能已經(jīng)存在不同程度的減弱與衰退,甚至會出現(xiàn)心理調(diào)節(jié)失衡、社會適應能力下降,導致易患疾病[2]。
脈搏信號作為人體重要的生理信號,對于人體各種疾病的診斷具有極其重要的價值,因此可以通過分析人體的脈搏信號來實現(xiàn)亞健康狀態(tài)的檢測[3-4]。特征提取是影響脈搏信號亞健康檢測效果的直接因素,目前,對脈搏信號處理方法的研究主要集中在三個方面:
(1)時域法。主要尋找脈搏信號中一些具有生理學含義的點作為特征點,如常見的主波點、潮波點、波長和信號的波形特征量K等[5],但是存在時域特征不穩(wěn)定,需要借助主觀的經(jīng)驗而估計,以及特征參數(shù)過多等缺點。
(2)頻域法。通過脈搏信號的頻譜圖得到相對應的特征點實現(xiàn)脈搏信號的識別。如Lee等人[6]將“能量比(ER)”的概念引入脈搏信號的頻譜圖分析,發(fā)現(xiàn)健康人的ER值都在100以上,在某些特定的脈搏位置,亞健康人群的ER值低于100,從而可區(qū)分出健康和亞健康狀態(tài)。但脈搏信號是非線性、非平穩(wěn)的信號,采用頻域方法分析時,無法達到最佳分辨率,因此并不適用于脈搏信號的處理。
(3)時頻法。主要是從時間域和頻率域同時進行分析。比較常用的時頻分析方法有:短時傅里葉變換[7]、希爾伯特-黃變換[8]和小波變換[9],短時傅里葉變換方法存在無法同時兼顧時間與頻率分辨率需求的缺點;希爾伯特-黃變換方法應用于窄帶信號非常有效,對非窄信號卻無能為力;小波變換雖然可高效地從脈搏信號中提取相關(guān)信息,但是識別率相對來說還存在可提升的空間。
近幾年,深度學習方法作為一種新的特征提取手段,將有監(jiān)督學習與無監(jiān)督學習相結(jié)合,克服了傳統(tǒng)方法將特征提取與分類器分為兩個環(huán)節(jié)的缺點,在圖像識別[10]、物體檢測[11]、文本檢測[12]等領(lǐng)域的研究應用中都取得了很好的效果。因此,文中將深度學習理論引入脈搏信號亞健康檢測識別研究,提出了一種基于深度殘差網(wǎng)絡的脈搏信號亞健康檢測算法。具體做法為:首先,采用生成對抗網(wǎng)絡方法對脈搏信號數(shù)據(jù)集進行擴增;然后,調(diào)整深度殘差網(wǎng)絡模型,引入一維卷積,構(gòu)建適用于脈搏信號亞健康的檢測模型;最后,利用擴增之后的數(shù)據(jù)集訓練脈搏信號亞健康的檢測模型,對人體亞健康狀態(tài)進行檢測。
眾所周知深度學習方法需要使用大量的、帶類別標簽的數(shù)據(jù)進行訓練。但是,目前國內(nèi)外還沒有可用于深度學習訓練的亞健康檢測的脈搏信號數(shù)據(jù)集合。由于采集范圍和采集效率的限制,文中自主設計實驗采集的脈搏信號數(shù)據(jù)量也有限。這樣就對該研究造成了困擾,因此,需要解決的首要問題就是如何構(gòu)建一個擁有大量脈搏信號數(shù)據(jù)的集合以滿足深度學習方法的訓練要求。
2014年,Goodfellow提出了一種生成式對抗網(wǎng)絡(generative adversarial networks,GAN)[13],該網(wǎng)絡可以用于生成圖像,對圖像數(shù)據(jù)進行擴增。但是GAN存在訓練不穩(wěn)定、梯度消失等問題,深度卷積生成式對抗網(wǎng)絡(deep convolutional generative adversarial networks,DCGAN)[14]就是在GAN網(wǎng)絡的基礎上提出的。DCGAN網(wǎng)絡模型目前表現(xiàn)比較穩(wěn)定,訓練比較容易收斂,但是該網(wǎng)絡是針對圖像樣本的生成,并不適合生成文中的脈搏信號數(shù)據(jù)。因此,在深入研究DCGAN網(wǎng)絡的基礎上,提出了一種稱為脈搏信號生成對抗網(wǎng)絡(pulse signal deep convolutional generative adversarial networks,PSDCGAN)的網(wǎng)絡模型,以適用于一維脈搏信號生成。
首先讓受試者自主填寫亞健康自評表,然后根據(jù)自評表得分從中選取40名無任何疾病的研究生,年齡均在22~28歲之間,其中男生17名,女生23名,在實驗前均精神良好,情緒平穩(wěn)。實驗采集設備為合肥華科電子技術(shù)研究所研發(fā)的HK-2000C集成數(shù)字脈搏傳感器,將傳感器對準受試者手腕橈動脈處,用腕帶固定好,力度適中。實驗中采樣頻率為200 Hz,采樣時間設置為1.5 min,受試者將手臂與心臟近于同一水平前臂平伸,掌心向上,保持平穩(wěn)狀態(tài),不要大聲說話,待信號平穩(wěn)后開始數(shù)據(jù)記錄。
脈搏信號是微弱的信號,采集過程中易受采集環(huán)境、采集儀器以及受試者身體與心理活動的影響,使得脈搏信號中含有工頻干擾、基線漂移等噪聲信號,因此,為了獲得較為純凈的脈搏信號,采用小波變換的方法和脈搏信號干擾段檢測算法對脈搏信號去除噪聲及異常波形。
1.2.1 PSDCGAN網(wǎng)絡的基本原理
PSDCGAN網(wǎng)絡是基于GAN改進,其基本原理與GAN相同。GAN網(wǎng)絡的總體框架如圖1所示,其中z表示噪聲輸入,G表示生成網(wǎng)絡,D表示判別網(wǎng)絡,更新操作表示判別網(wǎng)絡根據(jù)損失函數(shù)值來更新生成網(wǎng)絡的損失函數(shù)值,使其生成的樣本盡可能地接近于真實樣本,兩者的最終目的是處于納什均衡的狀態(tài),生成網(wǎng)絡可以生成最真實的數(shù)據(jù)樣本。PSDCGAN網(wǎng)絡的實現(xiàn)過程包括兩個階段:前向傳播階段和反向傳播階段。在前向傳播階段,輸入一個100維的隨機噪聲,經(jīng)過生成網(wǎng)絡生成一個新的向量,記作D(z),其中z表示生成的隨機噪聲,從脈搏信號數(shù)據(jù)集合中選取一個信號向量,記作x。然后將生成網(wǎng)絡產(chǎn)生的假信號或者從訓練樣本選擇的真信號作為判別網(wǎng)絡的輸入數(shù)據(jù),而判別網(wǎng)絡將會輸出一個0~1之間的概率值,這個概率值表示的是輸入的信號為真實脈搏信號的概率。使用得到的概率值計算損失函數(shù),生成網(wǎng)絡的損失函數(shù)和判別網(wǎng)絡的損失函數(shù)分別如式(1)和(2)所示:
(1-y)log(1-D(G(z)))
(1)
-(1-y)log(1-D(G(z)))+ylog(D(x))
(2)
其中,y為輸入數(shù)據(jù)的類型,G(z)為生成網(wǎng)絡的輸出,D(x)為判別網(wǎng)絡的輸出,D(G(z))表示生成的信號根據(jù)判別網(wǎng)絡判斷為真實信號的概率。
PSDCGAN網(wǎng)絡的反向傳播階段,根據(jù)生成網(wǎng)絡和判別網(wǎng)絡的損失函數(shù),不斷去修正誤差,更新網(wǎng)絡參數(shù)。一方面是讓生成網(wǎng)絡的輸出G(z)盡量與真實信號相近,另一方面是使得判別網(wǎng)絡的輸出D(x)的值盡可能趨向于1,D(G(z))的值盡可能趨向于0,如式(3)所示:
Ez~Pz(z)[log(1-D(G(z)))]
(3)
其中,Pdata(x)表示真實信號數(shù)據(jù)的概率分布情況,Pz(z)表示初始隨機噪聲數(shù)據(jù)的概率分布情況,E(*)表示分布函數(shù)的期望值。
圖1 GAN網(wǎng)絡的總體框架
1.2.2 PSDCGAN網(wǎng)絡的生成網(wǎng)絡
生成網(wǎng)絡的作用是如何依據(jù)隨機噪聲生成脈搏信號,盡量服從真實數(shù)據(jù)的分布,并且存儲成txt的數(shù)據(jù)文件,以備后續(xù)作為數(shù)據(jù)集進行讀取。圖2是PSDCGAN的生成網(wǎng)絡結(jié)構(gòu),該網(wǎng)絡共有10層,第一層表示輸入層,其余層均為卷積層。In:100Z表示輸入是維度為100的隨機噪聲向量,卷積層主要由帶步長的反卷積構(gòu)成,可以使生成網(wǎng)絡上采樣,將輸入的隨機噪聲通過上采樣生成1 024×1的信號數(shù)據(jù)。反卷積核大小設置為5,步長設置為2,在生成網(wǎng)絡中選擇tanh作為輸出層的激活函數(shù),其他層均選擇ReLU激活函數(shù),并且每一層均使用塊歸一化(batch normaliza-tion,BN)層,將特征層的輸出規(guī)范化,解決隨機初始化參數(shù)不理想問題,并且訓練速度和穩(wěn)定性得到提升。
在反卷積層中,文中均采用一維反卷積函數(shù),即conv1d_transpose函數(shù)。之所以采用一維反卷積函數(shù),是因為文中需要生成的是脈搏信號,脈搏信號為一維信號,所以必須做此改進。
1.2.3 PSDCGAN網(wǎng)絡的判別網(wǎng)絡
判別網(wǎng)絡存在目的是對輸入數(shù)據(jù)進行判別,判斷是來源于真實的信號數(shù)據(jù)還是生成網(wǎng)絡生成的假信號數(shù)據(jù),其本質(zhì)是實現(xiàn)對數(shù)據(jù)來源的二分類判別。判別網(wǎng)絡結(jié)構(gòu)如圖3所示,該網(wǎng)絡有11層,最后一層為全連接層,其余層均是帶步長的卷積層,目的是讓判別網(wǎng)絡可以下采樣,卷積核的大小設置為5,步長設置為2。在此特別說明,由于脈搏信號為一維信號,所以卷積層均采用一維卷積操作。在判別網(wǎng)絡中,與生成網(wǎng)絡不同的是在判別網(wǎng)絡中均使用LeakyReLU類型的激活函數(shù),防止梯度稀疏。
圖2 PSDCGAN網(wǎng)絡的生成網(wǎng)絡結(jié)構(gòu)
圖3 PSDCGAN網(wǎng)絡的判別網(wǎng)絡結(jié)構(gòu)
1.2.4 PSDCGAN網(wǎng)絡的訓練過程
PSDCGAN網(wǎng)絡在訓練過程中采用交替優(yōu)化的方法,即輪流固定生成網(wǎng)絡G和判別網(wǎng)絡D的參數(shù),然后去訓練另一個網(wǎng)絡。為防止判別網(wǎng)絡的損失很快收斂為零,從而沒有足夠強的梯度路徑可以繼續(xù)更新生成。
所以,在訓練階段每次使判別網(wǎng)絡D訓練更久一點,規(guī)定生成網(wǎng)絡G的損失函數(shù)更新2次,判別網(wǎng)絡D的損失函數(shù)更新1次。網(wǎng)絡訓練好之后,便可利用該網(wǎng)絡對脈搏信號數(shù)據(jù)集進行擴增。
深度殘差網(wǎng)絡(residual network,ResNet)[15]是為了解決卷積神經(jīng)網(wǎng)絡訓練過程中,會出現(xiàn)隨著網(wǎng)絡層數(shù)的不斷加深,準確率不增反而下降的問題。ResNet網(wǎng)絡中引入了殘差塊的概念,根據(jù)輸入學習殘差函數(shù)而非原始函數(shù)。假設輸入神經(jīng)網(wǎng)絡為x,需要擬合的輸出函數(shù)映射為H(x),則殘差映射F(x)可表示為式(4),殘差塊結(jié)構(gòu)如式(5):
F(x)=H(x)-x
(4)
(5)
F(x,W)=W2σ(W1x)
(6)
多個卷積層級聯(lián)的輸出和輸入元素之間相加得到殘差塊的輸出,再經(jīng)過ReLU函數(shù)激活后得到。傳統(tǒng)的神經(jīng)網(wǎng)絡采取自上向下的輸出方式,而這種殘差結(jié)構(gòu)直接將某一層的輸出跨過幾層作為后面某一層的輸入,目的是讓疊加的多層網(wǎng)絡隨著網(wǎng)絡規(guī)模的加深,準確率不再不升反降。
為了將深層模型殘差網(wǎng)絡的特征提取能力遷移到信號上,并使其能夠完成脈搏信號亞健康分類檢測,需要對深度殘差網(wǎng)絡模型進行調(diào)整,使用由多個小尺寸卷積核級聯(lián)形成的18層網(wǎng)絡,中間由四個殘差塊組成,每個殘差塊在卷積層之后引入BN批歸一化處理,將特征層的輸出規(guī)范化。在該網(wǎng)絡中,均采用一維卷積,卷積核大小均為3,采用ReLU作為激活函數(shù)。脈搏信號輸入經(jīng)過初始卷積層和池化層之后,將提取到的特征輸入到若干殘差塊中,學習殘差映射函數(shù),在經(jīng)過殘差塊的學習后,連接一個池化層和一個全連接層輸出分類結(jié)果。
為驗證基于PSDCGAN網(wǎng)絡用于生成脈搏信號的效果,本節(jié)設計實驗的具體步驟為:將經(jīng)過預處理后的脈搏信號首先進行人工分割以增加樣本數(shù)量,可以得到健康者樣本集760個,亞健康者樣本集840個,每個樣本均有1 024個采樣點值。從中選取1 000個樣本進行訓練,600個樣本進行測試,將所有數(shù)據(jù)進行歸一化處理,歸一化范圍為[-1,1],作為PSDCGAN網(wǎng)絡的訓練集和測試集。然后基于構(gòu)建的數(shù)據(jù)集訓練PSDCGAN網(wǎng)絡,等PSDCGAN網(wǎng)絡訓練完成之后,使用該網(wǎng)絡生成文中需要的脈搏信號數(shù)據(jù)。真實的脈搏信號如圖4所示,生成的脈搏信號圖像如圖5所示,將真實的脈搏信號和生成的脈搏信號進行重疊的對比,對比的結(jié)果如圖6所示。
圖4 采集的真實脈搏信號示意圖
圖5 利用PSDCGAN網(wǎng)絡生成的脈搏信號圖
圖6 真實脈搏信號和生成脈搏信號對比
從圖4~圖6的對比分析可知,利用PSDCGAN網(wǎng)絡可以生成脈搏信號數(shù)據(jù),且與真實數(shù)據(jù)相比,相似度很高。
首先,將實驗采集來的數(shù)據(jù)進行分割,可以得到健康者脈搏信號樣本集760個,亞健康者脈搏信號樣本集840個,每個樣本均有1 024個采樣點值,共1 600個脈搏信號(記作數(shù)據(jù)集A),對數(shù)據(jù)集A做如下劃分:訓練集1 000個信號樣本(包含健康者脈搏信號和亞健康者脈搏信號各500個),測試集600個信號樣本;第二組實驗使用PSDCGAN網(wǎng)絡擴增的5 000個脈搏信號數(shù)據(jù)集(記作集合B),各數(shù)據(jù)集的具體劃分方法為訓練集4 000個信號樣本(包含健康者脈搏信號和亞健康者脈搏信號各2 000個),測試集1 000個信號樣本。
本節(jié)設計的第一組實驗用于驗證SGD、Adam和Momentum三種梯度優(yōu)化算法對于分類結(jié)果的影響,實驗的具體設計步驟是:選用集合B訓練深度殘差網(wǎng)絡模型,訓練中分別使用SGD、Adam和Momentum三種優(yōu)化算法對其進行優(yōu)化,訓練過程中Loss值的變化如圖7所示。
圖7 三種優(yōu)化算法結(jié)果對比
圖7中由上至下分別代表使用隨機梯度下降算法(SGD)、動量優(yōu)化算法(Momentum)和自適應優(yōu)化算法(Adam)優(yōu)化后的模型損失函數(shù)值的變化,從圖7中可以明顯看出,網(wǎng)絡模型采用SGD算法優(yōu)化的結(jié)果明顯不如采用Momentum和Adam優(yōu)化方法,而Momentum和Adam方法相比,Momentum方法優(yōu)化的模型其損失函數(shù)值更小,Adam方法的損失函數(shù)值相比之下稍高,但采用Adam方法優(yōu)化的模型,其收斂速度比使用Momentum方法優(yōu)化模型的速度快。因此為了考慮運行時間問題,在文中網(wǎng)絡模型中,優(yōu)化算法選用Adam。
本節(jié)設計的第二組實驗用于驗證提出的脈搏信號擴增方法對于分類效果的影響。實驗的具體設計步驟為:采用集合A和集合B按照上述方法的劃分,分別訓練文中的深度殘差網(wǎng)絡。實驗結(jié)果如表1所示。
表1 文中方法在未擴增數(shù)據(jù)集和擴增數(shù)據(jù)集上的結(jié)果對比
由表1可知,在采用樣本集B訓練的情況下,深度殘差網(wǎng)絡的分類識別結(jié)果要遠遠好于采用樣本集A訓練的結(jié)果。分析原因是:ResNet是深層次網(wǎng)絡,需要的樣本集比較大,在樣本量充足的情況下,準確率大幅度提高(對比采用樣本集A訓練ResNet網(wǎng)絡和樣本集B訓練ResNet網(wǎng)絡),若樣本量小,則訓練不充足,不能達到最優(yōu)訓練模型,所以結(jié)果不是特別理想。需要特別說明的是,對于采用集合B訓練ResNet網(wǎng)絡和采用沒有擴充的集合A相比,準確率提升了將近10%,這說明,針對類似ResNet這樣深層次的網(wǎng)絡,充足的樣本集是模型訓練的前提,也間接證明了文中提出的PSDCGAN網(wǎng)絡生成脈搏信號的有效性。
本節(jié)設計的第三組實驗用于驗證與其他傳統(tǒng)的脈搏信號亞健康檢測方法對比,文中方法的有效性。實驗的具體設計步驟為:采用集合B按照上述方法的劃分,訓練文中的深度殘差網(wǎng)絡,與現(xiàn)有的PCANet-SVM[16]方法相比,最終的實驗結(jié)果如表2所示。
表2 文中方法和其他方法的結(jié)果對比
由表2的結(jié)果可知:與現(xiàn)有PCANet-SVM方法,文中方法在識別率的表現(xiàn)上更好,體現(xiàn)了多層網(wǎng)絡結(jié)構(gòu)特征提取方面的良好性能,驗證了該方法的有效性。
目前,深度學習方法在圖像處理方面的研究取得了巨大的成功,但是在一維信號的研究應用較少。文中首次將深度殘差網(wǎng)絡應用于脈搏信號領(lǐng)域,針對數(shù)據(jù)樣本不足的問題,提出了一種基于生成式對抗網(wǎng)絡PSDCGAN用于對脈搏信號數(shù)據(jù)樣本進行擴增,為下一步使用深度學習方法研究脈搏信號亞健康提供了可能。其次針對傳統(tǒng)脈搏信號亞健康檢測方法存在識別率較低的缺點,提出一種適用于脈搏信號亞健康的深度殘差網(wǎng)絡檢測模型,與現(xiàn)有方法對比,可以取得更高的識別率,證明了深度殘差網(wǎng)絡在脈搏信號亞健康檢測領(lǐng)域的有效性。
不足之處在于,深度殘差網(wǎng)絡模型屬于深層次的框架模型,對于訓練樣本需求很大,因此造成訓練時間過長,所以進一步優(yōu)化訓練時間是可以改進的一個方向。