王宇星,黃 俊,潘英杰
(重慶郵電大學 通信與信息工程學院, 重慶 400065)E-mail:tydch@foxmail.com
中國近十年的老齡化速度極快,越來越多的家庭成為“4∶2∶1”的家庭模式;即四名老人,兩名中年人和一名青年,但與此同時我國在養老資源上仍有很大的空缺.目前社會上主要的養老方式有居家養老、機構養老和社區養老三種;其中居家養老是最主要的養老方式,其次是機構養老和社區養老.其中,位于養老機構的老年人由于長時間與家人分離,并且所處環境相較于另外兩種養老方式比較封閉,因此更容易出現抑郁、焦慮等負性情緒[1].養老機構對老人心理健康關注度不夠是現階段機構養老方式存在的問題之一.
目前,有不少學者和研究人員通過機器學習方法預測人類的情緒.梅梅和劉穎使用SVM(支持向量機)的方式識別微博的語言情緒并應用到旅游推薦中[2];黃中海使用BP神經網絡預測高校學生可能存在心理疾病[3];郝苗苗和徐秀娟等人使用樸素貝葉斯、支持向量機等多種分類方式對中文微博中的情緒進行分類[4].
人類的情緒受各方面因素的影響,因此情緒存在復雜性和多變性[5],傳統的線性分類器在預測人類情緒時效果較差;而神經網絡模擬人類大腦的運行方式,在非線性的分類問題上表現優秀,適合處理人類情緒的分類問題.但傳統BP神經網絡也存在收斂速度慢,容易陷入局部最優的缺陷[6];因此本文根據傳統BP神經網絡的不足,提出利用遺傳算法優化BP神經網絡的初始權值和初始閾值,建立基于遺傳算法優化的BP神經網絡預測模型,使得BP神經網絡在預測養老機構老年人負性情緒時能夠以更快的速度找到全局最優解,同時提高預測精度.
本文中使用的神經網絡為多層前饋神經網絡[7](Multilayer Feedforward Neural Network),BP(Back-Propagation)是神經網絡中調節權值和閾值的一種算法;為了方便起見,后面將統一以BP神經網絡代稱.該神經網絡由輸入層、隱藏層(或隱含層)和輸出層組成;其主要特點為信號沿“輸入層—隱藏層—輸出層”的方向正向傳播,而信號誤差則沿著相反的方向傳播.圖1是一個通用的三層BP神經網絡示意圖.

圖1 三層BP神經網絡
有監督的BP神經網絡學習過程如下:
1)初始化神經網絡,設置輸入層節點個數n,隱藏層節點個數l,輸出層節點個數m.輸入層到隱藏層的權值ωij,閾值aj;隱藏層到輸出層的權值ωjk,偏置bk.學習速率η,設置激勵函數g(x),此處激勵函數使用Sigmoid函數,形式如公式(1)所示;
(1)
2)計算隱藏層的輸出Hj和輸出層的輸出Ok,計算公式如公式(2)所示;
(2)
3)取誤差公式為公式(3),計算誤差E;
(3)
4)根據BP(Back-Propagation)算法,為使誤差函數達到最小值,本文使用梯度下降法更新權值ωij、ωjk和閾值aj、bk,其中權值的更新公式(4)所示,閾值更新公式(5);

(4)

