蘇 洋,張 浩,劉俊彤
(皖南醫學院 醫學信息學院,安徽 蕪湖 241002)
肺炎是目前最常見的感染性疾病之一,多發于2歲以下兒童或老年人群,由于其形成原因復雜,發病期短[1],如何盡可能早的識別肺炎對其后期診療具有重要作用。胸部X光片(Chest X-Ray,CXR)是目前檢測肺炎的重要手段。然而,CXR存在圖片分辨率低、各器官重疊交叉等問題,容易導致醫生誤診,因此使用人工智能技術進行智能輔助診斷具有重要意義[2]。傳統的醫學圖像處理技術,一般通過對圖像進行降噪、濾波、特征提取、分類器設計等操作對醫學圖像進行分類,實現輔助診斷[3]。然而,當圖像特征較弱時,其輔助診斷效果也會較差。
近年來,深度學習(Deep Learning,DL)已發展成為醫學圖像處理的重要技術之一。Pranav Rajpurkar[4]等人設計了一個多層卷積神經網絡(ChexNet)進行肺炎識別,其網絡層數達到了121層,該算法以CXR圖片作為輸入,輸出肺炎區域,在公開數據集 ChestX-ray14對14種肺部疾病進行了分類驗證測試,結果顯示ChexNet在部分領域的性能超過了專業醫生的平均水平。Kermany[5]等人首先利用遷移學習對卷積神經網絡模型進行預訓練,然后在此基礎上進行后續模型訓練,實驗結果表明其分類準確率可達到92.80%。由此可見,將遷移學習和深度學習聯合使用可以提高模型的分類準確度。
深度學習模型性能的優異與否很大程度上依賴于訓練數據集的大小。2017年,谷歌的一份研究報告探索了大數據與深度學習的關系:通過提升訓練數據量,可以有效提升模型性能[6]。但在現實場景中,卻存在著嚴重的“數據孤島”現象[7],除少數巨頭公司能夠滿足數據要求外,絕大多數企業都存在數據量少、數據質量差等問題,難以支撐人工智能技術。與此同時,數據量的大幅增加,也提升了隱私數據泄露的風險。2016年,有黑客獲取了浙江省某醫院約8000萬條醫療信息數據,得到了大量孕檢類型的公民個人信息并將其非法販賣出去,大量用戶被精準營銷或被電信詐騙,公民的權利受到了嚴重侵犯。聯邦學習(Federated Learning,FL)[8]是谷歌提出的一種新型計算框架,可以在有效解決“數據孤島”問題的同時,保護用戶隱私數據。
目前,國內外對于數據隱私的保護日益重視,各國相繼出臺的相關政策法規,在國家層面對數據隱私保護及數據使用上提出了要求:歐盟于2018年5月25日出臺了《General Data Protection Regulation》(通用數據保護條例,簡稱GDPR),我國也于2021年11月1日正式施行《中華人民共和國個人信息保護法》[9]。
本文提出了一種基于聯邦學習和深度學習的肺炎分類方法(Pneumonia Classification Method Based on Federated Learning and Deep Learning ,PCFDL)。利用聯邦學習架構對用戶數據隱私進行保護,使用深度學習算法保證模型的分類準確性,實驗結果驗證了所提算法的有效性。
2016年,谷歌提出了聯邦學習技術,該技術提出將數據存儲與模型訓練過程放在本地進行,而只將模型更新的參數上傳至服務器,由服務器完成全局模型的更新。在此過程中數據不出本地,保護了用戶數據隱私;多個數據方共同參與模型訓練,解決了目前數據領域存在的單個數據方數據量小不足以支撐實現、數據方之間不允許粗暴交換數據和不愿意貢獻價值引起的數據孤島問題。
聯邦學習的模型訓練過程如圖1所示。首先,各客戶端從服務器端下載全局模型;然后,客戶端利用本地數據進行模型訓練;接著,客戶端將本地模型上傳至服務器端;最后,服務器端完成模型聚合。通過反復迭代,最終完成全局模型訓練。

