,,
(廣州大學(xué) 華軟軟件學(xué)院,廣州 510990)
隨著智慧醫(yī)療時(shí)代的到來,養(yǎng)老護(hù)老工作已經(jīng)上升到了一個(gè)新層面,越來越多的可穿戴老年人健康監(jiān)測(cè)設(shè)備如智能手環(huán)、智能手表等應(yīng)運(yùn)而生,為緩解養(yǎng)老護(hù)老難題提供了有力的保障[1]。將多種異質(zhì)傳感器采集的生理信號(hào)通過數(shù)據(jù)融合技術(shù)進(jìn)行融合處理以提高老人智能手環(huán)檢測(cè)的準(zhǔn)確度具有較高的實(shí)用價(jià)值和研究?jī)r(jià)值,參考文獻(xiàn)[2]~[7]分別從多個(gè)方面探討了異質(zhì)傳感器數(shù)據(jù)融合技術(shù)在可穿戴設(shè)備上的應(yīng)用。BP算法是目前比較流行的一種提高數(shù)據(jù)檢測(cè)準(zhǔn)確性的數(shù)據(jù)融合方法,由于傳統(tǒng)BP算法收斂慢,容易陷入極值導(dǎo)致檢測(cè)不穩(wěn)定,在實(shí)際應(yīng)用中出現(xiàn)了一系列有針對(duì)性的改進(jìn)方案。參考文獻(xiàn)[8]在標(biāo)準(zhǔn)BP算法的基礎(chǔ)上加入動(dòng)量項(xiàng)以盡量提高訓(xùn)練速度,但學(xué)習(xí)率卻保持不變,而在實(shí)際應(yīng)用中不變的學(xué)習(xí)率是很難確定的;參考文獻(xiàn)[9]在傳統(tǒng)BP算法的基礎(chǔ)上增加了動(dòng)量項(xiàng)和自適應(yīng)調(diào)節(jié)學(xué)習(xí)率兩項(xiàng)因子,但沒有考慮到動(dòng)量因子這個(gè)因素,實(shí)際上動(dòng)量因子的大小與算法的收斂性兩者關(guān)系非常密切,較大時(shí)穩(wěn)定性就較差,較小時(shí)收斂速度變慢。若在學(xué)習(xí)過程中能自適應(yīng)調(diào)整動(dòng)量因子,就可以提高算法的收斂性和穩(wěn)定性。基于此,本文將自適應(yīng)學(xué)習(xí)率和自適應(yīng)動(dòng)量項(xiàng)兩種方法結(jié)合在一起,構(gòu)建雙自適應(yīng)BP神經(jīng)網(wǎng)絡(luò),解決傳統(tǒng)BP算法的不足,并將該方案應(yīng)用到老年人智能手環(huán)中,從而提高手環(huán)系統(tǒng)報(bào)警的準(zhǔn)確率,減少誤判的發(fā)生。
BP算法是一種多層前饋反向傳播的有導(dǎo)師學(xué)習(xí)[10]的算法,使用最普遍的迭代法和梯度下降法來調(diào)整網(wǎng)絡(luò)權(quán)值以便網(wǎng)絡(luò)具有學(xué)習(xí)記憶的能力。學(xué)習(xí)過程分為正向傳播和逆向傳播過程。首先,通過正向傳播將輸入層的現(xiàn)有權(quán)值傳輸至輸出層,計(jì)算實(shí)際輸出與期望輸出之間的誤差,然后再把誤差逐層逆向傳播至輸入層,并適當(dāng)調(diào)整各層參數(shù)直至網(wǎng)絡(luò)收斂。一個(gè)典型的3層BP網(wǎng)絡(luò)模型如圖1所示。