(5)
5)達到預先設定的目標函數值或者最大學習次數m,算法結束.
傳統的BP神經網絡應用非常廣泛,但是為了滿足不同的需求,出現了很多改進方案.齊銀峰,譚榮建使用改進粒子群算法改進BP神經網絡[8],使得BP神經能夠以更快的速度收斂;沈夏炯,王龍將人工蜂群算法應用到BP神經網絡中,經過優化之后的BP神經網絡能夠更好的檢測網絡入侵[9];鐘建偉,劉俊夫使用遺傳算法優化BP神經網絡,在配電網故障定位方面取得進展[10].對于BP神經網絡的優化大多都是根據不同應用場景的需求而有針對性的制定;本文在傳統BP神經網絡擬合結果不理想的情況下,通過分析養老機構老年人負性情緒產生的原因,結合多種優化方式的優缺點,最終選擇遺傳算法作為優化方式.
遺傳算法(Genetic Algorithm,GA)是模擬達爾文生物進化論中自然選擇和遺傳學機理的生物進化過程的計算模型,其特點之一是:由于搜索始于解的一個種群,因此能夠有效避免陷入局部最優[11].遺傳算法能夠在搜索過程中自動獲取和積累有關搜索空間的知識,并自適應地控制搜索過程以求得最優解.遺傳算法一般過程為先對種群個體進行編碼,初始化種群;然后按照優勝劣汰和適者生存的原理,使用選擇函數挑選個體,最后得出結論.交叉和變異在選擇時同步進行.
相關名詞解釋如下:
編碼:編碼可以理解為將種群中所有個體分別設定唯一的基因組或識別碼.編碼有三大類:二進制編碼、浮點編碼和符號編碼.此處以二進制編碼為例:二進制編碼的染色體有“0”和“1”兩種堿基.
適應度函數:也被稱為評價函數,代表種群中個體被選中的概率,函數值越高則被選中留下的概率越大.
選擇函數:選擇函數決定存活的個體.常用的選擇函數有隨機輪盤、精英選擇機制等.一般情況下,適應度越高的個體,被選擇函數選中留下的幾率越大.
交叉:遺傳算法中的交叉操作,也被稱為基因重組;交叉是使得子代不同于父代的關鍵步驟之一.不同的編碼方式下的交叉操作也不同,此處的編碼方式以二進制編碼為例,簡述交叉操作:二進制編碼下的交叉類似生物體的同源染色體聯會過程[12],即交換同一位置的編碼,產生新的子類.
變異:遺傳算法中的變異操作,也被稱為基因突變;變異和交叉一樣,都會隨著編碼方式的不同而發生改變.二進制編碼的變異操作就是堿基有概率從“0”或“1”變為相反的“1”或“0”.
由于傳統BP神經網絡存在收斂速度慢,并且不利于全局尋優的缺點,因此本文利用遺傳算法優化BP神經網絡,建立GA-BP神經網絡模型(GA-BP Neural Network Model),預測養老機構中老年人可能存在的負性情緒.主要優化方向為優化BP神經網絡的連接權值和閾值,方法為使用遺傳算法替代傳統的學習方法,克服BP神經網絡容易陷入局部最優同時收斂速度慢的缺陷.遺傳算法共有4個參數需要提前設定,且較為依賴經驗,本文選取遺傳算法的參數為:
交叉率:交叉率影響種群更新的效率.過大會破壞已有的有利模式,錯失最優個體,過小不能有效更新種群;本文選取交叉率為90%.
變異率:變異率影響種群多樣性下降速率.變異率過小會導致多樣性下降過快,有缺陷的基因迅速丟失且不容易修補,過大則會導致高階模式的破壞概率增大;本文選取變異率為0.8%.
種群規模:種群規模太小會造成病態基因的出現概率增加,不利于種群進化,太大會造成難以收斂且浪費資源;本文選取種群規模為50.
進化終止代數:終止代數主要影響種群的成熟度.過小的終止代數會導致算法還未收斂,過大的終止代數可能造成過擬合現象;本文選取終止代數為100.
利用遺傳算法優化的GA-BP神經網絡的具體流程為:
1)初始化遺傳算法的各項參數.
2)初始化種群,對結構進行編碼,隨機生成N個個體,每一個個體代表一個神經網絡.
3)將當前代的個體解碼,按照解碼結果構造神經網絡.
4)使用預設的神經網絡參數和隨機的連接權值訓練神經網絡.
5)根據訓練結果計算每個個體的適應度,選取若干最優個體,將基因保留到下一代.
6)使用交叉、變異等處理方法,處理當前代種群,并生成下一代種群.
7)重復步驟3到步驟6,直到滿足終止條件.
8)利用遺傳算法得到的最優個體初始化BP神經網絡的權值和閾值.
9)開始訓練BP神經網絡,直到滿足終止條件.
利用遺傳算法優化GA-BP神經網絡的示意圖如圖2所示.
本文選取北京大學開放研究數據平臺的中國健康與養老追蹤調查數據空間(CHARLS)中2008年的追蹤數據作為研究數據,通過去除重復值、數據歸一化和中心化等處理,按照一定比例劃分訓練集和測試集.
中國健康與養老追蹤調查數據空間(CHARLS)中2008年的追蹤數據共有3047個特征項,包含16954項個案,本文僅采用部分特征項作為輸入項.其中,特征項的選擇采用單總體T檢驗對輸出的負性情緒在所有特征項上進行考察,選取具有正向預測效果的特征項,其中統計量t和樣本標準偏差s計算公式如公式(6)和公式(7)所示:
(6)
(7)

