張嘉琪,張月琴,陳健
(太原理工大學(xué)信息與計算機學(xué)院,山西晉中 030600)
中醫(yī)是我國的傳統(tǒng)醫(yī)學(xué),脈診是中醫(yī)理論中始創(chuàng)于公元前的獨特疾病診斷方法之一,李時珍所著的《瀕湖脈學(xué)》通過七言詩對脈象特征進行了簡潔、形象的描述。目前脈診多通過醫(yī)生的主觀觸感來實現(xiàn),由于缺乏脈象識別的統(tǒng)一標(biāo)準(zhǔn),同一個病人可能會被診斷出不同的脈象;而且醫(yī)生通常以自己的呼吸作為時間單位來計算病人的脈搏[1]。所以,如何用現(xiàn)代技術(shù)獲得脈象的特征,并依此特征客觀準(zhǔn)確地診斷疾病成為受關(guān)注的研究課題。
最早記載脈診的是《史記》,敘述了春秋時期扁鵲善于望、聞、問、切而成為當(dāng)時的名醫(yī),其中“切”即切脈,也就是脈診[2]。除此之外,從春秋時期的《黃帝內(nèi)經(jīng)》《難經(jīng)》等,到東漢時期的具有傳世意義的《傷寒雜病論》,再到之后的《脈經(jīng)》《瀕湖脈學(xué)》等,中醫(yī)診脈在我國的歷史長河中已傳世兩千多年[3]。在古代,為了方便老百姓就醫(yī)看病,記載最多的方法就是“賜藥”。尤其是在宋元時期,“賜藥”的實例更多:如在南宋朝廷給京城臨安的居民送藥;宋高宗時期要求派出醫(yī)官為百姓看病巡診開方治?。凰涡⒆跁r期要求大多數(shù)的醫(yī)官挨家挨戶巡診百姓并發(fā)放藥品。當(dāng)時,受地理條件、交通能力的制約,能夠受此恩澤的百姓仍然有限。而今,雖然醫(yī)學(xué)有了更大的發(fā)展,但由于多種多樣的原因,看病難的問題依然存在。在互聯(lián)網(wǎng)高度發(fā)展的今天,人們已通過互聯(lián)網(wǎng)做到千里診病,其中最常見的就是電子病歷、遠(yuǎn)程會診、遠(yuǎn)程護理等新科技的產(chǎn)物[4]。對于脈診,也已出現(xiàn)通過脈象儀與人體的接觸,獲取脈象的信息進而繪制成脈象波形圖,之后通過這些信息和脈象波形圖并依據(jù)中醫(yī)脈診知識進行數(shù)據(jù)分析,推斷出具體的脈象進而診斷測試者的身體狀況。因此,脈診的準(zhǔn)確率直接關(guān)系到診斷的準(zhǔn)確率,既降低資源和時間的消耗,也有助于高效準(zhǔn)確的科學(xué)脈診。
針對上述問題,本文提出了一種以脈象圖分析法為指導(dǎo)思想,以強化學(xué)習(xí)為框架,融和馬爾可夫決策和蒙特卡羅搜索(Monte Carlo Search,MCS)算法的脈象診斷方法,以達到減少訓(xùn)練數(shù)據(jù)集和訓(xùn)練學(xué)習(xí)時間,對整個診斷過程進行可視化的解釋說明并提高準(zhǔn)確率的目標(biāo)。
目前的脈象識別研究大多采用脈象信號、脈象波形圖以及脈象圖譜的特征參數(shù)作為研究數(shù)據(jù),并采用深度學(xué)習(xí)的方法進行數(shù)據(jù)挖掘,最終對脈象進行識別判斷。脈象圖是脈象的重要描述工具,它形象地展現(xiàn)出心臟循環(huán)脈動對血管造成擠壓、變形及振動而形成實時的變化,通過具體的10 個特征參數(shù)用數(shù)字來精準(zhǔn)描述脈象。同理脈象圖譜則是通過8 個不同的圖譜參數(shù)來反映脈象的實時特征。中醫(yī)脈象是一種受多種因素影響的不平穩(wěn)的周期信號,脈象圖的變化常常會由未知原因在短時間內(nèi)迅速發(fā)生變化,內(nèi)含未知的模糊邊界,加之脈象的生成機制尚不完全明確,因此對脈象信號的分析研究仍不能對中醫(yī)脈診進行定性分析的研究[5]。中醫(yī)脈診要參照人手動脈的寸、關(guān)、尺等部位的脈搏信號進行全面分析診斷,而脈象信號圖缺乏對脈象典型特點的定性分析和脈位、脈數(shù)、脈形、脈勢的準(zhǔn)確信息[5]。因此對脈位、脈數(shù)、脈形、脈勢等脈象特征進行定量并作為客觀、科學(xué)的脈象分析的重要參考特征成為研究的主要內(nèi)容之一。
針對脈象波形圖的分析方法,目前有采用支持向量機、隨機森林等淺層機器學(xué)模型以及反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network,BPNN)、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)以及概率神經(jīng)網(wǎng)絡(luò)(Probabilistic Neural Network,PNN)等深度學(xué)習(xí)模型。郭紅霞等[6]將PNN 方法和脈象圖譜數(shù)據(jù)運用到了脈象識別,PNN 相較其他神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)過程簡單,訓(xùn)練速度更快,適合分類,表現(xiàn)出較好的容錯性;利用相同的數(shù)據(jù),李磊[7]使用三層BPNN 對脈象進行識別分析。陳星池等[8]利用脈搏波信號數(shù)據(jù),將極限學(xué)習(xí)機(Extreme Learning Machine,ELM)、BPNN 和支持向量機進行脈象識別的對比;郭彥杰[9]、胡楊生[10]分別在eox 移動智能血氧監(jiān)測儀器獲得脈搏波形數(shù)據(jù)集,使用RNN和CNN進行了脈象識別的研究,RNN 的時序性特征適用于通過脈搏波的變化過程對脈象進行分類識別;顏建軍等[11]使用了Z-BOXI型脈象數(shù)字化采集分析儀獲得的冠心病脈象數(shù)據(jù),并利用遞歸圖、CNN對健康脈象和冠心病脈象進行了區(qū)分研究。
從現(xiàn)有脈象識別的研究來看,神經(jīng)網(wǎng)絡(luò)類的方法都有效達到了良好的識別效果。神經(jīng)網(wǎng)絡(luò)等深度學(xué)習(xí)算法存在一些可待改善的地方:1)神經(jīng)網(wǎng)絡(luò)類算法需要進行數(shù)據(jù)訓(xùn)練,這需要大量的標(biāo)記數(shù)據(jù);2)訓(xùn)練過程缺乏可解釋性等問題,難以說明所以然的問題仍然存在;3)大量訓(xùn)練導(dǎo)致的數(shù)據(jù)處理時間較長,開發(fā)框架相對復(fù)雜,對環(huán)境有較高的要求。因此,本文針對以上三個問題提出相應(yīng)的解決方法:在中醫(yī)診脈的理論基礎(chǔ)上,結(jié)合強化學(xué)習(xí)的理論知識,根據(jù)數(shù)據(jù)特征和脈診過程選擇了強化學(xué)習(xí)方案。其中,馬爾可夫決策被用于描述脈象數(shù)據(jù)間的關(guān)系,蒙特卡羅搜索被用于強化學(xué)習(xí)的獎勵策略。強化學(xué)習(xí),是一種通過交互的目標(biāo)導(dǎo)向?qū)W習(xí)的方法,不斷探索與試錯,利用基于正/負(fù)獎勵的方式進行學(xué)習(xí),而馬爾可夫決策過程則是用于模擬這個學(xué)習(xí)過程,蒙特卡羅搜索通過求解學(xué)習(xí)過程并獲得最優(yōu)策略。該方法是一種自我學(xué)習(xí)過程,不需要大量訓(xùn)練數(shù)據(jù)集,且識別過程可解釋,處理時間相對較少。
脈象識別相關(guān)研究多對訓(xùn)練數(shù)據(jù)集有較高要求,不但數(shù)量要求多且質(zhì)量要求高。因此,本文研究以中醫(yī)診斷中的脈象圖分析法為指導(dǎo)思想,選擇馬爾可夫決策過程(Markov Decision Process,MDP)和蒙特卡羅搜索相結(jié)合作為主要的研究方法。該方法可根據(jù)先驗知識,并根據(jù)每一種脈象的特征數(shù)據(jù)的取值范圍,對先驗知識數(shù)據(jù)進行標(biāo)記。針對脈象診斷的行為過程和具體情況,特征選擇和路徑分類被用于縮短經(jīng)驗軌跡、降低資源占用并提高準(zhǔn)確率的目標(biāo)。直接使用馬爾可夫決策過程和蒙特卡羅搜索,容易產(chǎn)生冗長的路徑,進而影響到識別結(jié)果的準(zhǔn)確性。為解決此問題,本文提出了一種改進方法:首先,采用特征選擇方法,通過與正常脈象的對比,優(yōu)先選出異常脈象的顯著特征;其次,以篩選出的顯著特征為基礎(chǔ),分別建立脈位失常、脈率失常和脈型失常3 條路徑;最后,通過馬爾可夫決策過程和蒙特卡羅搜索對處理后的數(shù)據(jù)集進行分析處理,從而達到減少經(jīng)歷不必要的狀態(tài)和行為,最終改善較長訓(xùn)練時間和資源浪費等問題。除此之外,在模型不斷的訓(xùn)練中,將形成經(jīng)驗軌跡記憶庫,不斷地更新模型的轉(zhuǎn)移概率,達到脈象識別的目標(biāo)。本文系統(tǒng)的框架如圖1所示。
圖1 本文系統(tǒng)框架Fig.1 Framework of proposed system
模型首先要通過學(xué)習(xí)先驗知識,獲得每種脈象所形成的經(jīng)驗軌跡、狀態(tài)閾值,并作為實驗數(shù)據(jù)的識別依據(jù),然后將每種脈象在狀態(tài)變化時的轉(zhuǎn)換概率進行記錄并用于模型的更新。在這之后將實驗數(shù)據(jù)根據(jù)專家結(jié)果分為單一脈象和相兼脈象。本文首先把單一脈象的識別作為研究對象,通過提案模型計算得到相應(yīng)的狀態(tài)值,并與狀態(tài)閾值集的數(shù)據(jù)進行對比得出相應(yīng)的模型識別結(jié)果。將模型識別結(jié)果和專家結(jié)果進行對比:如果結(jié)果一致說明識別正確;若結(jié)果不一致,則將經(jīng)驗軌跡存入經(jīng)驗軌跡記憶庫,并更新相應(yīng)脈象的狀態(tài)閾值集,進一步更新模型的參數(shù)。
《瀕湖脈學(xué)》中對脈象的觸感給出了清晰的定義,而文獻[12]則采用現(xiàn)代儀器作為描述的方式,將各類異常脈象在脈象波形圖的特點進行了具體的數(shù)值定義。心臟在一次跳動之后,血管會受到壓力而發(fā)生變形,致使動脈的容積和血液流動發(fā)生一系列的變化。這些變化就被脈象儀捕捉到并繪制成波形圖,如圖2 所示是一個基本的脈象波形圖,并在圖中注明了重要參數(shù)。脈象圖分析法中給出的具體參數(shù)以及《瀕湖脈學(xué)》中對脈象特征定義的具體參數(shù),將作為實驗所用的先驗知識,讓本文方法能判斷具體脈型需要哪些對應(yīng)的行為參數(shù)。
圖2 脈象波形Fig.2 Pulse condition waveform
根據(jù)脈象儀所獲取的波形圖數(shù)據(jù),可以獲取到波段常用的指標(biāo)。
1)U 角:又稱上升角,為主波上升支與時間橫軸所形成的夾角,反映血管彈性、粘性。
2)P 波:即主波幅、主波峰頂?shù)拇怪本嚯x,代表心臟收縮期動脈管壁所承受的壓力和容積。
3)P 角:主波的上升支和下降支之間所形成的夾角,反映血管彈性和血流情況。
4)t1:U→P 為流入時間,即到達主波頂?shù)臅r間,與血液流入動脈所受阻力大小相關(guān)。
5)T波:重搏前波,T波的數(shù)值是脈象分類的重要指標(biāo)。
6)V波:降中峽,其幅度反映了外周血管的特征。
7)D波:重搏波,反映血管彈性和血液流動狀態(tài)。
8)t:U→U'時間為脈波周期時間。
由此,脈搏波形圖從血管、血液等特征對脈象進行了狀態(tài)描述。
除此之外,文獻[12]根據(jù)脈象的典型特征將異常脈象分為脈率失常、脈位失常、脈型失常3 大類以及10 大特殊脈象。本文首先選擇3 大類的異常脈象作為研究對象。3 大異常脈象類型分別為:脈率異常、脈位異常、脈型異常,具體的分類在2.4 節(jié)中介紹。相關(guān)的識別數(shù)據(jù)除上述脈象圖指標(biāo)外,脈率、脈位等脈象特征,也是該實驗的兩個重要數(shù)據(jù)項。實驗設(shè)計將依照中醫(yī)理論給出的具體思想和參數(shù)作為本文脈象分類的理論基礎(chǔ)。
強化學(xué)習(xí)是一套通用的學(xué)習(xí)框架,主要是在環(huán)境交互過程中,通過獎勵r、狀態(tài)s、動作a這3個信號實現(xiàn)學(xué)習(xí)和求解最優(yōu)策略的過程。強化學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)理論是基于馬爾可夫決策過程,并構(gòu)建相應(yīng)的數(shù)學(xué)表達,然后利用諸如動態(tài)規(guī)劃、蒙特卡羅、時間差分等數(shù)學(xué)方法對其進行求解,從而搭建一套自適應(yīng)、自學(xué)習(xí)的強化學(xué)習(xí)決策體系[13]。針對馬爾可夫決策過程中抽象出的經(jīng)驗軌跡集,本文采用蒙特卡羅搜索方法進行求解,并獲取最優(yōu)策略。蒙特卡羅搜索需要完整的經(jīng)驗軌跡,這一特點可用于對后期的脈象識別過程進行相應(yīng)的解釋。將用馬爾可夫決策過程詳細(xì)地模擬脈象識別的強化學(xué)習(xí)的學(xué)習(xí)過程,以及蒙特卡羅搜索對強化學(xué)習(xí)的求解過程。
2.3.1 馬爾可夫決策過程
馬爾可夫決策過程(MDP)被用于強化學(xué)習(xí),它要求系統(tǒng)的一個狀態(tài)與當(dāng)前狀態(tài)有關(guān),而與之前或者更早的狀態(tài)沒有關(guān)系,以及其序貫決策的特點與本文實驗所用數(shù)據(jù)中數(shù)據(jù)項無關(guān)聯(lián)的特征相符。馬爾可夫決策過程如下:
其中,S代表狀態(tài)集,且S={s1,s2,…,sn},si表示時間狀態(tài)i下的實時狀態(tài)。本文將脈診識別需要考察的15 個重要脈象特征和判斷學(xué)習(xí)過程是否“終止”作為狀態(tài),則S的定義如下:
S={“脈位”,“節(jié)律”,“脈力”,“脈型”,“脈沖”,“脈率”,“脈搏”,“U 角”,“P 波”,“P 角”,“t1”,“T 波”,“D 波”,“V波”,“t”,“終止”}
Xi={xi,0,xi,1,…,xi,14}是本文實驗的數(shù)據(jù),將作為馬爾可夫決策過程的輸入數(shù)據(jù)。p表示在狀態(tài)si執(zhí)行動作ai之后,轉(zhuǎn)移到下一個狀態(tài)s'的概率,例如psa=P(s'|si,ai),初始的轉(zhuǎn)移概率都設(shè)為1,伴隨著模型的不斷學(xué)習(xí)轉(zhuǎn)移概率也會不斷更新。而A則為動作集,其表達式為A={a1,a2,…,an},其中,ai表示時間狀態(tài)i下所采取的動作,例如在狀態(tài)si=“脈力”時所采取的具體動作有“無力”及“有力”,分別記作:ai,0=“無力”和ai,1=“有力”,這里ai=ai,1=“有力”。相應(yīng)的r作為獎勵,即在狀態(tài)si執(zhí)行動作ai后轉(zhuǎn)移到狀態(tài)s'所獲得的獎勵ri,其中ri=R(si,ai)。最終生成一條由S、A、r組成的經(jīng)驗軌跡序列,記為:{S,A,r}。
為使用本文的實驗數(shù)據(jù),在未經(jīng)數(shù)據(jù)選擇和路徑分類處理的情況下得到一條經(jīng)歷全部狀態(tài)和行為的結(jié)脈的經(jīng)驗軌跡,其具體步驟如下:
步驟1 當(dāng)前所在的狀態(tài)s0(脈位),執(zhí)行動作a0(脈位:中),狀態(tài)轉(zhuǎn)移到s1(節(jié)律),獲得獎勵為0。
步驟2 此時狀態(tài)為s1(節(jié)律),執(zhí)行動作a1(節(jié)律:不齊),狀態(tài)轉(zhuǎn)移到s2(脈力),獲得獎勵為-1(節(jié)律:不齊時,相應(yīng)的獎勵為-1;齊時,獎勵為0)。
步驟3 此時狀態(tài)處于s2(脈力),執(zhí)行動作a2(脈力:有力),獲得獎勵為1(脈力分為:有力、中、無力、軟、不齊,相對應(yīng)的獎勵值為1、0、-1、-2、-3),狀態(tài)轉(zhuǎn)移到s3(脈型)。
……
步驟15 此時狀態(tài)處于s14(t),執(zhí)行動作a14(U→U'時間:0.67,在正常值范圍),獲得獎勵為0,狀態(tài)轉(zhuǎn)移到s15(終止)。
根據(jù)特征數(shù)據(jù)的正常值與異常值的差異程度,本文研究對獎勵給予相應(yīng)的定義。當(dāng)特征值優(yōu)于正常值時,給予的獎勵為正的分值;當(dāng)特征值劣于正常值時給予為負(fù)的分值。獎勵的分值依據(jù)特征的不同程度給予定義。例如對脈力有5 種程度的定義,分別為有力、中、無力、軟和不齊,其中:中為正常值,故定義脈力程度為中時,獎勵分值為0;脈力程度為有力時,其特征值優(yōu)于脈力程度中,故定義其獎勵分值為1;脈力程度無力、軟和不齊均劣于脈力程度中,其中脈力程度軟和不齊更劣于脈力程度無力,故其分值分別定義為-1、-2和-3。
到這里,一個完整的馬爾可夫決策過程結(jié)束了,獲得一條經(jīng)驗軌跡:s0(脈位),a0(中),r0,s1(節(jié)律),a1(不齊),r1,s2(脈力),a2(有力),r2,s3(脈型),…,s14(t),a14(0.67),r14,s15(終止),如圖3所示。
2.3.2 蒙特卡羅搜索
蒙特卡羅搜索(MCS)能夠處理免模型的任務(wù),其無須依賴環(huán)境的完備知識,只需重復(fù)收集從環(huán)境中進行采樣得到的經(jīng)驗軌跡(由馬爾可夫決策過程獲得),基于經(jīng)驗軌跡級數(shù)據(jù)的計算,可獲得最終的累積獎勵。
利用蒙特卡羅搜索直接從環(huán)境中采集獲得經(jīng)驗軌跡,并根據(jù)經(jīng)驗軌跡的數(shù)據(jù)進行計算,最終獲得該策略下的累計獎勵。
在環(huán)境未知時,則根據(jù)策略π進行采樣,從起始狀態(tài)s0出發(fā),執(zhí)行該策略T步后達到一個終止?fàn)顟B(tài)sT,從而獲得一條完整的經(jīng)驗軌跡,如式(1)所示:
由2.3.1 節(jié)的介紹可得s0(脈位)、a0(中)、r0=0、s1(節(jié)律)、a1(不齊)、r1=-1、s2(脈力)、a2(有力)、r2=1、s3(脈型)、……、s14(t)、a14(0.67)、r14=0、s15(終止)。
對于m時刻狀態(tài)為sT,未來折扣累計獎勵如式(2)所示:
蒙特卡羅法利用經(jīng)驗軌跡的平均未來折扣累計獎勵G作為狀態(tài)值的期望:
而強化學(xué)習(xí)的目標(biāo)是求解最優(yōu)策略π*,得到最優(yōu)策略的一個常用方法是求解狀態(tài)值函數(shù)νπ(s)的期望:
根據(jù)本文研究的部分?jǐn)?shù)據(jù)項具有取值范圍的限定這一特性,相應(yīng)得到的結(jié)果也具有相應(yīng)的范圍特性,故本文采用先驗知識中每種脈象的每項數(shù)據(jù)的最小值及最大值都進行模型計算,獲取相應(yīng)的最小狀態(tài)值νmin以及最大狀態(tài)值νmax,從而得到相應(yīng)脈象的狀態(tài)閾值集并記作νpulse?name,i。本文使用部分脈象的數(shù)據(jù)作說明如表1 所示,限于篇幅,給出了除P 角之外的其他14 個脈象特征,可見部分脈象特征為范圍特性,應(yīng)用其最小值和最大值分別計算最小狀態(tài)值νmin以及最大狀態(tài)值νmax。因此,本文方法改用閾值狀態(tài)值作為判斷依據(jù)。將訓(xùn)練過程中識別某個脈象時產(chǎn)生的策略及該策略下所獲得的狀態(tài)值νπ(s)不斷更新到狀態(tài)閾值集中,即:
表1 脈象閾值Tab.1 Pulse condition thresholds
在實驗前,根據(jù)每項特征數(shù)值可取的范圍對數(shù)據(jù)進行檢測,以察覺異常值,因此閾值會確定在有限范圍內(nèi),以保證每種識別策略的可信性。
因為部分?jǐn)?shù)據(jù)項有限定值的情況導(dǎo)致結(jié)果出現(xiàn)雷同值;其次由于直接采用原始數(shù)據(jù)會產(chǎn)生冗長的經(jīng)驗軌跡,導(dǎo)致準(zhǔn)確率降低以及冗余的狀態(tài)和行為;為此本文提出了一種改方法:路徑分類和特征選擇。
對經(jīng)驗軌跡進行分類改進,依照中醫(yī)脈象圖分析法,根據(jù)脈象的典型特征將脈象進行分類,分類依據(jù)如圖4 所示,并設(shè)置不同的經(jīng)驗軌跡的初始狀態(tài),如下:
圖4 脈象經(jīng)驗軌跡初始狀態(tài)分類Fig.4 Initial state classification of pulse condition experience trajectories
S0={“節(jié)律”,“脈力”,“速率”,“脈速”}
除此之外,為了達到每種脈象都獨有一條經(jīng)驗軌跡和縮短經(jīng)驗軌跡的目標(biāo),通過與正常脈象進行特征對比,抽取異常特征構(gòu)成相應(yīng)的特征組合,從而達到縮短經(jīng)驗軌跡的目標(biāo)。根據(jù)脈象數(shù)據(jù)的特征,本文將使用適合低維數(shù)據(jù)的異常數(shù)據(jù)檢測方法Z-score 評分機制[14]進行改進之后作為特征選擇的方法。例如,Xi={xi,0,xi,1,…,xi,14}對每一項數(shù)據(jù)進行距離計算,計算式如下:
其中:xi,j代表一個數(shù)據(jù)點;μj是第j個脈象特征數(shù)據(jù)的均值。根據(jù)脈象識別的特點,將平脈(正常脈)的特征值作為比較對象,那么μj就是平脈第j個脈象特征的值。δj是j列數(shù)據(jù)的標(biāo)準(zhǔn)差,其值將隨著數(shù)據(jù)量的增加逐值更新。獲取Zi,j值之后對其進行判斷,如式(7)所示:
如果|Zi,j|大于閾值Zthr,j則說明該值為異常值,將其數(shù)據(jù)存入到新的數(shù)組序列中,作為后續(xù)實驗的實際數(shù)據(jù)值脈率失常的一條脈象數(shù)據(jù)的經(jīng)驗路徑,經(jīng)過與正常脈象的特征進行對比,從15 個特征值中選擇出5 個具有顯著異常的特征。由經(jīng)驗軌跡分類可知,其初始狀態(tài)s0=“節(jié)律”,相應(yīng)的經(jīng)驗軌跡為:s0(速率),a0(慢),r0=-1,s1(脈力),a1(有力),r1=1,s2(節(jié)律),a2(不齊),r2=-1,s3(脈速),a3(65),r3=-1,s4(終止)。其長度由原來的15 個狀態(tài)、14 個行為及其獎勵,縮短到5 個狀態(tài)和4 個行為及其獎勵,達到了縮短經(jīng)驗軌跡和狀態(tài)值唯一性的目標(biāo)。如圖5 所示,通過路徑選擇和特征選擇的操作,每一次脈象識別都有唯一的經(jīng)驗軌跡和對應(yīng)的狀態(tài)結(jié)果值,最終達到準(zhǔn)確識別的目標(biāo)。具體過程如算法1所示。
Fig.5 優(yōu)化的經(jīng)驗軌跡效果Fig.5 Effect of optimized experience trajectory
算法1 優(yōu)化路徑特征分類脈象識別算法getPulseCondition(Xi)。
算法 2 Z-score 評分機制的特征選擇算法getEigenvalues(Xi)。
其中:μj是j列數(shù)據(jù)的均值;δj是j列數(shù)據(jù)的標(biāo)準(zhǔn)差;Zthr,j為閾值。
算法3 馬爾可夫決策與蒙特卡羅搜索算法getPulseName(F,Xi)。
本文實驗的先驗知識,包括27 種基礎(chǔ)脈象,其中包括:平、滑、動、澀、弦等,并分別對每一種脈象進行了14 項特征參數(shù)的具體值描述。而先驗知識的來源有兩部分:一部分是中醫(yī)醫(yī)生對《瀕湖脈學(xué)》中的定義進行總結(jié),而這部分主要是脈象的基礎(chǔ)特征;而另一部分則是文獻[12]所提供,其對每一種脈象波形圖中重要參數(shù)給出了具體的取值范圍。
實驗的數(shù)據(jù)通過脈象信息采集儀采集,對象為60 歲左右的老年人,采集時間歷時約半年。所采集的數(shù)據(jù)有中醫(yī)專家的標(biāo)注,經(jīng)過標(biāo)注后的數(shù)據(jù)中分為單一脈象和相兼脈象兩種。本文先選擇單一脈象用于驗證模型的可行性。每一組數(shù)據(jù)都由15項具體參數(shù)值組成,具體如下。
1)Pulse position:脈位,用于描述脈象所出現(xiàn)的位置,分為浮、中、沉三種。
2)Pulse rhythm:節(jié)律,用于描述脈象的跳動節(jié)奏,分為齊、不齊。
3)Pulse force:脈力,描述把脈時感受到的脈象的力量,有軟、無力、中、有力、不齊五種。
4)Pulse shape:脈型,簡單將脈象的形狀分為b、abc、ac、a這四類,其中a、b、c分別表示主波、重搏前波和重搏波。
5)Pulse potential:脈勢,從另一個角度來描述脈象的力量,即分為低平虛、正常和強三種。
6)Pulse rate:脈搏,即對脈搏進行慢、緩、中、遲和快的分類。
7)Pulse speed:脈搏速率,即對脈搏進行具體數(shù)字的采集。
而其他數(shù)據(jù)參數(shù)為脈象波形圖的重要參數(shù)項,如圖2 及相關(guān)說明。為了實驗的操作方便對數(shù)據(jù)進行預(yù)處理,并將數(shù)據(jù)轉(zhuǎn)換成集合的形式,每一個集合包括脈象名稱及上述的15項參數(shù)值,例如X1={x1,0,x1,1,…,x1,14}。
實驗中,把預(yù)處理后未經(jīng)優(yōu)化的數(shù)據(jù)直接運用到由馬爾可夫決策過程和蒙特卡羅搜索組成的模型中,實驗結(jié)果表明存在經(jīng)驗軌跡混雜和資源浪費等問題。為此,本文實驗根據(jù)文獻[12]中所給出的分類標(biāo)準(zhǔn),將重點參數(shù)值作為經(jīng)驗軌跡的起始狀態(tài);此外,將每組數(shù)據(jù)與正常脈象(平脈)的各數(shù)據(jù)項進行了對比,將異常數(shù)據(jù)項作為特征提取的對象。經(jīng)過路徑選擇和特征優(yōu)化處理,最終達到了縮短經(jīng)驗軌跡、減少時間和資源的浪費、提高準(zhǔn)確率的目標(biāo)。
為驗證本文方法,將同一數(shù)據(jù)分別使用PNN 模型、RNN模型進行脈象識別,將每一組數(shù)據(jù)歸一化為樣本矢量。其中,在PNN 模型中不考慮代價因子對脈象診斷的影響都取值為1;文獻[6]研究表明PNN 對脈象診斷準(zhǔn)確率的結(jié)果不會因為模型超參數(shù)的取值而過于敏感。其次,選擇RNN 模型作為對比,RNN 模型類似于本文模型的狀態(tài)之間相關(guān)性特征,并在脈象識別研究中表現(xiàn)良好[15]。文獻[6]為了滿足RNN 模型的訓(xùn)練要求,將數(shù)據(jù)劃分70%作為訓(xùn)練數(shù)據(jù)集,30%作為測試集。
對實驗結(jié)果進行分析,選擇模型識別脈型的真正率(True Positive Rate,TPR)、真負(fù)率(True Negative Rate,TNR)作為模型評估的指標(biāo),TPR 描述模型真正識別的能力,TNR 表示在噪聲數(shù)據(jù)情況下識別的能力,具體的計算式如下:
其中:TP表示真正脈象的數(shù)量;FN表示沒被正確識別的數(shù)量;FP表示錯誤識別的數(shù)量;TN表示正確識別錯誤數(shù)據(jù)的數(shù)量。為了應(yīng)用該評估模型,實驗數(shù)據(jù)分別增設(shè)了K={0.1,0.2,0.3,0.5}比例的噪聲數(shù)據(jù),用于檢測模型對噪聲樣本的敏感度。表2為模型在不同比例噪聲數(shù)據(jù)下的真正率(TPR)、真負(fù)率(TNR)以及準(zhǔn)確率(Accuracy)。
表2 不同模型診斷性能對比Tab.2 Comparison of diagnostic performance of different models
除了通過真正率和真負(fù)率評估模型針對不同比例噪聲數(shù)據(jù)的識別能力,本文還采用F1度量來評價模型的穩(wěn)定性和診斷性能。F1度量的計算式如下:
其中Total為樣本總量。根據(jù)F1度量值越大越穩(wěn)定、性能就越好的原則,可以得出本文所提出的模型相較于其他兩種模型表現(xiàn)出更好的診斷性能和穩(wěn)定性;且在面對含有不同比例噪聲數(shù)據(jù)的情況,本文所提出的模型都表現(xiàn)較好,如表3所示。
表3 不同模型診斷F1對比 單位:%Tab.3 F1comparison of different model diagnosis unit:%
在實驗用時方面,本文模型相較于其他模型的實驗時間減少了約90%,明顯降低了時間消耗。依照該實驗的數(shù)據(jù)特點:部分?jǐn)?shù)據(jù)為具體數(shù)字,部分有限定取值范圍(脈位、脈型、節(jié)律等),PNN模型相較于單一脈象圖數(shù)據(jù)的實驗表現(xiàn)出脈象識別準(zhǔn)確率明顯降低的特征。而RNN 模型在本文所用數(shù)據(jù)的情況下,仍保持較高的準(zhǔn)確率和良好的性能。本文模型的準(zhǔn)確率在對比實驗中相對較優(yōu),針對真數(shù)據(jù)和噪聲數(shù)據(jù)的識別都有良好表現(xiàn),驗證了其可行性及對本文實驗數(shù)據(jù)特征擁有較好的適應(yīng)性。綜合實驗結(jié)果顯示,本文模型可較大幅度縮短識別時間,且模型構(gòu)建過程相對簡單,能應(yīng)對稀疏數(shù)據(jù)集的處理。同時,經(jīng)驗軌跡可以作為脈象識別的過程,用于解決數(shù)據(jù)處理過程中的“黑箱”問題。
為解決中醫(yī)醫(yī)生脈診時由醫(yī)生的個體感知差異帶來的脈象診斷不一致的問題,本文利用脈象儀獲取的數(shù)據(jù),并依據(jù)傳統(tǒng)中醫(yī)診脈的思想,探尋利用強化學(xué)習(xí)方法以實現(xiàn)準(zhǔn)確診斷脈象。本文采用馬爾可夫決策過程結(jié)合蒙特卡羅搜索的方法設(shè)計診斷模型,為了降低冗余,設(shè)計出脈診數(shù)據(jù)特征選擇及路徑分類策略。本文模型與概率神經(jīng)網(wǎng)絡(luò)(PNN)模型和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)模型進行對比的實驗結(jié)果表明:本文模型提高了準(zhǔn)確率,減少了時間消耗,同時減少了實驗所需訓(xùn)練標(biāo)記數(shù)據(jù)集。與此同時,實驗過程中對經(jīng)驗軌跡的存儲,可用于說明和解釋診斷過程。目前,本文僅對單一脈象進行了分析和研究,在今后的工作中,我們將改進方法對相兼脈象的分析,以進一步驗證本文模型的可行性和實用性。