圖1 典型3層BP網(wǎng)絡(luò)模型
為了描述方便,這里假設(shè)標(biāo)準(zhǔn)BP網(wǎng)絡(luò)的輸入集X=[x1,x2,……,xn]T,輸出集Y=[y1,y2,……,yn]T,Hi=[h1,h2,……,hm]T是隱含層結(jié)點(diǎn)集合,Vij代表第i個(gè)輸入神經(jīng)元與第j個(gè)隱含層神經(jīng)元之間的權(quán)重,Wij表示第i個(gè)隱含層神經(jīng)元與第j個(gè)輸出層神經(jīng)元之間的權(quán)重,期望輸出向量為D。
BP算法屬于多層前饋反向傳播算法,根據(jù)輸入信息,由輸入層到輸出層的方向從前向后計(jì)算,得到輸出層每個(gè)單元的輸出。為了使神經(jīng)元的具體值能夠通過函數(shù)保留并映射出來,采用sigmoid函數(shù)作為激活函數(shù)。激活函數(shù)為:
(1)
再?gòu)暮笙蚯胺聪蛴?jì)算每一層輸出結(jié)果和期望值之間的差異,將這個(gè)殘差返回給整個(gè)網(wǎng)絡(luò),進(jìn)而更新每個(gè)權(quán)值。權(quán)值更新的法則為:
wji(k)=wji(k)+Δwji
(2)
BP網(wǎng)絡(luò)權(quán)值調(diào)整方案的目的是使網(wǎng)絡(luò)實(shí)際輸出與目標(biāo)輸出之間的均方誤差(MSE)在期望范圍之內(nèi)。定義均方誤差E的目標(biāo)函數(shù)為:
(3)
因此,為了使均方誤差函數(shù)最小化,對(duì)于網(wǎng)絡(luò)中的每個(gè)權(quán)值Wji,對(duì)其求導(dǎo):
(4)
因?yàn)椋?/p>
(5)

(6)
且根據(jù)激活函數(shù)sigmoid函數(shù)的如下重要性質(zhì):
(7)
所以有:
(8)
因而:
(9)
進(jìn)而式(4)可以寫成:
(10)
因BP算法采用梯度下降法改變權(quán)值,權(quán)值的改變朝著負(fù)梯度方向,于是有權(quán)值改變量:
η(dj-yj)yj(1-yj)xji
(11)
其中,η為學(xué)習(xí)步長(zhǎng),也就是學(xué)習(xí)率,令:δji=(dj-yj)yj(1-yj),則:
Δwji=ηδjixji
(12)
因此, 式(2)的權(quán)值更新法則修改如下:
wji(k+1)=wji(k)+ηδjixji
(13)
從式(13)可以看出,標(biāo)準(zhǔn)BP算法屬于簡(jiǎn)單的最速下降尋優(yōu)法,在修正某時(shí)刻某神經(jīng)元的權(quán)重時(shí),與網(wǎng)絡(luò)的學(xué)習(xí)率η有關(guān),權(quán)值修正是僅沿著某一時(shí)刻的負(fù)梯度方向進(jìn)行,沒有將前一時(shí)刻的經(jīng)驗(yàn)考慮進(jìn)去,從而使網(wǎng)絡(luò)學(xué)習(xí)過程中發(fā)生振蕩,收斂緩慢,容易陷入局部極值。
有動(dòng)量的梯度下降法可以降低網(wǎng)絡(luò)對(duì)于誤差曲面局部細(xì)節(jié)的敏感性,減小學(xué)習(xí)過程的振蕩趨勢(shì),但未考慮動(dòng)量因子這個(gè)因素,導(dǎo)致容易陷入極值[11];有自適應(yīng)學(xué)習(xí)率的梯度下降法能夠自適應(yīng)調(diào)整學(xué)習(xí)率,從而增加穩(wěn)定性。本文將兩種方法結(jié)合在一起,采用自適應(yīng)動(dòng)量法和自適應(yīng)學(xué)習(xí)率調(diào)整的策略構(gòu)建雙自適應(yīng)BP神經(jīng)網(wǎng)絡(luò),改善傳統(tǒng)BP算法不穩(wěn)定、易陷入極值的缺陷,進(jìn)而使BP網(wǎng)絡(luò)快速收斂并提高穩(wěn)定性。
從式(13)可以看出,在修正k時(shí)刻第j個(gè)神經(jīng)元的權(quán)重Wji時(shí),與網(wǎng)絡(luò)的學(xué)習(xí)率η有關(guān)。標(biāo)準(zhǔn)BP算法收斂慢的一個(gè)重要原因是學(xué)習(xí)率選擇不當(dāng)[12-13]。為了解決這一問題,本文設(shè)計(jì)了一種學(xué)習(xí)速率自適應(yīng)調(diào)整的方法,主要思想是根據(jù)誤差的大小自動(dòng)調(diào)整學(xué)習(xí)速率,這樣能使算法的學(xué)習(xí)速率根據(jù)誤差數(shù)值而自適應(yīng),使得學(xué)習(xí)穩(wěn)定,誤差降低,自適應(yīng)學(xué)習(xí)速率的調(diào)整機(jī)制為:

