王德勇,張?zhí)煲?,程云?/p>
(上海理工大學(xué) 上海介入醫(yī)療器械工程技術(shù)研究中心,上海 200093)
膿毒癥及膿毒性休克是臨床常見的危重癥,是導(dǎo)致全球重癥患者死亡的主要原因之一[1]。當(dāng)患者感染嚴(yán)重時,除抗生素和感染源控制外,還需配合升壓藥和靜脈輸液的治療。不同的升壓藥和靜脈輸液治療策略會導(dǎo)致患者生存率的變化[2],因此,二者的給藥策略一直是膿毒癥藥物治療研究的熱點問題[3]。近幾年,國際上努力為膿毒癥治療提供一般性指導(dǎo),但臨床醫(yī)生仍然缺乏有效工具來提供實時有效的個性化決策支持[4]。同時有研究表明,新定義的出現(xiàn)以及臨床數(shù)據(jù)的積累都會對臨床決策產(chǎn)生重要影響[5],因此,如何利用現(xiàn)有數(shù)據(jù)為臨床提供一般性指導(dǎo)具有重要研究價值。Liang等[6]首先利用帶有優(yōu)先級回放的Dueling DQN(Deep Q-network)和Double DQN網(wǎng)絡(luò)構(gòu)建了一種名為D3QN的網(wǎng)絡(luò),該模型可以主動學(xué)習(xí)樣本之間的關(guān)系,最后利用MIMIC-III數(shù)據(jù)集對模型進(jìn)行驗證,結(jié)果表明,模型性能相對于baseline有顯著提升。其中,基于權(quán)重的雙重魯棒性離策略評估值比最佳的baseline值高7.4%,比臨床醫(yī)生的策略值高26.3%,但由于數(shù)據(jù)集有限以及模型模仿的是臨床醫(yī)生的經(jīng)驗治療原則,仍無法獲取最佳治療方案。針對傳統(tǒng)強(qiáng)化學(xué)習(xí)方法只考慮了患者的最終狀態(tài),未考慮患者中間狀態(tài)和短時間內(nèi)用藥量的變化情況,Lu[7]基于現(xiàn)有模型開發(fā)了一種利用SOFA評分和動脈乳酸水平評估患者中間狀態(tài)的模型,通過增大血管升壓藥懲罰來解決用藥量的急劇變化,結(jié)果表明,該模型不僅策略評估值優(yōu)于臨床策略評估值,同時預(yù)估的死亡率也低于臨床數(shù)據(jù)。Roggeveen等[8]首先利用T分布隨機(jī)近鄰嵌入和序貫器官衰竭評分(sequential organ failure assessment, SOFA)來探索患者之間群體的差異,之后又引入一種新的深度策略來分析模型所得策略的可解釋性,以評估模型的安全性和可靠性。Yuan等[9]選取與膿毒癥相關(guān)的106個特征構(gòu)建帶有標(biāo)簽的數(shù)據(jù)集,利用極度梯度提升(extreme gradient boosting, XGBoost)模型將膿毒癥的預(yù)測準(zhǔn)確率提高到了82%。Jia等[10]在機(jī)器學(xué)習(xí)模型的基礎(chǔ)上提出一種“安全驅(qū)動設(shè)計”的方法,結(jié)果表明,該方法可以有效識別機(jī)器學(xué)習(xí)模型的不安全行為,特別是血管升壓藥用量的急劇變化,有效地提高了模型的安全性。Peng等[11]利用核函數(shù)學(xué)習(xí)和深度強(qiáng)化學(xué)習(xí)來獲取膿毒癥的治療策略,結(jié)果表明,混合學(xué)習(xí)方式相對于獨立DQN學(xué)習(xí)和核函數(shù)學(xué)習(xí)方法表現(xiàn)更好。
目前,國內(nèi)對于膿毒癥的研究大部分還處于基礎(chǔ)階段,利用人工智能技術(shù)輔助膿毒癥治療的相關(guān)研究較少。齊霜等[12]基于MIMIC-III數(shù)據(jù)集構(gòu)建出XGBoost預(yù)測模型,測試結(jié)果表明,該模型較臨床常用評分指標(biāo)能更準(zhǔn)確地預(yù)測膿毒癥患者的死亡風(fēng)險,有助于輔助臨床決策,分配醫(yī)療資源。任國奇[13]使用基于深度逆強(qiáng)化學(xué)習(xí)最小樹模型和基于對偶權(quán)重的異策略評估方法去學(xué)習(xí)和評估膿毒癥治療策略,結(jié)果表明,新模型得到的治療策略可以將臨床患者的總體死亡率降低3.3%。蔣容[14]利用大數(shù)據(jù)技術(shù)對臨床數(shù)據(jù)進(jìn)行分析,首先分析哪些因素對患者的預(yù)后影響較大,然后在此基礎(chǔ)上建立膿毒癥預(yù)警模型,結(jié)果表明,該預(yù)警模型在一定程度上可以幫助醫(yī)生提早判斷患者狀態(tài)。潘盼等[15]利用強(qiáng)化學(xué)習(xí)方法研究膿毒癥治療過程中液體平衡對于患者死亡率的影響,結(jié)果表明,該模型可以準(zhǔn)確地預(yù)測液體治療的方向。
膿毒癥診斷一般使用膿毒癥拯救運(yùn)動指南發(fā)布的Sepsis標(biāo)準(zhǔn),本研究依據(jù)Sepsis3.0標(biāo)準(zhǔn)從MIMIC數(shù)據(jù)集中識別膿毒癥患者。 2016年專家組提出Sepsis3.0診斷標(biāo)準(zhǔn),此標(biāo)準(zhǔn)拋棄了容易造成過估計的SIRS指數(shù),采用新設(shè)計的SOFA評分指標(biāo),具體評分細(xì)則見表1[16-17]。
表1 SOFA評分表
本研究采用的數(shù)據(jù)集是MIMIC(medical information mart for intensive care,MIMIC)數(shù)據(jù)庫。該數(shù)據(jù)庫由美國麻省理工學(xué)院計算生理學(xué)實驗室、貝斯以色列迪康醫(yī)學(xué)中心以及飛利浦醫(yī)療共同發(fā)布,數(shù)據(jù)庫中收集整理了2001-2012年期間住在貝斯以色列迪康醫(yī)學(xué)中心重癥監(jiān)護(hù)室數(shù)萬名真實患者的臨床診療信息[18], 該數(shù)據(jù)庫不僅可以用于研究膿毒癥相關(guān)的問題,在其它領(lǐng)域也有廣泛應(yīng)用[19-20]。本研究選擇采用MIMICⅢv1.4版本的患者數(shù)據(jù),共含有46 520位患者。
為評估一個治療策略π的期望回報,一般會涉及兩個值函數(shù):狀態(tài)值函數(shù)和狀態(tài)-動作值函數(shù),本研究中狀態(tài)指某一時刻患者的臨床狀態(tài),即各項指標(biāo)值,動作指患者的靜脈輸液量和血管加壓藥的用量。這兩類值函數(shù)是本研究建模解法的基礎(chǔ)。
在患者狀態(tài)存在終止的情況下,總回報的計算如下 :
(1)
本研究患者的最終狀態(tài)為存活或死亡,因此對應(yīng)該情況,若環(huán)境無終止?fàn)顟B(tài),即T=∞,稱為持續(xù)性強(qiáng)化學(xué)習(xí)任務(wù),其回報也可能是無窮大,為解決該問題,可以引入一個折扣率來降低遠(yuǎn)期回報的比重,在無終止?fàn)顟B(tài)時,總回報的計算見式(2):
(2)
其中,γ代表折扣率,其取值在0~1之間,本研究中γ取值為0.9。
狀態(tài)值函數(shù)定義為膿毒癥患者在某個狀態(tài)s下,執(zhí)行一個用藥策略π到最終狀態(tài)可以獲得的回報,使用公式Vπ(s)來表示,一個用藥策略π的總期望回報,計算如下:
(3)
其中,狀態(tài)值函數(shù)Vπ(s)見式(4):
(4)
式(4)的含義是:患者從某一狀態(tài)s出發(fā)所能得到的總回報等于以狀態(tài)s為初始狀態(tài),在策略π下所有可能用藥策略回報的期望。根據(jù)馬爾科夫性,Vπ(s)展開可以得到:
Vπ(s)=Ea~π(a|s)Es′~p(s′|s,a)[r(s,a,s′)+γVπ(s′)]
(5)
式(5)稱為貝爾曼方程,表示患者當(dāng)前狀態(tài)的值函數(shù)可以通過下一個狀態(tài)的值函數(shù)計算。
狀態(tài)動作值函數(shù)指患者以s為初始狀態(tài)并執(zhí)行用藥策略a,然后在策略π下得到的總期望回報,也稱其為Q函數(shù)。
Qπ(s,a)=Es′~p(s′|s,a)[r(s,a,s′)+γVπ(s′)]
(6)
式(6)表示在狀態(tài)s下,執(zhí)行用藥量a得到的期望回報,Qπ(s,a)為執(zhí)行用藥量a后的下一個可能狀態(tài)s′的值函數(shù)Vπ(s′)的折扣期望加上本次獲得的獎勵r(s,a,s′)。同時,由于狀態(tài)值函數(shù)Vπ(s)是Q函數(shù)Qπ(s,a)關(guān)于用藥量a的期望,則有:
Vπ(s)=Ea~π(a|s)[Qπ(s,a)]
(7)
由式(6)、式(7)可以將Q函數(shù)寫成如下關(guān)于Q函數(shù)的貝爾曼方程:
Qπ(s,a)=Es′~p(s′|s,a)[r(s,a,s′)+γEa′~π(a′|s′)[Qπ(s′,a′)]]
(8)
策略迭代指從一個初始用藥策略出發(fā),先進(jìn)行策略評估,即評價患者在該用藥策略下可以獲得的狀態(tài)價值,然后改進(jìn)策略,進(jìn)行策略提升,得到新的用藥策略,之后再對改進(jìn)的策略進(jìn)行策略評估,如此經(jīng)過不斷地更新迭代,最后求出一個最佳的用藥策略。
2.3.1策略評估 策略評估指計算用藥策略的狀態(tài)值函數(shù)Vπ(s),即計算在當(dāng)前用藥策略π下每一個狀態(tài)的價值,計算方式如下:
(9)
2.3.2策略提升 計算策略價值函數(shù)是為找到更好的用藥策略。在策略評估基礎(chǔ)上,得到在上一策略下每一個狀態(tài)的價值,基于該狀態(tài)價值可對策略進(jìn)行改進(jìn),得到更好的策略。
計算在每一個狀態(tài)采取相應(yīng)用藥量后到達(dá)下一狀態(tài)獲得的期望價值,即狀態(tài)動作值函數(shù),計算期望的公式見式(10)。
(10)
在得到每一個狀態(tài)采取不同用藥量獲取的價值后,選取價值最高的狀態(tài)動作對,即選取某個狀態(tài)下應(yīng)采取多少用藥量,將其設(shè)置新的用藥策略π,在計算完所有的狀態(tài)動作值函數(shù)后即可得到新的策略π。
(11)
將式(10)代入式(11)即可得到簡化后的計算公式,見式(12):
(12)
策略迭代的策略評估需要值函數(shù)完全收斂方可進(jìn)行策略提升,若對策略評估要求放低,速度會有所提升。同時,策略迭代中關(guān)注的是最優(yōu)策略,若此時有方法可以使最優(yōu)值函數(shù)和最優(yōu)策略同時收斂,即可只關(guān)注值函數(shù)的收斂過程,只要值函數(shù)達(dá)到最優(yōu),那么策略也就是最優(yōu)的。針對以上思路提出的價值迭代相較于策略迭代過程簡單。對于患者所有當(dāng)前狀態(tài),計算每一個可能的用藥量到達(dá)下一個狀態(tài)獲得的期望價值,選取期望價值函數(shù)最大的用藥量,然后將該最大期望價值函數(shù)設(shè)為當(dāng)前狀態(tài)的價值函數(shù),之后繼續(xù)迭代,直至收斂。計算方式見式(13):
(13)
MIMICⅢ數(shù)據(jù)庫共有46張數(shù)據(jù)表,數(shù)據(jù)量龐大,為了便于實驗研究,降低實驗復(fù)雜度,首先要提取與膿毒癥治療以及和本研究相關(guān)的臨床數(shù)據(jù),例如患者的人口統(tǒng)計學(xué)信息,用藥情況,實驗室檢查指標(biāo)等,本研究提取的膿毒癥患者部分?jǐn)?shù)據(jù)指標(biāo)借鑒了文獻(xiàn)[9]。數(shù)據(jù)的主要處理流程見圖1。
圖1 數(shù)據(jù)預(yù)處理流程
本研究采用Sepsis3.0標(biāo)準(zhǔn),因此在計算SOFA指數(shù)前,需要先判斷發(fā)生感染的患者。本研究遵守了診斷膿毒癥的原始時間標(biāo)準(zhǔn),首次使用抗生素時,在24 h之內(nèi)收集微生物樣本,在首次收集微生物樣本時,必須在72 h之內(nèi)使用抗生素。為盡可能多獲取患者數(shù)據(jù),同時兼顧模型的復(fù)雜度,本研究最長只獲取患者80 h的臨床數(shù)據(jù),并在此數(shù)據(jù)基礎(chǔ)上,對數(shù)據(jù)進(jìn)行清洗。數(shù)據(jù)清洗時,首先,排除年齡小于18歲的患者,保留研究對象為成年患者。其次,排除死亡率無記錄或中途退出治療的患者,因為本實驗采用判斷患者存活與否作為獎勵的標(biāo)準(zhǔn),若死亡率未定義,此患者的軌跡獎勵將不完整,會對模型的建立和結(jié)果產(chǎn)生負(fù)面影響。本研究對象是血管升壓藥和靜脈輸液用量,靜脈輸液量和血管升壓藥用量未記錄的數(shù)據(jù)對實驗結(jié)果有較大影響,因此,這些數(shù)據(jù)也被排除。對于其它實驗需要用到的非核心數(shù)據(jù)指標(biāo),例如血壓、心率等數(shù)據(jù),本研究采用K-近鄰(K-nearest neighbor, KNN)插值法,對缺失值進(jìn)行補(bǔ)全。同時數(shù)據(jù)在記錄過程中難免會有偏差導(dǎo)致離群值出現(xiàn),本研究根據(jù)不同指標(biāo)的臨床實際意義進(jìn)行對應(yīng)處理。除MIMICⅢ數(shù)據(jù)庫里可直接獲得的指標(biāo),本研究中還采用一些衍生指標(biāo),即通過現(xiàn)有數(shù)據(jù)計算得到的指標(biāo),例如氧合指數(shù)(P/F), 休克指數(shù)(Shock Index), SOFA, SIRS等。本研究最終提取了48個指標(biāo)進(jìn)行模型訓(xùn)練,詳細(xì)指標(biāo)見表2。
表2 研究指標(biāo)
表2(續(xù))
不同患者數(shù)據(jù)記錄時間差可能有較大差異,為保持患者數(shù)據(jù)序列統(tǒng)一性,需要對數(shù)據(jù)進(jìn)行編碼,本研究采用4 h時間步長對數(shù)據(jù)進(jìn)行編碼,編碼后的數(shù)據(jù)為膿毒癥患者的治療軌跡。本研究在4 h時間步長內(nèi),根據(jù)不同指標(biāo)的臨床實際意義和模型訓(xùn)練需要,部分?jǐn)?shù)據(jù)指標(biāo)在計算時取平均值(例如心率,血壓以及動脈乳酸值等參數(shù)),部分取4 h時間步長內(nèi)的總和(例如靜脈輸液量和尿量等參數(shù))。
本研究對象是血管升壓藥以及靜脈輸液用量,但在MIMIC數(shù)據(jù)集中血管升壓藥以及靜脈輸液都包括多種藥品,因此,在處理時需要進(jìn)行統(tǒng)一化處理。對于血管升壓藥,實驗中都轉(zhuǎn)化為去甲腎上腺素當(dāng)量進(jìn)行處理,單位是ug/kg/min,當(dāng)體重缺失時使用80 kg代替處理。其中1 ug腎上腺素等于1 ug去甲腎上腺素,100 ug多巴胺等于1 ug去甲腎上腺素,2.2 ug去氧腎上腺素等于1 ug去甲腎上腺素,1個單位加壓素等于5 ug去甲腎上腺素。靜脈輸液在本研究中選取胰島素給藥、晶體輸液、膠體類輸液以及血液制品,這些不同種類的液體最后根據(jù)張力對輸入速率進(jìn)行標(biāo)準(zhǔn)化[21-22]。本研究僅預(yù)測在指定時間段內(nèi)患者血管升壓藥以及靜脈輸液的總用量,并不涉及給藥速度的預(yù)測。
圖2是本研究中動態(tài)規(guī)劃解法的詳細(xì)步驟。動態(tài)規(guī)劃是基于模型的求解方式,需要知道完整的動作空間,狀態(tài)空間,狀態(tài)轉(zhuǎn)移概率,以及每一步的獎勵等信息。本研究對象是靜脈輸液量和血管升壓藥的用量,為構(gòu)建狀態(tài)空間,采用零和四分位數(shù)表示方法,將每種藥的用藥量離散到五個狀態(tài)空間里,兩種藥就構(gòu)成離散的25個動作空間。本研究采用K均值聚類(K-means)方式得到模型狀態(tài)空間,此聚類方式中K值的定義對結(jié)果影響較大。本研究在實驗測試和文獻(xiàn)調(diào)研基礎(chǔ)上,將最終狀態(tài)空間數(shù)定義為750。基于構(gòu)建的狀態(tài)空間和動作空間,然后利用預(yù)處理部分得到的患者軌跡計算患者在每個狀態(tài)的狀態(tài)轉(zhuǎn)移概率。本研究設(shè)定每一步動作之后的獎勵見表3。其中吸收態(tài)指每位患者治療軌跡的最后一步(在MIMIC數(shù)據(jù)集里對應(yīng)患者出院后的48 h之內(nèi)是否存活),其它狀態(tài)都屬于中間狀態(tài)。
表3 狀態(tài)價值對應(yīng)關(guān)系
(14)
圖2 模型訓(xùn)練迭代步驟Fig.2 Model trains iterative steps
本研究測試集在不同策略下的平均回報見表4。
表4 不同策略平均回報
由實驗結(jié)果可知,不管是策略迭代還是價值迭代得到的策略結(jié)果都優(yōu)于臨床用藥策略,同時由于策略迭代和價值迭代底層原理類似,因此,當(dāng)二者都收斂時,期望回報幾乎相同。
在本研究價值迭代計算中,當(dāng)患者前后狀態(tài)價值差值θ小于1e-20時,判斷其達(dá)到收斂。策略迭代中策略評估用其作為收斂的標(biāo)準(zhǔn),但整個策略迭代的結(jié)束標(biāo)準(zhǔn)是前后兩次迭代得到的策略相同。對于價值迭代解法,當(dāng)所有狀態(tài)的前后兩次狀態(tài)價值誤差總和小于θ時,判斷其達(dá)到收斂。圖3是整個價值迭代收斂的過程,可見,在前幾次迭代中誤差急劇降低,但在后面的迭代中每次誤差的降低微乎其微,若在θ值不是很小的情況下,價值迭代的次數(shù)會大幅度減少。
圖3 價值迭代收斂圖
圖4是策略迭代的收斂過程圖,六個尖峰表示策略迭代總共經(jīng)歷六次,每兩個尖峰之間是策略評估的收斂過程。由圖可見,策略評估的收斂軌跡和價值迭代類似,這是因為策略評估本質(zhì)上就是價值迭代的過程。
策略迭代和價值迭代收斂速度見表5。雖然策略迭代和價值迭代所得策略的期望回報幾乎相同,但二者的收斂速度相差較大。價值迭代方法中策略評估只需一次迭代,計算量少,但總迭代次數(shù)較多導(dǎo)致收斂較慢,而策略迭代每一次迭代計算量大,但迭代次數(shù)較少,收斂較快。由圖3、圖4可知,雖然策略迭代在總的迭代次數(shù)上遠(yuǎn)小于價值迭代的總迭代次數(shù),但策略迭代在每次策略評估和策略提升中迭代次數(shù)都較大,這也是策略迭代計算量大的原因。在實際應(yīng)用中,當(dāng)數(shù)據(jù)量有限時,推薦使用策略迭代去改進(jìn)臨床實際用藥策略。
圖4 策略迭代收斂圖
表5 不同方法迭代次數(shù)
本研究基于MIMICⅢ 數(shù)據(jù)集,根據(jù)Sepsis3.0的定義,識別發(fā)生感染的患者,數(shù)據(jù)清洗完,將數(shù)據(jù)編碼成4 h時間步長的序列,并在每個序列里計算對應(yīng)的SOFA值,最后利用價值迭代和策略迭代對序列數(shù)據(jù)進(jìn)行訓(xùn)練,得到兩套膿毒癥中血管升壓藥和靜脈輸液量的用藥策略。在實驗驗證階段,本研究在不同患者治療軌跡上,分別計算訓(xùn)練得到的兩套用藥策略和臨床醫(yī)生實際用藥策略的平均回報,結(jié)果表明,利用動態(tài)規(guī)劃解法得到的用藥策略具有一定參考價值,同時在策略迭代和價值迭代都收斂時,二者結(jié)果幾乎一樣,但策略迭代在收斂速度上要遠(yuǎn)高于價值迭代。
本研究采用的建模方法是價值迭代和策略迭代,二者都屬于動態(tài)規(guī)劃解法。該類方法需要預(yù)先知道所有的狀態(tài)空間、動作空間以及狀態(tài)轉(zhuǎn)移概率,但在現(xiàn)實環(huán)境中這些信息很難獲取,因此,該類方法并不具備通用性。同時,隨著訓(xùn)練數(shù)據(jù)量的增大,不管是價值迭代還是策略迭代,要使其收斂,必將伴隨著巨大的迭代次數(shù),效率很低。因此,后續(xù)可考慮采用時序差分學(xué)習(xí)的方式學(xué)習(xí)用藥策略。時序差分學(xué)習(xí)結(jié)合了動態(tài)規(guī)劃和蒙特卡洛解法,一方面它和蒙特卡洛解法一樣,無需具體的環(huán)境信息,另一方面又繼承了動態(tài)規(guī)劃算法的自舉特性,可以利用之前學(xué)習(xí)到的價值去更新值函數(shù),不必等到一個episode結(jié)束后才去更新值函數(shù),可顯著提高更新的效率。此外,本研究僅提取了48個患者生命體征參數(shù),后續(xù)還需要繼續(xù)調(diào)研文獻(xiàn),并通過實驗驗證參數(shù)中是否存在冗余。