王宇星,黃 俊,潘英杰
(重慶郵電大學 通信與信息工程學院, 重慶 400065)E-mail:tydch@foxmail.com
中國近十年的老齡化速度極快,越來越多的家庭成為“4∶2∶1”的家庭模式;即四名老人,兩名中年人和一名青年,但與此同時我國在養(yǎng)老資源上仍有很大的空缺.目前社會上主要的養(yǎng)老方式有居家養(yǎng)老、機構(gòu)養(yǎng)老和社區(qū)養(yǎng)老三種;其中居家養(yǎng)老是最主要的養(yǎng)老方式,其次是機構(gòu)養(yǎng)老和社區(qū)養(yǎng)老.其中,位于養(yǎng)老機構(gòu)的老年人由于長時間與家人分離,并且所處環(huán)境相較于另外兩種養(yǎng)老方式比較封閉,因此更容易出現(xiàn)抑郁、焦慮等負性情緒[1].養(yǎng)老機構(gòu)對老人心理健康關(guān)注度不夠是現(xiàn)階段機構(gòu)養(yǎng)老方式存在的問題之一.
目前,有不少學者和研究人員通過機器學習方法預(yù)測人類的情緒.梅梅和劉穎使用SVM(支持向量機)的方式識別微博的語言情緒并應(yīng)用到旅游推薦中[2];黃中海使用BP神經(jīng)網(wǎng)絡(luò)預(yù)測高校學生可能存在心理疾病[3];郝苗苗和徐秀娟等人使用樸素貝葉斯、支持向量機等多種分類方式對中文微博中的情緒進行分類[4].
人類的情緒受各方面因素的影響,因此情緒存在復(fù)雜性和多變性[5],傳統(tǒng)的線性分類器在預(yù)測人類情緒時效果較差;而神經(jīng)網(wǎng)絡(luò)模擬人類大腦的運行方式,在非線性的分類問題上表現(xiàn)優(yōu)秀,適合處理人類情緒的分類問題.但傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)也存在收斂速度慢,容易陷入局部最優(yōu)的缺陷[6];因此本文根據(jù)傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的不足,提出利用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和初始閾值,建立基于遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型,使得BP神經(jīng)網(wǎng)絡(luò)在預(yù)測養(yǎng)老機構(gòu)老年人負性情緒時能夠以更快的速度找到全局最優(yōu)解,同時提高預(yù)測精度.
本文中使用的神經(jīng)網(wǎng)絡(luò)為多層前饋神經(jīng)網(wǎng)絡(luò)[7](Multilayer Feedforward Neural Network),BP(Back-Propagation)是神經(jīng)網(wǎng)絡(luò)中調(diào)節(jié)權(quán)值和閾值的一種算法;為了方便起見,后面將統(tǒng)一以BP神經(jīng)網(wǎng)絡(luò)代稱.該神經(jīng)網(wǎng)絡(luò)由輸入層、隱藏層(或隱含層)和輸出層組成;其主要特點為信號沿“輸入層—隱藏層—輸出層”的方向正向傳播,而信號誤差則沿著相反的方向傳播.圖1是一個通用的三層BP神經(jīng)網(wǎng)絡(luò)示意圖.
圖1 三層BP神經(jīng)網(wǎng)絡(luò)
有監(jiān)督的BP神經(jīng)網(wǎng)絡(luò)學習過程如下:
1)初始化神經(jīng)網(wǎng)絡(luò),設(shè)置輸入層節(jié)點個數(shù)n,隱藏層節(jié)點個數(shù)l,輸出層節(jié)點個數(shù)m.輸入層到隱藏層的權(quán)值ωij,閾值aj;隱藏層到輸出層的權(quán)值ωjk,偏置bk.學習速率η,設(shè)置激勵函數(shù)g(x),此處激勵函數(shù)使用Sigmoid函數(shù),形式如公式(1)所示;
(1)
2)計算隱藏層的輸出Hj和輸出層的輸出Ok,計算公式如公式(2)所示;
(2)
3)取誤差公式為公式(3),計算誤差E;
(3)
4)根據(jù)BP(Back-Propagation)算法,為使誤差函數(shù)達到最小值,本文使用梯度下降法更新權(quán)值ωij、ωjk和閾值aj、bk,其中權(quán)值的更新公式(4)所示,閾值更新公式(5);
(4)
(5)
5)達到預(yù)先設(shè)定的目標函數(shù)值或者最大學習次數(shù)m,算法結(jié)束.
傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)應(yīng)用非常廣泛,但是為了滿足不同的需求,出現(xiàn)了很多改進方案.齊銀峰,譚榮建使用改進粒子群算法改進BP神經(jīng)網(wǎng)絡(luò)[8],使得BP神經(jīng)能夠以更快的速度收斂;沈夏炯,王龍將人工蜂群算法應(yīng)用到BP神經(jīng)網(wǎng)絡(luò)中,經(jīng)過優(yōu)化之后的BP神經(jīng)網(wǎng)絡(luò)能夠更好的檢測網(wǎng)絡(luò)入侵[9];鐘建偉,劉俊夫使用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),在配電網(wǎng)故障定位方面取得進展[10].對于BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化大多都是根據(jù)不同應(yīng)用場景的需求而有針對性的制定;本文在傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)擬合結(jié)果不理想的情況下,通過分析養(yǎng)老機構(gòu)老年人負性情緒產(chǎn)生的原因,結(jié)合多種優(yōu)化方式的優(yōu)缺點,最終選擇遺傳算法作為優(yōu)化方式.
遺傳算法(Genetic Algorithm,GA)是模擬達爾文生物進化論中自然選擇和遺傳學機理的生物進化過程的計算模型,其特點之一是:由于搜索始于解的一個種群,因此能夠有效避免陷入局部最優(yōu)[11].遺傳算法能夠在搜索過程中自動獲取和積累有關(guān)搜索空間的知識,并自適應(yīng)地控制搜索過程以求得最優(yōu)解.遺傳算法一般過程為先對種群個體進行編碼,初始化種群;然后按照優(yōu)勝劣汰和適者生存的原理,使用選擇函數(shù)挑選個體,最后得出結(jié)論.交叉和變異在選擇時同步進行.
相關(guān)名詞解釋如下:
編碼:編碼可以理解為將種群中所有個體分別設(shè)定唯一的基因組或識別碼.編碼有三大類:二進制編碼、浮點編碼和符號編碼.此處以二進制編碼為例:二進制編碼的染色體有“0”和“1”兩種堿基.
適應(yīng)度函數(shù):也被稱為評價函數(shù),代表種群中個體被選中的概率,函數(shù)值越高則被選中留下的概率越大.
選擇函數(shù):選擇函數(shù)決定存活的個體.常用的選擇函數(shù)有隨機輪盤、精英選擇機制等.一般情況下,適應(yīng)度越高的個體,被選擇函數(shù)選中留下的幾率越大.
交叉:遺傳算法中的交叉操作,也被稱為基因重組;交叉是使得子代不同于父代的關(guān)鍵步驟之一.不同的編碼方式下的交叉操作也不同,此處的編碼方式以二進制編碼為例,簡述交叉操作:二進制編碼下的交叉類似生物體的同源染色體聯(lián)會過程[12],即交換同一位置的編碼,產(chǎn)生新的子類.
變異:遺傳算法中的變異操作,也被稱為基因突變;變異和交叉一樣,都會隨著編碼方式的不同而發(fā)生改變.二進制編碼的變異操作就是堿基有概率從“0”或“1”變?yōu)橄喾吹摹?”或“0”.
由于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)存在收斂速度慢,并且不利于全局尋優(yōu)的缺點,因此本文利用遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò),建立GA-BP神經(jīng)網(wǎng)絡(luò)模型(GA-BP Neural Network Model),預(yù)測養(yǎng)老機構(gòu)中老年人可能存在的負性情緒.主要優(yōu)化方向為優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和閾值,方法為使用遺傳算法替代傳統(tǒng)的學習方法,克服BP神經(jīng)網(wǎng)絡(luò)容易陷入局部最優(yōu)同時收斂速度慢的缺陷.遺傳算法共有4個參數(shù)需要提前設(shè)定,且較為依賴經(jīng)驗,本文選取遺傳算法的參數(shù)為:
交叉率:交叉率影響種群更新的效率.過大會破壞已有的有利模式,錯失最優(yōu)個體,過小不能有效更新種群;本文選取交叉率為90%.
變異率:變異率影響種群多樣性下降速率.變異率過小會導(dǎo)致多樣性下降過快,有缺陷的基因迅速丟失且不容易修補,過大則會導(dǎo)致高階模式的破壞概率增大;本文選取變異率為0.8%.
種群規(guī)模:種群規(guī)模太小會造成病態(tài)基因的出現(xiàn)概率增加,不利于種群進化,太大會造成難以收斂且浪費資源;本文選取種群規(guī)模為50.
進化終止代數(shù):終止代數(shù)主要影響種群的成熟度.過小的終止代數(shù)會導(dǎo)致算法還未收斂,過大的終止代數(shù)可能造成過擬合現(xiàn)象;本文選取終止代數(shù)為100.
利用遺傳算法優(yōu)化的GA-BP神經(jīng)網(wǎng)絡(luò)的具體流程為:
1)初始化遺傳算法的各項參數(shù).
2)初始化種群,對結(jié)構(gòu)進行編碼,隨機生成N個個體,每一個個體代表一個神經(jīng)網(wǎng)絡(luò).
3)將當前代的個體解碼,按照解碼結(jié)果構(gòu)造神經(jīng)網(wǎng)絡(luò).
4)使用預(yù)設(shè)的神經(jīng)網(wǎng)絡(luò)參數(shù)和隨機的連接權(quán)值訓(xùn)練神經(jīng)網(wǎng)絡(luò).
5)根據(jù)訓(xùn)練結(jié)果計算每個個體的適應(yīng)度,選取若干最優(yōu)個體,將基因保留到下一代.
6)使用交叉、變異等處理方法,處理當前代種群,并生成下一代種群.
7)重復(fù)步驟3到步驟6,直到滿足終止條件.
8)利用遺傳算法得到的最優(yōu)個體初始化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值.
9)開始訓(xùn)練BP神經(jīng)網(wǎng)絡(luò),直到滿足終止條件.
利用遺傳算法優(yōu)化GA-BP神經(jīng)網(wǎng)絡(luò)的示意圖如圖2所示.
本文選取北京大學開放研究數(shù)據(jù)平臺的中國健康與養(yǎng)老追蹤調(diào)查數(shù)據(jù)空間(CHARLS)中2008年的追蹤數(shù)據(jù)作為研究數(shù)據(jù),通過去除重復(fù)值、數(shù)據(jù)歸一化和中心化等處理,按照一定比例劃分訓(xùn)練集和測試集.
中國健康與養(yǎng)老追蹤調(diào)查數(shù)據(jù)空間(CHARLS)中2008年的追蹤數(shù)據(jù)共有3047個特征項,包含16954項個案,本文僅采用部分特征項作為輸入項.其中,特征項的選擇采用單總體T檢驗對輸出的負性情緒在所有特征項上進行考察,選取具有正向預(yù)測效果的特征項,其中統(tǒng)計量t和樣本標準偏差s計算公式如公式(6)和公式(7)所示:
(6)
(7)
通過單總體T檢驗最終選出41項特征項作為輸入項,包括性別,年齡,受教育年限等;輸出項采用人工篩選的方式,選取數(shù)據(jù)集中已標識的5個負性情緒作為輸出項,分別為:害怕、焦慮、孤單、悲傷和沮喪.
最終,數(shù)據(jù)集通過去除重復(fù)值、數(shù)據(jù)歸一化和中心化等處理,篩選出9889項個案.其中歸一化的計算公式如公式(8)所示:
(8)
公式(8)中的xi和xj分別為歸一化之前和歸一化之后的特征項,xmax和xmin代表該數(shù)據(jù)空間中xi對應(yīng)特征項的最大值和最小值.
在神經(jīng)網(wǎng)絡(luò)初始化的過程中,為了避免隱藏層節(jié)點數(shù)目過多出現(xiàn)過擬合現(xiàn)象,部分學者采用公式(9)確定隱藏層節(jié)點數(shù):
(9)
其中,Nhid為隱藏層節(jié)點數(shù),Nin為輸入層節(jié)點數(shù),Nout為輸出層節(jié)點數(shù),α∈[1,10].本文中,根據(jù)輸入項數(shù)目和輸出項數(shù)目確定隱藏層節(jié)點數(shù)范圍為[8, 17];為挑選最優(yōu)的隱藏層節(jié)點數(shù),本文采用均方根誤差(Root Mean Square Error,RMSE)作為衡量指標。RMSE的計算公式如公式(10)所示:
(10)
現(xiàn)將所有的GA-BP神經(jīng)網(wǎng)絡(luò)模型獨立運行10次,得出隱藏層節(jié)點數(shù)和RMSE的關(guān)系如圖3所示.由圖3可以看出,當隱藏層節(jié)點數(shù)為11時,每種負性情緒預(yù)測模型輸出的RMSE都能夠取得最小值,說明此時GA-BP神經(jīng)網(wǎng)絡(luò)的性能最優(yōu).
圖3 RMSE與隱含層節(jié)點數(shù)的關(guān)系
為比較不同神經(jīng)網(wǎng)絡(luò)在本文選取數(shù)據(jù)集上的性能差異,筆者選取了基于粒子群優(yōu)化的PSO-BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)作為對比神經(jīng)網(wǎng)絡(luò),比較兩種神經(jīng)網(wǎng)絡(luò)與基于遺傳算法優(yōu)化的GA-BP神經(jīng)網(wǎng)絡(luò)在性能上的差異.神經(jīng)網(wǎng)絡(luò)的部分預(yù)設(shè)參數(shù)取自經(jīng)驗參數(shù),部分參數(shù)根據(jù)不同優(yōu)化算法獲取.神經(jīng)網(wǎng)絡(luò)的學習率取為0.025,迭代次數(shù)取為200,隱藏層節(jié)點數(shù)取為11.
首先比較三種神經(jīng)網(wǎng)絡(luò)在不同訓(xùn)練集比例下的性能差異,現(xiàn)分別選取10%到90%的數(shù)據(jù)作為訓(xùn)練集,將三種BP神經(jīng)網(wǎng)絡(luò)獨立運行10次,以均方根誤差(RMSE)作為衡量指標,得到對比圖如圖4所示.
從圖4中可以看出,隨著訓(xùn)練集比例的上升,RMSE不斷下降,說明訓(xùn)練數(shù)據(jù)集的增加提高了預(yù)測的準確性;同時GA-BP神經(jīng)網(wǎng)絡(luò)在相同比例訓(xùn)練集下的RMSE比傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)更低,與PSO-BP神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)接近,說明GA-BP神經(jīng)網(wǎng)絡(luò)和PSO-BP神經(jīng)網(wǎng)絡(luò)在性能上相較于傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)有較為明顯的提升.
圖4 三種神經(jīng)網(wǎng)絡(luò)在不同比例訓(xùn)練集下的對比
然后對比三者的收斂速率.為比較GA-BP神經(jīng)網(wǎng)絡(luò)、PSO-BP神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)在收斂性上的差異,此處選擇均方誤差(MSE)作為目標函數(shù),均方誤差計算公式如公式(11)所示:
(11)
圖5 收斂性能比較
從圖5可以看出,PSO-BP神經(jīng)網(wǎng)絡(luò)在收斂速度上優(yōu)于GA-BP神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò),這是由于遺傳算法的染色體之間共享信息,整個種群的移動是比較均勻的向最優(yōu)區(qū)域移動.粒子群算法中的粒子是通過當前搜索到的最優(yōu)點進行共享信息,整個搜索過程是跟隨當前最優(yōu)解的過程[13].因此在絕大多數(shù)情況下,粒子群算法比遺傳算法有更快的收斂速度.
最后比較三者在準確性上的差異.現(xiàn)將所有預(yù)處理后的數(shù)據(jù)按照4∶1的比例劃分為訓(xùn)練集和測試集,分別對5種負性情緒進行建模和預(yù)測.表1是三種BP神經(jīng)網(wǎng)絡(luò)在5種負性情緒上的準確性對比.
表1 三種神經(jīng)網(wǎng)絡(luò)準確性對比
由表1可以看出,在預(yù)測害怕和孤單時,三種BP神經(jīng)網(wǎng)絡(luò)的差異并不明顯,但是在預(yù)測另外三種負性情緒時,GA-BP神經(jīng)網(wǎng)絡(luò)相較于其余兩種神經(jīng)網(wǎng)絡(luò)在準確性上有較為明顯的提升,說明GA-BP神經(jīng)網(wǎng)絡(luò)對老年人負性情緒的預(yù)測在準確性上有較為良好的表現(xiàn).
在傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)中,權(quán)值和閾值的初始值對于BP神經(jīng)網(wǎng)絡(luò)的全局尋優(yōu)和收斂速度有極為重要的意義[14].為了提高BP神經(jīng)網(wǎng)絡(luò)的全局尋優(yōu)能力和收斂速度,本文分別選取了遺傳算法和粒子群算法作為提高BP神經(jīng)網(wǎng)絡(luò)全局尋優(yōu)能力和加快收斂速度的優(yōu)化方案.結(jié)果證明,粒子群算法和遺傳算法都能夠提升BP神經(jīng)網(wǎng)絡(luò)的收斂速度,同時避免陷入局部最優(yōu);粒子群優(yōu)化的PSO-BP神經(jīng)網(wǎng)絡(luò)在收斂速度上更快,遺傳算法優(yōu)化的GA-BP神經(jīng)網(wǎng)絡(luò)在準確度上更優(yōu).考慮到養(yǎng)老機構(gòu)對于數(shù)據(jù)實時性要求不高,因此選取遺傳算法作為BP神經(jīng)網(wǎng)絡(luò)在負性情緒預(yù)測上的優(yōu)化方案是目前階段較為良好的選擇.但是由于數(shù)據(jù)集限制,目前只能對5種負性情緒建模;后續(xù)工作將在養(yǎng)老機構(gòu)中實地調(diào)研數(shù)據(jù),同時繼續(xù)學習BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化方式,進一步完善養(yǎng)老機構(gòu)老人的負性情緒預(yù)測系統(tǒng).