其中E為BP網(wǎng)絡(luò)總體誤差,η為網(wǎng)絡(luò)學(xué)習(xí)速率,k為網(wǎng)絡(luò)訓(xùn)練次數(shù)。
同樣,從式(13)可以看出,標(biāo)準(zhǔn)的BP算法按當(dāng)前時(shí)刻的負(fù)梯度方向修正某個(gè)神經(jīng)元的權(quán)重,未考慮以前積累的經(jīng)驗(yàn),為了提高BP算法的收斂速度和精度,本文從BP神經(jīng)網(wǎng)絡(luò)算法中引入動(dòng)量項(xiàng)和動(dòng)量因子,讓當(dāng)前時(shí)刻的權(quán)值更新部分依賴于前一時(shí)刻的權(quán)值,得到新的自然梯度算法:
wji(k+1)=wji(k)+η(1-η)δjixji+αΔwji(k-1)
(14)
式中,Δwji(k-1)為動(dòng)量項(xiàng),α為動(dòng)量因子。為使算法收斂,|α|<1。當(dāng)動(dòng)量因子取值較大時(shí),收斂速度較快,但穩(wěn)態(tài)誤差也偏大,取值較小時(shí),收斂速度變慢,穩(wěn)態(tài)誤差偏小[14]。因此,本文采用動(dòng)態(tài)的動(dòng)量因子,使動(dòng)量因子也自適應(yīng)變化。自適應(yīng)調(diào)整動(dòng)量因子α的策略為:

其中E為BP網(wǎng)絡(luò)總體誤差,k為網(wǎng)絡(luò)訓(xùn)練次數(shù),α為動(dòng)量因子,η為學(xué)習(xí)率。
隨時(shí)監(jiān)測(cè)老人體溫、心率、血壓情況,預(yù)防突發(fā)情況的發(fā)生,是可穿戴設(shè)備的必備功能。為了使手環(huán)能夠準(zhǔn)確檢測(cè)體征數(shù)據(jù)并及時(shí)響應(yīng),本文使用雙自適應(yīng)BP神經(jīng)網(wǎng)絡(luò)構(gòu)建一個(gè)健康狀態(tài)監(jiān)測(cè)系統(tǒng),對(duì)多傳感器測(cè)量到的實(shí)時(shí)體征數(shù)據(jù)進(jìn)行信息融合處理,提高系統(tǒng)數(shù)據(jù)檢測(cè)的準(zhǔn)確性和系統(tǒng)反應(yīng)的及時(shí)性。系統(tǒng)將人體常見的4個(gè)體征參數(shù)(體溫、心率、收縮壓、舒張壓)經(jīng)信號(hào)處理后輸入到數(shù)據(jù)融合中心,利用樣本數(shù)據(jù)進(jìn)行訓(xùn)練,并在系統(tǒng)的中間層完成數(shù)據(jù)融合,最后由系統(tǒng)智能判斷出老人現(xiàn)在的身體狀況。身體狀況分為正常和危險(xiǎn)兩個(gè)等級(jí)。若認(rèn)為身體狀況危險(xiǎn),則系統(tǒng)自動(dòng)報(bào)警,并發(fā)送信息給老人的親屬或醫(yī)生。數(shù)據(jù)融合原理如圖2所示。

圖2 數(shù)據(jù)融合原理
網(wǎng)絡(luò)依據(jù)訓(xùn)練樣本的輸入、輸出維度來決定網(wǎng)絡(luò)的輸入和輸出節(jié)點(diǎn)數(shù),由于輸入數(shù)據(jù)維數(shù)為4,即為4類體征信息,輸出數(shù)據(jù)維數(shù)為1,即為該系統(tǒng)的報(bào)警信息。最終確定了網(wǎng)絡(luò)的輸入節(jié)點(diǎn)個(gè)數(shù)為4,輸出節(jié)點(diǎn)個(gè)數(shù)為1,根據(jù)式(15)且根據(jù)經(jīng)驗(yàn)隱含層數(shù)通常取輸入層數(shù)的1.2~1.5倍,最后通過不斷仿真實(shí)驗(yàn)最終確定隱含層個(gè)數(shù)為6,因此構(gòu)建了4-6-1三層BP神經(jīng)網(wǎng)絡(luò)。本網(wǎng)絡(luò)隱含層和輸出層節(jié)點(diǎn)傳輸函數(shù)分別為logsig函數(shù)和purelin函數(shù),訓(xùn)練函數(shù)選用梯度下降自適應(yīng)學(xué)習(xí)率的traingdx函數(shù),學(xué)習(xí)函數(shù)選用系統(tǒng)默認(rèn)的動(dòng)量梯度下降權(quán)值和閾值學(xué)習(xí)的learngdm函數(shù),并要求網(wǎng)絡(luò)誤差目標(biāo)值為0.01,訓(xùn)練次數(shù)為500次,學(xué)習(xí)速率設(shè)置為0.01,動(dòng)量因子設(shè)置為0.95。其結(jié)構(gòu)如圖3所示。
(15)
其中,k為隱含層節(jié)點(diǎn)個(gè)數(shù),n為輸入節(jié)點(diǎn)個(gè)數(shù),a為取值為1~10的正整數(shù)。

