李柏松
(南華大學計算機學院,湖南衡陽,421200)
本文提出了一種基于聯邦學習的組織病理學腫瘤檢測算法算法,首先建設一個中心服務節點用以對邊緣節點的管理和檢測模型的構建,在對應各個醫療機構的邊緣節點鏈接中心節點后,中心節點不斷的使用邊緣節點的數據對預測模型進行訓練,在訓練的過程中通過隱私差分等方法傳遞梯度,使得中心節點的模型收斂,最后獎訓練好的模型分發給邊緣節點。這樣,各個邊緣節點在得到一個更加優質的模型的同時,保護了患者的隱私。
選擇卷積神經網絡(CNN)用于訓練模型,并使用Pytorch框架進行實現。卷積神經網絡中一般分為卷積層、Relu層、下采樣層和全連接層,卷積神經網絡的訓練過程分為兩個階段。為實現組織癌預測,我們設計一種簡單卷積神經網絡。該網絡由五個卷積層和一個全連接層組成。通過多個卷積層堆疊提取圖像特征,得到圖像的全部表征信息,將原始數據映射到隱層特征空間,在每個卷積層之后使用最大池化層提取主要特征,減少計算量和參數個數,防止模型過擬合。通過全連接層將學習到的特征映射映射到樣本標記空間,實現分類。
在該網絡模型中,為防止由于Relu的輸入值為負的時候,輸出及其一階導數始終為0,導致神經元不能更新參數,這被稱為“Dead Neuron”。為解決Relu函數的缺點,我們使用Leaky_Relu激活函數。
Leaky_Relu函數:

Leaky_Relu與Relu很相似,僅在輸入小于0的部分有差別,Relu輸入小于0的部分值都為0,而Leaky_Relu函數通過把x xx的非常小的線性分量給予負輸入αx 來調整負值的零梯度問題,α通常在0.01左右。
如圖1所示,第一個階段是數據由低層次向高層次傳播的階段,即前向傳播階段。另外一個階段是,當前向傳播得出的結果與預期不相符時,將誤差從高層次向底層次進行傳播訓練的階段,即反向傳播階段,訓練流程如下:

圖1 總體設計流程
(1)網絡進行權值的初始化;
(2)輸入數據經過卷積層、下采樣層、全連接層的向前傳播得到輸出值;
(3)求出網絡的輸出值與目標值之間的誤差;
(4)當誤差大于期望值時,將誤差傳回網絡中,依次求得全連接層、下采樣層、卷積層的誤差,根據誤差進行權值更新,然后再次進入到第二步;當誤差等于或小于期望值時,結束訓練。
采用聯邦學習框架(Flower)訓練深度學習模型,如圖2所示,其將模型的訓練分布在多個客戶端中,它們分別擁有一部分用于訓練的醫療數據,最終的模型建立在中間服務器中。云服務端通過收集終端的模型參數進行運算,然后進行下一輪的共享模型參數運算,之后將分享后的模型參數分發到其下的各個客戶端,完成聯邦學習的一個通信輪次。這體現了邊緣計算“云-邊-端”架構,使得模型訓練時間大大減少,系統響應時間更短,更利于數據整合和遷移。在此過程中,用戶的數據不會向外傳輸到總服務器,防止隱私泄露問題的發生。

圖2 總體設計流程
為了抵御攻擊者去匿名化的隱私攻擊,保護訓練數據中個人的敏感信息,在聯邦學習框架中結合用戶級的差分隱私,使得攻擊者無法推測單個用戶的敏感信息,實現對訓練數據的保護。在具體的深度學習算法模型中(如組織腫瘤預測模型),采用Opacus庫訓練出帶有差分隱私的PyTorch模型,主要過程分為兩步:
(1)前向傳播步驟(Forward step):將同一批次的數據(BATCH)輸入神經網絡層(Layer),并把上一層的輸出作為下一層的輸入,并計算下一層的輸出,一直到運算到輸出層為止,得到最終的函數損失Loss。
(2)反向傳播步驟(Backward step):根據上一步的Loss可以獲得相應的損失梯度。而同一批次數據不同樣本會有不同的梯度,將同一批次不同樣本的梯度先進行裁剪(Clip),隨后將同一批次的不同梯度進行整合(Aggregate),梯度將累積到一個梯度張量,然后再將噪聲(Noise)添加其中。添加噪聲需要—種微妙的平衡:噪聲過多會破壞信號,過少則無法保證隱私。最后通過添加噪聲的梯度更新模型參數(Params)。
假設原本所有客戶端都是云服務器的可信任用戶,若新的客戶端節點在此后加入模型訓練和共享的環節,則可能出現最終模型的泄露。針對此類可能存在的不安全行為,引入可追蹤的環簽名技術,在保障匿名性的同時實現部分角色的可追蹤性。在上述泄露模型的情況中,云服務端可在環簽名成員的配合下辨別泄露模型的客戶端,以此進行問責達到威懾作用。具體來說,環簽名是一個能夠實現簽名者無條件匿名的簽名方案,簽名者可以在n個公鑰中隱藏自己擁有私鑰所對應公鑰。環簽名方案存在不可追蹤簽名者真實身份的問題,使用身份密碼體制和雙線性對技術,可以達到追蹤簽名者身份的目的,在必要時由PKG(Private Key Generator)充當仲裁驗證者,定位真實簽名者,具體過程如下:
(1)環簽名生成:簽名者(假設為用戶K)隨機選擇 n-1個成員作為環成員,生成環公鑰,然后使用自身的私鑰生成環簽名。
(2)簽名者身份追蹤:驗證者向PKG提發送仲裁驗證請求,PKG與環中所有成員進行一次交互,通過雙線性確認簽名者身份(用戶K)。
聯邦學習一般使用梯度下降算法實現模型的最優化。梯度可表示(或者近似)為加法和乘法的混合運算,因此聯邦學習的本質需求是加法和乘法運算進行保護,則同態加密技術可滿足該需求,由于全同態加密計算復雜度特別高,聯邦學習一般使用半同態加密,比較常見的是Paillier半同態加密,滿足如下性質的加法同態:

其中:[·]表示Paillier加密操作,前者稱為加法同態,后者稱為數乘同態,數乘事實上是多個相同數值的加法。
有了這兩個性質,就可以解決分布式學習所需的各種隱私保護計算了,例如基于梯度下降的迭代優化。以包含兩個成員(A和B)的聯邦線性回歸場景為例, A方的梯度計算式核心部分如下:

上式包含加法和乘法兩種運算,可使用加法()同態和數乘同態實現。值得注意的是,這里的加密還具有非對稱加密的性質,密碼包括<公鑰,私鑰>,使用公鑰加密的數據只能通過對應的私鑰解密。表示用A的公鑰加密,這個公鑰會共享給聯邦成員,聯邦成員可以使用這個公鑰對數據進行加密,得到的密文只能由A通過自己的私鑰加密;同理,使用B的公鑰加密得到的密文只能由B解密。式子(3)可分級為如下步驟進行計算:
首先,使用加法同態計算其中的vA+δB,包括以下兩個步驟:
針對線性回歸模型,聯邦學習梯度下降算法的交互過程(A方)如圖2所示。
目前,實現差分隱私常用的機制有拉普拉斯機制、高斯機制和指數機制。在該應用中我們通過使用高斯機制實現(ε , δ)-差分隱私的保護,擁有更高的數據可用性。

圖3 聯邦學習梯度下降算法的交互過程

高斯機制滿足近似差分隱私定義,即有δ的失敗率。盡管有一些隱私性的犧牲,但一般高斯機制所需要注入的噪聲量更少,也因此在可用性上要略優于拉普拉斯機制。
系統以智慧醫療為背景,在邊緣計算場景下,如圖4所示,設計了一個針對可控疾病的安全醫療預測與診斷系統(如組織腫瘤的檢測),其中“安全”體現在三層隱私保護模式:

圖4 針對可控疾病的安全醫療預測與診斷系統
①本地原始數據保護--基于邊緣計算的聯邦學習框架:聯邦學習旨在將模型的訓練分布在多個客戶端中,體現了邊緣計算模式,參與者的醫療數據不會向外傳輸到服務器,防止隱私泄露問題的發生。
②訓練數據中個人敏感信息保護--差分隱私:在邊-云服務器進行組織腫瘤檢測模型訓練過程中結合差分隱私,使得攻擊者無法推測單個用戶的敏感信息,實現對訓練數據的保護。
③醫療診斷機器學習模型保護--環簽名技術:利用可追蹤的環簽名技術可以追查所泄露的訓練模型來源于某個具體的中間服務器,由此進行威懾和問責,以實現對邊緣計算場景下數據模型傳輸的保護。
2.2.1 數據模型保護
如圖5所示,使用邊緣計算模式下的聯邦學習框架Flower實現對原始數據的保護,Opacus框架中差分隱私隨機梯度下降實現對個人敏感信息保護,最后使用環簽名技術保護整個機器學習模型。

圖5 數據模型保護
2.2.2 系統設計
以智慧醫療為背景,在邊緣計算場景下,設計了一個針對可控疾病(如組織腫瘤)的安全醫療預測與診斷系統。系統采用Flower聯邦學習框架,分為云服務器-中間服務器(又叫邊緣節點)-客戶端三層結構,將模型的訓練分布在多個客戶端中,它們分別擁有一部分用于訓練的醫療數據,最終的模型建立在中間服務器中。服務端通過收集終端的模型的參數進行運算,然后進行下一輪的共享模型參數運算,之后將分享后的模型參數分發到其下的各個客戶端,完成聯邦學習的一個通信輪次。在此過程中,用戶的數據不會向外傳輸到云服務器,結合差分隱私隨機梯度下降算法實現對個人敏感信息保護,最后使用可追蹤的環簽名技術保護整個機器學習模型。總而言之,我們設計的針對可控疾病的深度學習模型能以較高精確度預測患者是否患該疾病(如組織腫瘤),并實現了從全部患者數據到個人敏感信息再到預測模型的三層保護。
關于數據集,我們查閱了Kaggle,COCO Dataset,ICADR,GitHub等專業數據庫平臺。最后經過分析對比篩選,我們選取了Kaggle數據庫中已標注處理的原始淋巴切片細胞圖片,其中標簽為陽性的淋巴切片細胞圖片與標簽為陰性的淋巴切片細胞圖片各占了50%。本文檔主要以原始淋巴切片細胞圖片作為數據集的組織腫瘤預測模型進行分析,為了驗證不同疾病模型在基于邊緣計算的安全診斷系統中的適用性,我們還準備了X光胸片數據集和對應的肺結核預測模型作為另一選擇,模擬真實醫療環境下對患者不同疾病的診斷。
在對淋巴切片細胞的組織腫瘤檢測中,選取了不同的深度學習模型進行對比,包括Logistic,SVM,RandomForest和CNN,以準確率ACC和ROC曲線下面積AUC評價模型預測效果,比較得出CNN效果最好。