圖1 聯邦學習模型訓練過程
根據各客戶端數據特征空間與樣本空間的不同,可以將聯邦學習分為三類,當數據特征空間相同,樣本空間不同時為橫向聯邦學習,反之則為縱向聯邦學習,當數據特征空間與樣本空間均不同時為聯邦遷移學習。目前聯邦學習在很多領域都在探索落地應用,如在金融領域,微眾銀行楊強教授團隊聯合多機構完成了風控模型的聯合建模[7]。
本研究提出了一種聯邦學習在智慧醫療領域的應用,對多機構的CXR圖片采用橫向聯邦學習技術進行聯合建模,完成肺炎分類。
2006年,Geoffrey Hinton及他的學生正式提出了深度學習的概念。自此,深度學習技術迎來了巨大的發展。相較于傳統的機器學習算法,深度學習模型的性能可以隨著數據規模的增長而不斷增長,而傳統的機器學習算法則會很快遇到數據瓶頸。
深度學習作為神經網絡(Neural Network,NN)的一種,其基本構建模單位是人工神經元。NN通過輸入層獲取輸入信號,各網絡層利用激活函數對上一層輸入進行修改并傳遞至下一層。在深度神經網絡中,輸入層與輸出層之間具有很多中間層,通過不同的運算方法這些中間層可以提取出輸入數據的不同維度的特征,利用這些特征可以較好地完成相應任務。
深度學習技術在圖形圖像領域已經取得了很大的成功,卷積神經網絡(Convolutional Neural Networks,CNN)是其中的重要技術,CNN有很多不同的框架,如AlexNet(圖2)、Vgg、ResNet等。目前,國內外很多學者正在研究如何發揮CNN在醫學圖形圖像處理領域的應用。文獻[10]提出了一種具有代表性的基于CNN的前列腺圖像分割方法。該方法使用MRI圖像進行訓練,訓練過程會根據Dice系數(Dice Similarity Coefficient)的變化進行動態優化,同時給出了一種新的目標函數。該方法不僅提升了運行效率,在公開數據集上也取得了優秀的結果。文獻[11]提出了一種基于深度學習的視網膜圖像區域提取算法,將多尺度輸入、多標簽輸出等模塊增加到U-net圖像分割模型上,取得了很好的效果。

圖2 AlexNet網絡結構
進行醫學圖像分類時,分類的準確率取決于醫學圖像的生成采集及處理分析。隨著技術的不斷發展,目前在圖像生成采集方面已經取得了長足發展,醫學圖像設備能夠以更快的速率和更高的分辨率完成數據采集。而在圖像處理分析上,目前大都由專業醫生來完成,然而醫生在進行圖像分析處理時會存在認知差異及疲勞等問題。與人相比,計算機在處理這類問題時,不受上述限制,將計算機技術應用于醫學圖像分析處理是目前的研究熱點。
與自然場景下圖像分類任務相比,醫學圖像分類具有領域知識要求較高、分類類別相對較少、圖像成像機理復雜及分類代價敏感性高等特點。以肺炎分類問題為例,CXR是進行診斷的重要依據,通常肺炎在CXR上表現為不透明度增加的區域,然而有很多原因也會導致肺部不透明度增加,如肺水腫、術后肺部變化、胸腔積液等[12],這就要求診斷者需要具有很高的細分領域知識。此外,當肺炎分類診斷發生錯誤時,會導致嚴重的醫療事故,體現出其分類代價敏感性。
目前,使用深度學習進行醫學圖像分類呈現出快速發展的趨勢。國內外很多學者正在進行深入研究,如將VGG16應用于肺結節檢測與分類[13];將可分離U-Net網絡結構和區塊鏈結合應用于新冠肺炎病毒輔助診斷[14]等。

圖3 肺炎CXR及正常CXR
聯邦學習作為一種分布式學習框架,天然便具有服務器—客戶端體系結構,本研究也采用該結構來實現所涉及的算法,如圖4所示。其中,中心服務器主要負責協調各客戶端進行模型訓練及全局模型參數聚合,客戶端利用本地數據進行模型訓練,并將訓練得到的模型參數上傳給中心服務器。通過多次迭代后最終得到全局模型。

圖4 系統結構圖
本研究中,各數據持有者作為客戶端參與模型訓練。客戶端集合為C={1,2,3,…,N},客戶端Ck擁有的數據記為Dk,所有客戶端用戶擁有的數據集構成總的數據集合D。客戶端進行本地模型訓練前,首先要在服務器端下載全局模型m及初始權重參數w,然后使用本地數據進行模型訓練。設Fk(w)為第k個客戶端的目標函數。
(1)
其中,Dk為第k個客戶端擁有的數據集合,fi(w)為相應的損失函數。將Dk中所有數據的損失函數求和并除以數據量|Dk|即可得到該客戶端的平均損失函數。本文針對CXR圖片進行肺炎分類,使用AlexNet等深度神經網絡模型作為訓練模型,采用交叉熵作為損失函數。
(2)
式中,y,y′分別為預測值及真實值,n為分類類別。
通過優化器不斷尋優,求解損失函數的最小值,可使模型的精度不斷提升,獲得較好的性能。本地客戶端模型權重更新公式如下,其中wt,k表示客戶端Ck在t時刻的模型權重,η為學習率。
wt,k=wt-1,k-η?Fk(w)
(3)
本地客戶端完成訓練之后,將wt,k上傳至服務器端,待服務器端完成權重聚合之后,再次下載全局權重更新本地模型并進行下一輪迭代訓練直至全局模型訓練完成。
服務器端控制整個模型訓練過程。首先服務器端協調各個客戶端確認待訓練模型,并完成系統初始化設置。此外,為保證數據客戶端數據隱私性,訓練數據僅保存在客戶端本地,各客戶端僅將更新之后的權重w上傳到服務器端,服務器端要完成整個模型參數w的聚合。目前,模型參數聚合的方法有多種,本文采用文獻[15]提出的聚合方法FedAvg,其計算公式為:
(4)

