文/祁晉東 肖偉 格桑羅布扎西
(西藏大學(xué) 西藏自治區(qū)拉薩市 850011)
藏醫(yī)學(xué)是祖國傳統(tǒng)醫(yī)學(xué)寶庫中的一顆璀璨明珠,它以自身獨(dú)特而系統(tǒng)的科學(xué)理論和診療方法對世界文明進(jìn)步產(chǎn)生了積極影響。當(dāng)前,在回歸自然的潮流下,藏醫(yī)藥逐漸得到人們的認(rèn)可和推崇。由于目前藏醫(yī)藥研究方法多為經(jīng)典的藥理學(xué)和化學(xué)方法,結(jié)合體內(nèi)代謝研究困難巨大,研究深度和廣度明顯不足,所以藏藥方劑配伍規(guī)律一直是藏醫(yī)藥現(xiàn)代化研究的薄弱環(huán)節(jié)。所以在本研究中,結(jié)合BP算法率先采用DeepBelief Network對藏藥配伍規(guī)律進(jìn)行研究,揭示了方劑中隱藏的內(nèi)在規(guī)律,提高了研發(fā)效率。
藏藥配方與功效有著密切聯(lián)系,它是藏醫(yī)通過確定病證,根據(jù)組方原則和配伍配伍,選擇合適的藥材和相應(yīng)的劑量組合而成。因此要全面研究藏藥方劑的配伍規(guī)律,必須將方劑中的藥材和劑量綜合考慮才有效果。本研究針對藏藥方劑數(shù)據(jù)的多維、非線性特征,提出采用BP和DBN兩種算法分別對藏藥配伍規(guī)律進(jìn)行研究。藏藥方劑配方采用的是文字性語言表述,本研究要用數(shù)學(xué)方法研究配伍規(guī)律,就必須將配方與功效進(jìn)行數(shù)值化處理。本研究中以藏藥診治文集中的藏藥方劑為研究對象,包括不同疾病的藏藥配方的藥材和劑量以及藥方的功效。由示例x和標(biāo)記γ的集合構(gòu)成訓(xùn)練集。對收集的樣本數(shù)據(jù)整理分析后進(jìn)行數(shù)據(jù)預(yù)處理和編碼,從而得出網(wǎng)絡(luò)的輸入輸出數(shù)據(jù)。藏藥方劑主要由配方藥材、劑量和功效組成,用xi={藥材1,藥材2,… … 劑量1,劑量2}表示藏藥方劑示例,如表1。用yi={功效1,功效2,功效3,… …}表示藏藥方劑標(biāo)記,如表2。
將收集的示例集x和標(biāo)記集γ分別進(jìn)行編碼如表3和表4,x∪γ得到樣本數(shù)據(jù)。
本研究藏藥方劑的基本屬性特征值時(shí)輸入層,包括配方中的藥材和對應(yīng)的劑量。方劑的功效指標(biāo)是輸出層。由于每個(gè)方劑中藥材、功效數(shù)量不一樣,所以我們分別以藥材和功效最多的方劑為標(biāo)準(zhǔn)進(jìn)行編碼,所以38味藥材和38個(gè)劑量二級制編碼后共380個(gè)神經(jīng)元,13個(gè)功效二進(jìn)制編碼后共117個(gè)神經(jīng)元。
BP神經(jīng)網(wǎng)絡(luò)的參數(shù)設(shè)置為精度0.001、學(xué)習(xí)率0.01、動(dòng)量因子0.9、學(xué)習(xí)率增長比1.05、學(xué)習(xí)率下降比0.7。通過Kologorov定律和最終仿真結(jié)果確定隱層為3層,每層神經(jīng)元個(gè)數(shù)是分別為300、200、150時(shí)模型效果最好。此時(shí)激活函數(shù)函數(shù)選擇對數(shù)S型函數(shù)和正切S型函數(shù)。
圖1:BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖2:DBN深度置信網(wǎng)絡(luò)結(jié)構(gòu)
根據(jù)樣本空間的數(shù)據(jù),構(gòu)建一個(gè)2個(gè)隱層的RBM神經(jīng)網(wǎng)絡(luò),輸入有380維,輸出有117維,隱層節(jié)點(diǎn)數(shù)分別為250和150,最后一層使用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行微調(diào)。DBN深度置信網(wǎng)絡(luò)參數(shù)的設(shè)置為訓(xùn)練的精度為0.001,RBM的學(xué)習(xí)率為0.01,RBM的權(quán)值和閾值為0.1,BP神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率為0.1,激活函數(shù)為對數(shù)S型函數(shù)。DBN訓(xùn)練模型的過程主要分為預(yù)訓(xùn)練和微調(diào)這兩個(gè)部分。
BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,DBN深度置信網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
將藏藥方劑數(shù)值化后,用Matlab 2017a神經(jīng)網(wǎng)絡(luò)工具箱分別構(gòu)建BP和DBN深度置信網(wǎng)絡(luò),對方劑、劑量、療效之間的聯(lián)系進(jìn)行非線性映射,找出藏藥方劑配伍的規(guī)律并隱藏在網(wǎng)絡(luò)的權(quán)值和閾值中。
BP藏藥方劑功效預(yù)測如圖3所示,DBN藏藥方劑功效預(yù)測如圖4所示。
在預(yù)訓(xùn)練過程中,采用逐層訓(xùn)練的方法和對比散度算法,使用非監(jiān)督貪婪逐層方法獲取權(quán)值,從下到上分別訓(xùn)練每一層RBM網(wǎng)絡(luò),確保特征向量盡可能映射到不同特征空間時(shí),都盡可能多地保留特征信息。然后根據(jù)BP神經(jīng)網(wǎng)路進(jìn)行微調(diào),使整個(gè)網(wǎng)絡(luò)的參數(shù)達(dá)到最優(yōu)。
表1:藏藥方劑示例表
表2:藏藥方劑標(biāo)記表
表3:編碼后的藏藥方劑示例表
表4:編碼后的藏藥方劑標(biāo)記表
表5:BP神經(jīng)網(wǎng)絡(luò)測試和預(yù)測效果
表6:DBN深度信念網(wǎng)絡(luò)測試和預(yù)測效果
以藏藥診治文集中的藏藥方劑為提取特征的對象,藥材和劑量作為輸入,藥效為輸出,分別采用BP神經(jīng)網(wǎng)絡(luò)和DBN深度置信網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。將100個(gè)學(xué)習(xí)樣本中90個(gè)用作訓(xùn)練樣本,其中20個(gè)數(shù)據(jù)作為測試樣本,剩下的10個(gè)樣本做預(yù)測。K倍交叉驗(yàn)證法評估模型,BP神經(jīng)網(wǎng)絡(luò)和DBN深度信念網(wǎng)絡(luò)。其測試樣本準(zhǔn)確率和預(yù)測樣本準(zhǔn)確率如表5和表6。
圖3:BP藏藥方劑功效預(yù)測
圖4:DBN藏藥方劑功效預(yù)測
綜合表5和表6來看,傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)雖然可以學(xué)習(xí)藏藥方劑樣本的特征,但是預(yù)測的效果偏低,DBN深度置信網(wǎng)絡(luò)相比于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)可以更好的學(xué)習(xí)方劑的特征,預(yù)測的準(zhǔn)確度,平均達(dá)到83.88%。DBN深度置信網(wǎng)絡(luò)結(jié)構(gòu)對于非線性高緯度特征的藏藥方劑數(shù)據(jù)具有良好的特征學(xué)習(xí)能力和預(yù)測能力,但是還達(dá)不到完全預(yù)測真實(shí)藏藥功效。
BP神經(jīng)網(wǎng)絡(luò)和DBN深度置信網(wǎng)絡(luò)的訓(xùn)練誤差下降比較如圖5所示,DBN的網(wǎng)絡(luò)參數(shù)由多層受限玻爾茲曼機(jī)訓(xùn)練的,而BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)是隨機(jī)生成,因此DBN的初始誤差、訓(xùn)練次數(shù)和誤差下降速率上明顯優(yōu)于BP神經(jīng)網(wǎng)絡(luò)。
圖5:BP和DBN誤差下降圖
通過本研究,神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)藏藥方劑的特征,同時(shí)對配伍規(guī)律有一定的預(yù)測能力,證明了研究思路的可行性。由于收集到樣本數(shù)量和分布上的問題,影響了網(wǎng)絡(luò)對于方劑特征的提取,因此會(huì)對藏藥方劑療效的預(yù)測產(chǎn)生一定的影響。DBN是一種深度學(xué)習(xí)結(jié)構(gòu),隨著樣本數(shù)據(jù)量的增加,將會(huì)得到更高的準(zhǔn)確率,在藏藥方劑配伍規(guī)律方面將會(huì)有更好的應(yīng)用前景。
針對目前對藏藥配伍規(guī)律存在的問題,研究可以根據(jù)藏藥藥理改進(jìn)DBN深度置信網(wǎng)絡(luò)結(jié)構(gòu)或者構(gòu)建一種新型的神經(jīng)網(wǎng)絡(luò)群結(jié)構(gòu),降低非線性映射的維度,提高了算法的效率,從而更好的學(xué)習(xí)藏藥方劑的特征。另外藏藥方劑的配伍規(guī)律只能儲(chǔ)存在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,不能通過具體的表達(dá)式來反映配伍規(guī)律和方劑間相生相克的作用,這也是需要進(jìn)一步研究和改善的問題。