,,
(廣州大學 華軟軟件學院,廣州 510990)
隨著智慧醫(yī)療時代的到來,養(yǎng)老護老工作已經上升到了一個新層面,越來越多的可穿戴老年人健康監(jiān)測設備如智能手環(huán)、智能手表等應運而生,為緩解養(yǎng)老護老難題提供了有力的保障[1]。將多種異質傳感器采集的生理信號通過數(shù)據(jù)融合技術進行融合處理以提高老人智能手環(huán)檢測的準確度具有較高的實用價值和研究價值,參考文獻[2]~[7]分別從多個方面探討了異質傳感器數(shù)據(jù)融合技術在可穿戴設備上的應用。BP算法是目前比較流行的一種提高數(shù)據(jù)檢測準確性的數(shù)據(jù)融合方法,由于傳統(tǒng)BP算法收斂慢,容易陷入極值導致檢測不穩(wěn)定,在實際應用中出現(xiàn)了一系列有針對性的改進方案。參考文獻[8]在標準BP算法的基礎上加入動量項以盡量提高訓練速度,但學習率卻保持不變,而在實際應用中不變的學習率是很難確定的;參考文獻[9]在傳統(tǒng)BP算法的基礎上增加了動量項和自適應調節(jié)學習率兩項因子,但沒有考慮到動量因子這個因素,實際上動量因子的大小與算法的收斂性兩者關系非常密切,較大時穩(wěn)定性就較差,較小時收斂速度變慢。若在學習過程中能自適應調整動量因子,就可以提高算法的收斂性和穩(wěn)定性?;诖耍疚膶⒆赃m應學習率和自適應動量項兩種方法結合在一起,構建雙自適應BP神經網絡,解決傳統(tǒng)BP算法的不足,并將該方案應用到老年人智能手環(huán)中,從而提高手環(huán)系統(tǒng)報警的準確率,減少誤判的發(fā)生。
BP算法是一種多層前饋反向傳播的有導師學習[10]的算法,使用最普遍的迭代法和梯度下降法來調整網絡權值以便網絡具有學習記憶的能力。學習過程分為正向傳播和逆向傳播過程。首先,通過正向傳播將輸入層的現(xiàn)有權值傳輸至輸出層,計算實際輸出與期望輸出之間的誤差,然后再把誤差逐層逆向傳播至輸入層,并適當調整各層參數(shù)直至網絡收斂。一個典型的3層BP網絡模型如圖1所示。
圖1 典型3層BP網絡模型
為了描述方便,這里假設標準BP網絡的輸入集X=[x1,x2,……,xn]T,輸出集Y=[y1,y2,……,yn]T,Hi=[h1,h2,……,hm]T是隱含層結點集合,Vij代表第i個輸入神經元與第j個隱含層神經元之間的權重,Wij表示第i個隱含層神經元與第j個輸出層神經元之間的權重,期望輸出向量為D。
BP算法屬于多層前饋反向傳播算法,根據(jù)輸入信息,由輸入層到輸出層的方向從前向后計算,得到輸出層每個單元的輸出。為了使神經元的具體值能夠通過函數(shù)保留并映射出來,采用sigmoid函數(shù)作為激活函數(shù)。激活函數(shù)為:
(1)
再從后向前反向計算每一層輸出結果和期望值之間的差異,將這個殘差返回給整個網絡,進而更新每個權值。權值更新的法則為:
wji(k)=wji(k)+Δwji
(2)
BP網絡權值調整方案的目的是使網絡實際輸出與目標輸出之間的均方誤差(MSE)在期望范圍之內。定義均方誤差E的目標函數(shù)為:
(3)
因此,為了使均方誤差函數(shù)最小化,對于網絡中的每個權值Wji,對其求導:
(4)
因為:
(5)
(6)
且根據(jù)激活函數(shù)sigmoid函數(shù)的如下重要性質:
(7)
所以有:
(8)
因而:
(9)
進而式(4)可以寫成:
(10)
因BP算法采用梯度下降法改變權值,權值的改變朝著負梯度方向,于是有權值改變量:
η(dj-yj)yj(1-yj)xji
(11)
其中,η為學習步長,也就是學習率,令:δji=(dj-yj)yj(1-yj),則:
Δwji=ηδjixji
(12)
因此, 式(2)的權值更新法則修改如下:
wji(k+1)=wji(k)+ηδjixji
(13)
從式(13)可以看出,標準BP算法屬于簡單的最速下降尋優(yōu)法,在修正某時刻某神經元的權重時,與網絡的學習率η有關,權值修正是僅沿著某一時刻的負梯度方向進行,沒有將前一時刻的經驗考慮進去,從而使網絡學習過程中發(fā)生振蕩,收斂緩慢,容易陷入局部極值。
有動量的梯度下降法可以降低網絡對于誤差曲面局部細節(jié)的敏感性,減小學習過程的振蕩趨勢,但未考慮動量因子這個因素,導致容易陷入極值[11];有自適應學習率的梯度下降法能夠自適應調整學習率,從而增加穩(wěn)定性。本文將兩種方法結合在一起,采用自適應動量法和自適應學習率調整的策略構建雙自適應BP神經網絡,改善傳統(tǒng)BP算法不穩(wěn)定、易陷入極值的缺陷,進而使BP網絡快速收斂并提高穩(wěn)定性。
從式(13)可以看出,在修正k時刻第j個神經元的權重Wji時,與網絡的學習率η有關。標準BP算法收斂慢的一個重要原因是學習率選擇不當[12-13]。為了解決這一問題,本文設計了一種學習速率自適應調整的方法,主要思想是根據(jù)誤差的大小自動調整學習速率,這樣能使算法的學習速率根據(jù)誤差數(shù)值而自適應,使得學習穩(wěn)定,誤差降低,自適應學習速率的調整機制為:
其中E為BP網絡總體誤差,η為網絡學習速率,k為網絡訓練次數(shù)。
同樣,從式(13)可以看出,標準的BP算法按當前時刻的負梯度方向修正某個神經元的權重,未考慮以前積累的經驗,為了提高BP算法的收斂速度和精度,本文從BP神經網絡算法中引入動量項和動量因子,讓當前時刻的權值更新部分依賴于前一時刻的權值,得到新的自然梯度算法:
wji(k+1)=wji(k)+η(1-η)δjixji+αΔwji(k-1)
(14)
式中,Δwji(k-1)為動量項,α為動量因子。為使算法收斂,|α|<1。當動量因子取值較大時,收斂速度較快,但穩(wěn)態(tài)誤差也偏大,取值較小時,收斂速度變慢,穩(wěn)態(tài)誤差偏小[14]。因此,本文采用動態(tài)的動量因子,使動量因子也自適應變化。自適應調整動量因子α的策略為:
其中E為BP網絡總體誤差,k為網絡訓練次數(shù),α為動量因子,η為學習率。
隨時監(jiān)測老人體溫、心率、血壓情況,預防突發(fā)情況的發(fā)生,是可穿戴設備的必備功能。為了使手環(huán)能夠準確檢測體征數(shù)據(jù)并及時響應,本文使用雙自適應BP神經網絡構建一個健康狀態(tài)監(jiān)測系統(tǒng),對多傳感器測量到的實時體征數(shù)據(jù)進行信息融合處理,提高系統(tǒng)數(shù)據(jù)檢測的準確性和系統(tǒng)反應的及時性。系統(tǒng)將人體常見的4個體征參數(shù)(體溫、心率、收縮壓、舒張壓)經信號處理后輸入到數(shù)據(jù)融合中心,利用樣本數(shù)據(jù)進行訓練,并在系統(tǒng)的中間層完成數(shù)據(jù)融合,最后由系統(tǒng)智能判斷出老人現(xiàn)在的身體狀況。身體狀況分為正常和危險兩個等級。若認為身體狀況危險,則系統(tǒng)自動報警,并發(fā)送信息給老人的親屬或醫(yī)生。數(shù)據(jù)融合原理如圖2所示。
圖2 數(shù)據(jù)融合原理
網絡依據(jù)訓練樣本的輸入、輸出維度來決定網絡的輸入和輸出節(jié)點數(shù),由于輸入數(shù)據(jù)維數(shù)為4,即為4類體征信息,輸出數(shù)據(jù)維數(shù)為1,即為該系統(tǒng)的報警信息。最終確定了網絡的輸入節(jié)點個數(shù)為4,輸出節(jié)點個數(shù)為1,根據(jù)式(15)且根據(jù)經驗隱含層數(shù)通常取輸入層數(shù)的1.2~1.5倍,最后通過不斷仿真實驗最終確定隱含層個數(shù)為6,因此構建了4-6-1三層BP神經網絡。本網絡隱含層和輸出層節(jié)點傳輸函數(shù)分別為logsig函數(shù)和purelin函數(shù),訓練函數(shù)選用梯度下降自適應學習率的traingdx函數(shù),學習函數(shù)選用系統(tǒng)默認的動量梯度下降權值和閾值學習的learngdm函數(shù),并要求網絡誤差目標值為0.01,訓練次數(shù)為500次,學習速率設置為0.01,動量因子設置為0.95。其結構如圖3所示。
(15)
其中,k為隱含層節(jié)點個數(shù),n為輸入節(jié)點個數(shù),a為取值為1~10的正整數(shù)。
圖3 可穿戴設備的BP神經網絡模型
為了使神經網絡獲得準確有效的樣本數(shù)據(jù)供其學習,首先需要有判斷人體健康狀態(tài)的基本依據(jù)和指標。根據(jù)參考文獻[15]可知,人體正常體溫范圍為36~37.5 ℃,體溫38~38.9 ℃為中熱,39~40.9 ℃為高熱,體溫低于35.5 ℃稱為體溫過低,體溫過低過高都與感染性疾病有很大聯(lián)系,需要及時治療。正常人的心跳一般為60~100 bpm,心率過快(≥160 bpm)或過慢(≤60 bpm),大多見于心臟病病人,應及早檢測并預防。血管內血液對血管壁的壓力稱為血壓,當收縮壓在21.3 kPa以上而舒張壓在12.7 kPa以上時,稱為高血壓,收縮壓低于12 kPa而舒張壓低于6.6 kPa時,稱為低血壓。持續(xù)的高血壓和低血壓狀態(tài)多見于嚴重病癥,應及時檢測并預防。
綜合以上體溫、心率、血壓的危險評判標準,本文選用由RFID智能手環(huán)采集的100個測試樣本,對可穿戴設備從各種實驗環(huán)境中采集的70組數(shù)據(jù)進行人工判斷其危險程度,并生成樣本作為訓練樣本數(shù)據(jù)使用,剩下的 30 個作為測試樣本送入BP神經網絡中,將神經網絡融合后的輸出結果值y作為報警依據(jù),并設定當|y|<0.8時不報警,當|y|>0.8時報警。
圖4、圖5、圖6是傳統(tǒng)BP神經網絡訓練效果圖、收斂圖及預測誤差圖。
圖4 傳統(tǒng)BP網絡訓練圖
圖5 傳統(tǒng)BP網絡收斂圖
圖6 傳統(tǒng)BP網絡預測誤差圖
從上述3幅圖中可以看到,選用傳統(tǒng)的BP神經網絡進行數(shù)據(jù)融合時,迭代到第36次時才能達到預設精度,預測輸出與實際輸出相差9,識別率為70%。
圖7、圖8是基于雙自適應的BP神經網絡收斂圖和預測誤差圖。表1是改進后的雙自適應BP神經網絡30組測試數(shù)據(jù)融合結果表。從圖7、圖8中可以看到,基于雙自適應BP神經網絡達到小于設定誤差0.01 的要求需要12步的訓練,比傳統(tǒng)BP神經網絡的收斂速度更快,網絡預測輸出與實際輸出相差為2,識別率為93.3%。
圖7 雙自適應BP神經網絡訓練收斂圖
通過對比發(fā)現(xiàn),使用改進的數(shù)據(jù)融合算法降低了網絡的迭代次數(shù),在更短時間內可以把誤差減小到所需要的范圍,網絡識別準確度明顯提高。因此,從實驗結果數(shù)據(jù)看,改進的算法效果更好,更能適合智能手環(huán)快速響應、準確報警的需求,減少誤判的發(fā)生。
圖8 雙自適應BP神經網絡預測誤差圖
表1 30組數(shù)據(jù)融合結果表