圖3 可穿戴設(shè)備的BP神經(jīng)網(wǎng)絡(luò)模型
為了使神經(jīng)網(wǎng)絡(luò)獲得準(zhǔn)確有效的樣本數(shù)據(jù)供其學(xué)習(xí),首先需要有判斷人體健康狀態(tài)的基本依據(jù)和指標(biāo)。根據(jù)參考文獻(xiàn)[15]可知,人體正常體溫范圍為36~37.5 ℃,體溫38~38.9 ℃為中熱,39~40.9 ℃為高熱,體溫低于35.5 ℃稱為體溫過低,體溫過低過高都與感染性疾病有很大聯(lián)系,需要及時(shí)治療。正常人的心跳一般為60~100 bpm,心率過快(≥160 bpm)或過慢(≤60 bpm),大多見于心臟病病人,應(yīng)及早檢測(cè)并預(yù)防。血管內(nèi)血液對(duì)血管壁的壓力稱為血壓,當(dāng)收縮壓在21.3 kPa以上而舒張壓在12.7 kPa以上時(shí),稱為高血壓,收縮壓低于12 kPa而舒張壓低于6.6 kPa時(shí),稱為低血壓。持續(xù)的高血壓和低血壓狀態(tài)多見于嚴(yán)重病癥,應(yīng)及時(shí)檢測(cè)并預(yù)防。
綜合以上體溫、心率、血壓的危險(xiǎn)評(píng)判標(biāo)準(zhǔn),本文選用由RFID智能手環(huán)采集的100個(gè)測(cè)試樣本,對(duì)可穿戴設(shè)備從各種實(shí)驗(yàn)環(huán)境中采集的70組數(shù)據(jù)進(jìn)行人工判斷其危險(xiǎn)程度,并生成樣本作為訓(xùn)練樣本數(shù)據(jù)使用,剩下的 30 個(gè)作為測(cè)試樣本送入BP神經(jīng)網(wǎng)絡(luò)中,將神經(jīng)網(wǎng)絡(luò)融合后的輸出結(jié)果值y作為報(bào)警依據(jù),并設(shè)定當(dāng)|y|<0.8時(shí)不報(bào)警,當(dāng)|y|>0.8時(shí)報(bào)警。
圖4、圖5、圖6是傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練效果圖、收斂圖及預(yù)測(cè)誤差圖。

圖4 傳統(tǒng)BP網(wǎng)絡(luò)訓(xùn)練圖

圖5 傳統(tǒng)BP網(wǎng)絡(luò)收斂圖

圖6 傳統(tǒng)BP網(wǎng)絡(luò)預(yù)測(cè)誤差圖
從上述3幅圖中可以看到,選用傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)融合時(shí),迭代到第36次時(shí)才能達(dá)到預(yù)設(shè)精度,預(yù)測(cè)輸出與實(shí)際輸出相差9,識(shí)別率為70%。
圖7、圖8是基于雙自適應(yīng)的BP神經(jīng)網(wǎng)絡(luò)收斂圖和預(yù)測(cè)誤差圖。表1是改進(jìn)后的雙自適應(yīng)BP神經(jīng)網(wǎng)絡(luò)30組測(cè)試數(shù)據(jù)融合結(jié)果表。從圖7、圖8中可以看到,基于雙自適應(yīng)BP神經(jīng)網(wǎng)絡(luò)達(dá)到小于設(shè)定誤差0.01 的要求需要12步的訓(xùn)練,比傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的收斂速度更快,網(wǎng)絡(luò)預(yù)測(cè)輸出與實(shí)際輸出相差為2,識(shí)別率為93.3%。

圖7 雙自適應(yīng)BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練收斂圖
通過對(duì)比發(fā)現(xiàn),使用改進(jìn)的數(shù)據(jù)融合算法降低了網(wǎng)絡(luò)的迭代次數(shù),在更短時(shí)間內(nèi)可以把誤差減小到所需要的范圍,網(wǎng)絡(luò)識(shí)別準(zhǔn)確度明顯提高。因此,從實(shí)驗(yàn)結(jié)果數(shù)據(jù)看,改進(jìn)的算法效果更好,更能適合智能手環(huán)快速響應(yīng)、準(zhǔn)確報(bào)警的需求,減少誤判的發(fā)生。

圖8 雙自適應(yīng)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)誤差圖


表1 30組數(shù)據(jù)融合結(jié)果表