綜上,PCFDL算法流程如下:
(1)系統初始化。服務器端完成初始模型m及權重w設置,并下發給各個客戶端;
(2)本地模型訓練。各客戶端下載模型m、權重w后,利用本地數據Dk進行模型訓練,并將更新后的wt,k上傳到服務器端;
(3)服務器端中心聚合。服務器端接收到各客戶端上傳的wt,k后,進行模型聚合,并將聚合之后的w再次下發給各個客戶端;
(4)判斷是否滿足迭代結束條件。若滿足,則完成全局模型訓練;否則,反復迭代2~3步。
本文所采用的實驗數據集為由廣州市婦幼保健院開發的5856張帶標簽的CXR圖像,每張圖像均被劃分為正常或肺炎。整個數據集劃分為訓練集、測試集和驗證集,其中訓練集有5219張圖像、測試集有624張圖像,兩者比例關系為8:2,驗證集數據量較少,僅有16張(肺炎圖像與正常圖像各8張),數據集基本情況如表1所示。實驗過程中,為驗證不同數據情況下的算法性能,研究會對數據集進行重新劃分。

表1 chest x-ray數據集情況表
研究采用Accuracy(準確率)作為評判指標。Accuracy越大表示模型分類準確率卻高,其計算公式如下:
(5)
其中TP、FP、FN、TN分別表示真陽、假陽、假陰、真陰。

表2 混淆矩陣
為驗證所提方法在保護數據隱私前提下的性能,采用AlexNet網絡作為分類模型,分別用聯邦學習模式和集中式進行訓練。訓練過程中,保持參數設定一致,優化器選擇隨機最速下降法(Stochastic Gradient Descent,SGD),激活函數采用Relu,訓練輪數epoch設為100,batch size設為32,學習率η設為0.001。此外,在聯邦學習模式中,將訓練數據隨機分成5份,假定有5個客戶端同時參與訓練,采用公式(4)進行參數聚合。

圖5 兩種模式下AlexNet模型準確度

圖6 兩種模式下AlexNet模型損失曲線
通過圖5、圖6可以看出,集中式訓練模式下,AlexNet模型可以獲得更好的分類準確性。當epoch達到100次時,模型的分類準確率可達到92.6%。與集中式訓練模式相比,聯邦學習模式下各客戶端均在本地進行模型訓練,僅將模型參數上傳服務器,此過程中數據不出本地,可以有效保護數據隱私,并且最終聚合之后的AlexNet模型分類準確率雖較集中式略有下降,但仍達到了90.9%,可以較好地完成CXR上的肺炎分類任務。
表3給出了各客戶端只利用本地數據訓練出的模型和服務器端模型的分類準確性。可以看出,各客戶端單獨訓練出的模型性能較差,分類準確度僅在58%~72%之間。而通過聯邦學習,有效地整合了各方數據,獲得了更好的模型性能。研究表明,面對當前醫療領域數據存在的數據孤島現象,聯邦學習具有積極的意義。

表3 客戶端服務器端分類準確度對比
為驗證研究所提方法面對不同分類模型是否仍具有較好的性能,選擇AlexNet、Vgg16、ResNet18三個模型進行驗證,結果如圖7所示。可以看出,三種模型在聯邦學習框架下均獲得了較好的分類準確度,表明研究所提方法具有較好的推廣性。

圖7 不同模型間性能對比
研究提出了一種基于聯邦學習和深度學習的肺炎分類方法,面對醫療數據領域存在的數據隱私保護要求及數據孤島問題,利用聯邦學習技術可以有效解決上述問題,整合多方資源完成聯合模型訓練。在廣州市婦幼保健院開發的CXR圖像數據集上,對所提方法進行了驗證,實驗結果表明,所提出的方法可以取得和集中式訓練相似的性能,且具有很好的推廣性。在下一步的研究中,將考慮加入激勵機制吸引更多的數據方參與到模型的訓練中,使模型性能進一步提升。同時,聯邦學習訓練方式尚存在客戶端掉線等問題,未來可以改進通信機制,使訓練過程更加穩定。