林 鋼,季 薇
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
帕金森病(Parkinson’s disease,PD)是常見(jiàn)的神經(jīng)退行性疾病之一,主要是由于中腦黑質(zhì)致密部多巴胺能神經(jīng)元變異以及殘存神經(jīng)元細(xì)胞多巴胺生物合成能力下降導(dǎo)致紋狀體區(qū)多巴胺缺乏引起的。據(jù)流行病學(xué)調(diào)查,國(guó)內(nèi)帕金森病患者自2001年就已經(jīng)達(dá)到200萬(wàn)人,約占全球的65%[1]。據(jù)國(guó)際數(shù)據(jù)統(tǒng)計(jì),這一數(shù)字正以每年10萬(wàn)人的速度持續(xù)增長(zhǎng),預(yù)計(jì)到2030年國(guó)內(nèi)患帕金森病的人數(shù)將達(dá)到500萬(wàn)[2]。然而,由于帕金森病是神經(jīng)系統(tǒng)疾病,對(duì)其診斷具有極大的難度,主要依賴于權(quán)威專家多年的臨床經(jīng)驗(yàn)[3]。同時(shí),帕金森的診斷和治療,需要患者按時(shí)前往醫(yī)院進(jìn)行詳細(xì)的檢查。這不僅給患者,尤其是老年患者帶來(lái)了不便,同時(shí)也給醫(yī)師帶來(lái)了巨大的工作量。隨著國(guó)內(nèi)老年化進(jìn)程的加深,現(xiàn)急需通過(guò)計(jì)算機(jī)技術(shù)開(kāi)發(fā)一款費(fèi)用低廉,可以應(yīng)用于基層醫(yī)療服務(wù)的自助診療系統(tǒng)[4]。
研究表明,大約90%的帕金森癥患者都會(huì)患有某種程度的語(yǔ)音障礙,因此,直接通過(guò)非接觸式的方法采集語(yǔ)音進(jìn)行研究,如陣列式麥克風(fēng)等,相比較其他診斷方法更加方便有效[5-6]。這使得基于語(yǔ)音的帕金森診療方案的研究得到了極大關(guān)注。Titze等分析了不同性別的人在20~90歲時(shí)基頻的變換情況,認(rèn)為可以使用患者的語(yǔ)音特征,結(jié)合機(jī)器學(xué)習(xí)算法來(lái)解決帕金森病的診療方案探索的問(wèn)題[7]。隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,近年來(lái),人們應(yīng)用了許多基于機(jī)器學(xué)習(xí)算法研究帕金森病的診療方案,以求能徹底取代臨床決策。這些診療方案主要?dú)w為兩類:(1)判斷用戶是否患有帕金森病,即實(shí)現(xiàn)帕金森病的診斷[8-10],常見(jiàn)的是基于數(shù)據(jù)線性可分與非線性可分,應(yīng)用線性SVM和非線性SVM[11]進(jìn)行研究;(2)預(yù)測(cè)帕金森病患者病情嚴(yán)重等級(jí),即通過(guò)預(yù)測(cè)UPDRS(unified Parkinson’s disease rating scale)實(shí)現(xiàn)帕金森病進(jìn)展跟蹤[12-14]。
對(duì)于預(yù)測(cè)帕金森病患者病情的嚴(yán)重等級(jí)這一問(wèn)題,主要是采用回歸預(yù)測(cè)算法將提取的語(yǔ)音特征映射為UPDRS。目前國(guó)際上普遍采用UPDRS衡量帕金森癥病情的嚴(yán)重性,主要涉及三方面內(nèi)容:(1)精神、行為和情緒(1~4),用于測(cè)量患者的生理或心理狀況;(2)日常活動(dòng)(5~17),用于測(cè)量帕金森癥患者能否在無(wú)協(xié)助狀態(tài)下完成日常生活;(3)運(yùn)動(dòng)癥狀(18~44),用于測(cè)量身體肌肉狀況??偟膩?lái)說(shuō),UPDRS總共含有44項(xiàng)測(cè)試內(nèi)容,每項(xiàng)評(píng)測(cè)結(jié)果分為0~4個(gè)等級(jí),其中0表示健康,4表示嚴(yán)重,采用這三項(xiàng)測(cè)量的總評(píng)分,即total-updrs,作為病情的總體衡量標(biāo)準(zhǔn)。其中,第三項(xiàng)包含了帕金森癥的大部分癥狀[13],采用此測(cè)量評(píng)分,即motor-updrs,作為病人運(yùn)動(dòng)能力的衡量標(biāo)準(zhǔn)。
Tsanas等使用了各種語(yǔ)音信號(hào)處理算法提取了相關(guān)病理特征,并利用LS(least squares)和CART(classification and regression tree)來(lái)預(yù)測(cè)帕金森癥患者的motor-UPDRS和total-UPDRS值[12,15]。然而,在開(kāi)發(fā)安卓應(yīng)用預(yù)測(cè)UPDRS的過(guò)程中發(fā)現(xiàn)預(yù)測(cè)結(jié)果的正確率較低,原因是傳統(tǒng)的機(jī)器學(xué)習(xí)方法需要假設(shè)數(shù)據(jù)是同分布的[16],該假設(shè)忽略了不同年齡的男性和女性的語(yǔ)音樣本之間存在差異性的事實(shí)。文獻(xiàn)[13]中證明了帕金森病對(duì)男性患者和女性患者語(yǔ)音的影響有著明顯的不同。對(duì)此,文中首先分析了樣本之間的差異性是如何影響預(yù)測(cè)模型建立的,然后對(duì)UPDRS進(jìn)行回歸預(yù)測(cè)的問(wèn)題做了進(jìn)一步的研究分析,提出了根據(jù)性別和年齡的先驗(yàn)知識(shí)進(jìn)行UPDRS預(yù)測(cè)模型的分解,并對(duì)分解的模型分別進(jìn)行模型重構(gòu)。其次,考慮到遠(yuǎn)程帕金森數(shù)據(jù)集共包含5 875個(gè)語(yǔ)音樣本,數(shù)據(jù)規(guī)模較大,因此模型重構(gòu)采用集成學(xué)習(xí)算法GBDT。最后,通過(guò)與傳統(tǒng)的LS與CART算法進(jìn)行仿真實(shí)驗(yàn)比較。
文中使用了UCI中的遠(yuǎn)程帕金森數(shù)據(jù)集,該數(shù)據(jù)集包含42位患有帕金森病的語(yǔ)音樣本,樣本源于每周對(duì)患者采集1次持續(xù)元音/a/的語(yǔ)音,每次采集6條,持續(xù)時(shí)間6個(gè)月,共計(jì)5 875條樣本。通過(guò)語(yǔ)音信號(hào)處理算法,從這些語(yǔ)音樣本中提取的特征數(shù)總共為16個(gè),其中衡量基頻變化的特征有:跳動(dòng)Jitter(%)、跳動(dòng)絕對(duì)值Jitter(Abs)、相對(duì)幅度攝動(dòng)Jitter:RAP、5點(diǎn)周期攝動(dòng)熵Jitter:PPQ5、周期絕對(duì)差與平均周期比Jitter:DDP;衡量振幅變化的特征有:局部閃爍Shimmer、局部閃爍(dB)Shimmer(dB)、3點(diǎn)幅度攝動(dòng)熵Shimmer:APQ3、5點(diǎn)幅度攝動(dòng)熵Shimmer:APQ5、11點(diǎn)幅度攝動(dòng)熵Shimmer:APQ11、相鄰周期幅度差的平均絕對(duì)差Shimmer:DDA;噪聲諧波比NHR;諧波噪聲比HNR;循環(huán)周期密度熵RPDE;趨勢(shì)波動(dòng)分析DFA;基音周期熵PPE,最終得到5 875 *16的樣本集。
計(jì)算機(jī)可以通過(guò)機(jī)器學(xué)習(xí)構(gòu)建各種學(xué)習(xí)模型,來(lái)解決相同或相近的問(wèn)題。然而,良好的學(xué)習(xí)模型的建立,除了依靠合適的算法,計(jì)算機(jī)的計(jì)算能力,還需要針對(duì)數(shù)據(jù)集做數(shù)據(jù)的預(yù)處理。文獻(xiàn)[15]中利用UCI中的遠(yuǎn)程帕金森數(shù)據(jù)集,使用LS進(jìn)行預(yù)測(cè)模型的訓(xùn)練,取得了一定的預(yù)測(cè)效果。文中以兩個(gè)存在差異性的數(shù)據(jù)集為例,使用普通最小二乘法(ordinary least squares)訓(xùn)練出一個(gè)回歸預(yù)測(cè)模型model 3,如圖1所示??紤]到樣本數(shù)據(jù)分布情況,很顯然model 3為了擬合兩個(gè)不同域的對(duì)象樣本做了折中,該模型的真實(shí)預(yù)測(cè)效果并不是很理想。
回歸模型的學(xué)習(xí),是通過(guò)計(jì)算對(duì)所有數(shù)據(jù)的預(yù)測(cè)值和真實(shí)值之間的平方誤差,并對(duì)誤差進(jìn)行累加使得正差值和負(fù)差值相互抵消。這樣會(huì)導(dǎo)致在分布不同,即域不同的樣本數(shù)據(jù)集上做回歸預(yù)測(cè),卻能得到相同的模型。數(shù)據(jù)集分布的概念比較復(fù)雜,總的來(lái)說(shuō),每個(gè)種類的樣本數(shù)量,應(yīng)該有利于模型的建立和評(píng)價(jià)。根據(jù)安卡姆剃刀原理[17]:在模型的選擇時(shí),能夠很好地解釋已知數(shù)據(jù)并且十分簡(jiǎn)單的模型才是最合適的模型。分析遠(yuǎn)程帕金森數(shù)據(jù)集,在這兩個(gè)對(duì)象上建立的model 3顯然是欠擬合的,但如果將兩個(gè)對(duì)象按照一定的先驗(yàn)知識(shí)劃分成兩個(gè)域的數(shù)據(jù),然后在兩個(gè)域上對(duì)原模型進(jìn)行分解,那么在兩個(gè)域上分別建立起的model 1和model 2則能很好地?cái)M合各自域中的數(shù)據(jù),如圖1所示。因此,按照對(duì)象的性別和年齡來(lái)劃分?jǐn)?shù)據(jù)集,并在不同的數(shù)據(jù)集上分別建立起預(yù)測(cè)模型以達(dá)到有效的模型分解。在實(shí)際應(yīng)用中,采集到用戶的語(yǔ)音,并根據(jù)用戶的年齡和性別,通過(guò)推薦系統(tǒng)給出合適的模型,實(shí)現(xiàn)對(duì)用戶的UPDRS的預(yù)測(cè),其原理如圖2所示。
圖1 回歸訓(xùn)練模型
圖2 實(shí)現(xiàn)流程
集成學(xué)習(xí)能夠顯著提高學(xué)習(xí)系統(tǒng)的泛化能力,受到了機(jī)器學(xué)習(xí)界的廣泛關(guān)注[18]。GBDT是由Jerome Friedman于1997年提出的,并1999年重新改進(jìn)后應(yīng)用于回歸預(yù)測(cè)的問(wèn)題中[19-20]。隨后,GBDT回歸算法因性能突出吸引了大批學(xué)者的關(guān)注,陳天奇博士針對(duì)GBDT的眾多改進(jìn),對(duì)GBDT算法進(jìn)行了總結(jié)和優(yōu)化,得到了XGboost算法[21]。Apache Spark已將GBDT回歸算法封裝到Mllib庫(kù)中,使得在Spark平臺(tái)上使用GBDT做回歸預(yù)測(cè)更加方便。
GBDT屬于集成學(xué)習(xí)算法,由多個(gè)弱學(xué)習(xí)器組合產(chǎn)生一個(gè)強(qiáng)學(xué)習(xí)器。該算法由多棵決策樹(shù)持續(xù)迭代而成,通過(guò)迭代使得所有樹(shù)的預(yù)測(cè)結(jié)論和殘差等于或趨近于0為止,最終得到一個(gè)高準(zhǔn)確度的預(yù)測(cè)模型。
假設(shè)初始得到的學(xué)習(xí)器為:
(1)
首先根據(jù)當(dāng)前數(shù)據(jù),使得損失函數(shù)最小,得到初始化損失函數(shù)模型。迭代次數(shù)設(shè)定為M,每次迭代產(chǎn)生一個(gè)模型,為了讓每次迭代生成的模型對(duì)訓(xùn)練集的損失函數(shù)最小,根據(jù)式1,每次迭代時(shí)通過(guò)向損失函數(shù)的負(fù)梯度方向移動(dòng)來(lái)使得損失函數(shù)越來(lái)越小,就可以得到越來(lái)越精確的模型。算法迭代的主要步驟如下:
第一步,計(jì)算殘差ri1。
用初始模型F0(x)計(jì)算出負(fù)梯度,如式2。損失函數(shù)的負(fù)梯度對(duì)于當(dāng)前模型F0(x)的值作為殘差。對(duì)于平方損失函數(shù)該值是殘差,對(duì)一般損失函數(shù),該值是殘差的估計(jì)值。
(2)
第二步,訓(xùn)練出一個(gè)基學(xué)習(xí)器。
第三步,尋找合適的步長(zhǎng)。
在GBDT算法中用到的梯度下降,步長(zhǎng)是通過(guò)計(jì)算得到的。計(jì)算規(guī)則是使得到的新學(xué)習(xí)器的F1(x)損失函數(shù)β1值最小。
(3)
第四步,根據(jù)梯度和步長(zhǎng),迭代得到回歸樹(shù)模型F1(x),如式4所示。
F1(x)=F0(x)+β1h1(x)
(4)
通過(guò)上面四個(gè)步驟,就可以從初始模型F0(x)優(yōu)化得到第二個(gè)模型F1(x),迭代M-1次這四個(gè)步驟,就可以得到最終的GBDT模型。
2.1.1 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理一般包括特征選擇、數(shù)據(jù)清洗等操作。
特征選擇是指從原始的特征集中選出部分重要特征組成的子集。特征選擇能夠除去冗余的或不相關(guān)的特征,以達(dá)到提高模型泛化能力的目的[22]。文中使用的特征選擇算法是ReliefF[23]。最早提出的Relief算法用來(lái)解決二分類的問(wèn)題,該算法設(shè)計(jì)了一個(gè)相關(guān)統(tǒng)計(jì)向量來(lái)評(píng)估每個(gè)特征的重要程度,向量的每個(gè)分量是對(duì)其中一個(gè)初始特征的評(píng)價(jià)值,特征子集的重要性為子集中所有特征的相關(guān)統(tǒng)計(jì)量之和,這個(gè)相關(guān)統(tǒng)計(jì)量被視為是每個(gè)特征的權(quán)值,即ReliefF屬于一種特征權(quán)重算法。公式如下:
W(fj)=
(5)
其中,W(fj)表示第j個(gè)特征擁有的權(quán)重;q表示隨機(jī)選擇的樣本數(shù)量;Xi表示一個(gè)數(shù)據(jù)樣本,|NH(Xi)|表示離樣本Xi最近的同類樣本數(shù)量,|NM(Xi)|表示離該樣本Xi最近的不同類樣本數(shù)量;‖ · ‖表示距離測(cè)度,常用歐氏距離或曼哈頓距離。
文中用ReliefF算法得到特征權(quán)重,并根據(jù)權(quán)重對(duì)特征進(jìn)行重要性排序,選取排在前面的13個(gè)重要特征。
在完成了特征選擇之后,并不能將數(shù)據(jù)直接用于計(jì)算,很多情況下需要對(duì)數(shù)據(jù)進(jìn)行一些基本的處理。這些基本的處理包括缺失值的處理、非數(shù)字形式的特征值處理、異常值的處理等等,遠(yuǎn)程帕金森數(shù)據(jù)集已經(jīng)進(jìn)行過(guò)數(shù)據(jù)的清洗。
2.1.2 基于性別信息的數(shù)據(jù)劃分
帕金森疾病對(duì)不同年齡的男性患者和女性患者語(yǔ)音的影響有著明顯不同,將性別和年齡信息作為先驗(yàn)知識(shí),對(duì)UPDRS回歸預(yù)測(cè)問(wèn)題進(jìn)行進(jìn)一步分解。首先,按照性別將數(shù)據(jù)集分成兩個(gè)子集,其中男性28個(gè)對(duì)象共計(jì)4 008條樣本,女性14個(gè)對(duì)象共計(jì)1 867條樣本。然后,根據(jù)年齡再次劃分?jǐn)?shù)據(jù)集,最終分為6組:女性<60歲756條樣本,女性60~70歲573條樣本,女性>70歲538條樣本;男性<60歲1 121條樣本,男性60~70歲1 554條樣本,男性>70歲1 333條樣本。
通過(guò)對(duì)數(shù)據(jù)集的劃分,得到了6組數(shù)據(jù)集,使用GBDT算法在這6個(gè)數(shù)據(jù)集上分別進(jìn)行模型訓(xùn)練,最終會(huì)得到6個(gè)來(lái)自不同域的模型。在實(shí)際系統(tǒng)的應(yīng)用階段,當(dāng)用戶自助采集語(yǔ)音時(shí),會(huì)將用戶的性別和年齡信息作為標(biāo)簽進(jìn)行存儲(chǔ)。然后對(duì)用戶采集的語(yǔ)音提取13維特征作為輸入,根據(jù)標(biāo)簽信息為用戶推薦一個(gè)域匹配的模型,最終輸出預(yù)測(cè)的UPDRS值。設(shè)A、B、C、D、E、F分別代表男性60歲以下、男性60歲至70歲、男性70歲以上、女性60歲以下、女性60歲至70歲、女性70歲以上。使用100棵決策樹(shù)用于模型的訓(xùn)練,并設(shè)置每棵樹(shù)默認(rèn)的葉子節(jié)點(diǎn)數(shù)是64個(gè),為了避免出現(xiàn)過(guò)擬合的現(xiàn)象,規(guī)定每個(gè)節(jié)點(diǎn)樣本數(shù)不得少于30個(gè)。以A組為例,選取該組中任意一個(gè)對(duì)象的前1/3的數(shù)據(jù)作為測(cè)試集,剩余數(shù)據(jù)和該組的其他對(duì)象的數(shù)據(jù)作為訓(xùn)練集訓(xùn)練模型[24],最后通過(guò)訓(xùn)練所得的模型得出預(yù)測(cè)值,使用預(yù)測(cè)值和真實(shí)值的MAE作為衡量模型訓(xùn)練效果的評(píng)價(jià)準(zhǔn)則。
將GBDT應(yīng)用到經(jīng)過(guò)預(yù)處理得到的遠(yuǎn)程帕金森數(shù)據(jù)集以及更進(jìn)一步劃分得到的6組遠(yuǎn)程帕金森數(shù)據(jù)集上??紤]到Tsanas等未進(jìn)行分組實(shí)驗(yàn),因此在對(duì)比實(shí)驗(yàn)中,對(duì)分組實(shí)驗(yàn)的仿真結(jié)果進(jìn)行了匯總,并將對(duì)42個(gè)對(duì)象的仿真分為兩組顯示,如圖3和圖4所示。
圖3 遠(yuǎn)程帕金森數(shù)據(jù)集上對(duì)motor-UPDRS預(yù)測(cè)的MAE
圖4 遠(yuǎn)程帕金森數(shù)據(jù)集上對(duì)total-UPDRS預(yù)測(cè)的MAE
觀察建立的模型在不同對(duì)象上進(jìn)行motor-updrs和total-updrs的預(yù)測(cè)結(jié)果,可以看出,對(duì)絕大部分對(duì)象預(yù)測(cè)的表現(xiàn)上,GBDT總是比LS和CART的誤差更小。使用GBDT在6個(gè)小組上預(yù)測(cè)motor-updrs的MAE是:3.589 2、2.954 4、3.567 0、4.345 4、4.000 3、3.236 9;預(yù)測(cè)total-updrs的MAE是:4.308 0、4.471 5、4.612 3、5.461 9、4.080 5、3.665 5。
使用LS預(yù)測(cè)motor-updrs的MAE是7.461,預(yù)測(cè)total-updrs的MAE是9.409;使用CART預(yù)測(cè)motor-updrs的MAE是7.497,預(yù)測(cè)total-updrs的MAE是9.645;使用GBDT預(yù)測(cè)motor-updrs的MAE是3.532,預(yù)測(cè)total-updrs的MAE是4.500。分析可知,將性別和年齡作為先驗(yàn)知識(shí)融入到GBDT,實(shí)現(xiàn)對(duì)統(tǒng)一帕金森評(píng)定量表UPDRS的預(yù)測(cè)相比傳統(tǒng)的LS和CART,最低提高motor-updrs的預(yù)測(cè)準(zhǔn)確率52.89%,最低提高total-updrs的預(yù)測(cè)準(zhǔn)確率52.19%。實(shí)驗(yàn)結(jié)果驗(yàn)證了基于性別和年齡的組合進(jìn)行預(yù)測(cè)模型的分解,并在各自域上進(jìn)行模型重構(gòu),能夠有效提高UPDRS預(yù)測(cè)的準(zhǔn)確率。
將集成學(xué)習(xí)方法迭代決策樹(shù)GBDT應(yīng)用到遠(yuǎn)程帕金森數(shù)據(jù)集中,實(shí)現(xiàn)了對(duì)UPDRS的預(yù)測(cè)。考慮到性別和年齡對(duì)帕金森病的影響,把數(shù)據(jù)集按照性別和年齡進(jìn)一步做了劃分,并在各集合上采用GBDT算法進(jìn)行預(yù)測(cè)模型的訓(xùn)練,最后采用模型推薦進(jìn)行最佳預(yù)測(cè)模型匹配。實(shí)驗(yàn)結(jié)果表明,最終得到的預(yù)測(cè)效果較普通決策樹(shù)效果提高了一半有余,同時(shí)也進(jìn)一步驗(yàn)證了帕金森病受年齡和性別的影響較大。性別和年齡屬于先驗(yàn)知識(shí),使用這些先驗(yàn)知識(shí)來(lái)分解預(yù)測(cè)模型,不但簡(jiǎn)單高效,而且具有一定的現(xiàn)實(shí)指導(dǎo)意義。當(dāng)然,除性別外,生活中還存在許多其他的先驗(yàn)知識(shí),如患者的健康狀況等,對(duì)于進(jìn)一步提高帕金森病UPDRS預(yù)測(cè)的準(zhǔn)確率,發(fā)現(xiàn)更多有用的先驗(yàn)知識(shí)是重要的研究工作。