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