通過單總體T檢驗最終選出41項特征項作為輸入項,包括性別,年齡,受教育年限等;輸出項采用人工篩選的方式,選取數據集中已標識的5個負性情緒作為輸出項,分別為:害怕、焦慮、孤單、悲傷和沮喪.
最終,數據集通過去除重復值、數據歸一化和中心化等處理,篩選出9889項個案.其中歸一化的計算公式如公式(8)所示:
(8)
公式(8)中的xi和xj分別為歸一化之前和歸一化之后的特征項,xmax和xmin代表該數據空間中xi對應特征項的最大值和最小值.
在神經網絡初始化的過程中,為了避免隱藏層節點數目過多出現過擬合現象,部分學者采用公式(9)確定隱藏層節點數:
(9)
其中,Nhid為隱藏層節點數,Nin為輸入層節點數,Nout為輸出層節點數,α∈[1,10].本文中,根據輸入項數目和輸出項數目確定隱藏層節點數范圍為[8, 17];為挑選最優的隱藏層節點數,本文采用均方根誤差(Root Mean Square Error,RMSE)作為衡量指標。RMSE的計算公式如公式(10)所示:
(10)

現將所有的GA-BP神經網絡模型獨立運行10次,得出隱藏層節點數和RMSE的關系如圖3所示.由圖3可以看出,當隱藏層節點數為11時,每種負性情緒預測模型輸出的RMSE都能夠取得最小值,說明此時GA-BP神經網絡的性能最優.

圖3 RMSE與隱含層節點數的關系
為比較不同神經網絡在本文選取數據集上的性能差異,筆者選取了基于粒子群優化的PSO-BP神經網絡和傳統BP神經網絡作為對比神經網絡,比較兩種神經網絡與基于遺傳算法優化的GA-BP神經網絡在性能上的差異.神經網絡的部分預設參數取自經驗參數,部分參數根據不同優化算法獲取.神經網絡的學習率取為0.025,迭代次數取為200,隱藏層節點數取為11.
首先比較三種神經網絡在不同訓練集比例下的性能差異,現分別選取10%到90%的數據作為訓練集,將三種BP神經網絡獨立運行10次,以均方根誤差(RMSE)作為衡量指標,得到對比圖如圖4所示.
從圖4中可以看出,隨著訓練集比例的上升,RMSE不斷下降,說明訓練數據集的增加提高了預測的準確性;同時GA-BP神經網絡在相同比例訓練集下的RMSE比傳統的BP神經網絡更低,與PSO-BP神經網絡數據接近,說明GA-BP神經網絡和PSO-BP神經網絡在性能上相較于傳統BP神經網絡有較為明顯的提升.

圖4 三種神經網絡在不同比例訓練集下的對比
然后對比三者的收斂速率.為比較GA-BP神經網絡、PSO-BP神經網絡和傳統BP神經網絡在收斂性上的差異,此處選擇均方誤差(MSE)作為目標函數,均方誤差計算公式如公式(11)所示:
(11)


圖5 收斂性能比較
從圖5可以看出,PSO-BP神經網絡在收斂速度上優于GA-BP神經網絡與傳統BP神經網絡,這是由于遺傳算法的染色體之間共享信息,整個種群的移動是比較均勻的向最優區域移動.粒子群算法中的粒子是通過當前搜索到的最優點進行共享信息,整個搜索過程是跟隨當前最優解的過程[13].因此在絕大多數情況下,粒子群算法比遺傳算法有更快的收斂速度.
最后比較三者在準確性上的差異.現將所有預處理后的數據按照4∶1的比例劃分為訓練集和測試集,分別對5種負性情緒進行建模和預測.表1是三種BP神經網絡在5種負性情緒上的準確性對比.

表1 三種神經網絡準確性對比
由表1可以看出,在預測害怕和孤單時,三種BP神經網絡的差異并不明顯,但是在預測另外三種負性情緒時,GA-BP神經網絡相較于其余兩種神經網絡在準確性上有較為明顯的提升,說明GA-BP神經網絡對老年人負性情緒的預測在準確性上有較為良好的表現.
在傳統的BP神經網絡中,權值和閾值的初始值對于BP神經網絡的全局尋優和收斂速度有極為重要的意義[14].為了提高BP神經網絡的全局尋優能力和收斂速度,本文分別選取了遺傳算法和粒子群算法作為提高BP神經網絡全局尋優能力和加快收斂速度的優化方案.結果證明,粒子群算法和遺傳算法都能夠提升BP神經網絡的收斂速度,同時避免陷入局部最優;粒子群優化的PSO-BP神經網絡在收斂速度上更快,遺傳算法優化的GA-BP神經網絡在準確度上更優.考慮到養老機構對于數據實時性要求不高,因此選取遺傳算法作為BP神經網絡在負性情緒預測上的優化方案是目前階段較為良好的選擇.但是由于數據集限制,目前只能對5種負性情緒建模;后續工作將在養老機構中實地調研數據,同時繼續學習BP神經網絡的優化方式,進一步完善養老機構老人的負性情緒預測系統.