陳海宇
(肇慶醫(yī)學(xué)高等??茖W(xué)校公共衛(wèi)生學(xué)院,廣東肇慶 526070)
隨著數(shù)字化在社會(huì)和經(jīng)濟(jì)等各個(gè)方面的不斷普及,導(dǎo)致產(chǎn)生的數(shù)據(jù)量不斷增加.在處理用戶生成的敏感數(shù)據(jù)時(shí),如何保護(hù)用戶的隱私不被泄露是一個(gè)重要問題,也就是說,用戶不希望其他人對(duì)其擁有的機(jī)密信息進(jìn)行分析,從而得出任何結(jié)論[1].聯(lián)邦學(xué)習(xí)的提出,加強(qiáng)了用戶的隱私保護(hù),為解決此問題提供了一種有效方法[2].
醫(yī)療領(lǐng)域是聯(lián)邦學(xué)習(xí)的一個(gè)重要應(yīng)用領(lǐng)域[3].每個(gè)醫(yī)療機(jī)構(gòu)可能擁有大量的患者數(shù)據(jù),但是基于這些獨(dú)立數(shù)據(jù),不足以構(gòu)建并訓(xùn)練出性能良好的預(yù)測(cè)模型,進(jìn)而更好地服務(wù)于醫(yī)療工作.針對(duì)這個(gè)問題,醫(yī)療機(jī)構(gòu)之間共享數(shù)據(jù),可以極大地幫助開發(fā)自動(dòng)化診斷工具,從而有效解決這個(gè)問題.但是這些患者數(shù)據(jù)都屬于私人信息,醫(yī)院有義務(wù)保護(hù)患者的隱私,再加上法律法規(guī)的約束,阻礙了機(jī)構(gòu)之間的數(shù)據(jù)共享[4].聯(lián)邦學(xué)習(xí)的應(yīng)用可以幫助醫(yī)療行業(yè)的不同機(jī)構(gòu),在不共享患者數(shù)據(jù)的情況下,聯(lián)合訓(xùn)練機(jī)器學(xué)習(xí)模型[5,6].
為了解決全局模型的學(xué)習(xí)問題,聯(lián)邦學(xué)習(xí)的主流方式如下[7,8]:首先,根據(jù)問題的先驗(yàn)知識(shí),構(gòu)建一個(gè)基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),用戶利用某種梯度下降的方法訓(xùn)練局部模型;然后,服務(wù)器端聚合各局部模型參數(shù),完成全局模型的更新.這個(gè)過程經(jīng)過多次迭代,最終實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練.聯(lián)邦平均算法是一種典型的聯(lián)邦學(xué)習(xí)算法,在解決聚合問題時(shí)具有很好的效果,但這種方式仍然面臨著一些威脅[9,10].例如,當(dāng)攻擊者獲得了全局模型,并劫持了用戶的局部模型更新梯度時(shí),就可以倒推出用戶的部分隱私數(shù)據(jù).為了進(jìn)一步加強(qiáng)用戶的隱私保護(hù),差分隱私、安全多方計(jì)算等方法被應(yīng)用到聯(lián)邦學(xué)習(xí)算法中[11].雖然這些方法很有效,卻給聯(lián)邦學(xué)習(xí)帶來了更大的計(jì)算壓力和通信開銷.
最近,研究人員提出了一種新穎的方法[12],其主要思想如下:結(jié)合遺傳算法的相關(guān)知識(shí),在不使用梯度的情況下訓(xùn)練全局模型,該算法將從單個(gè)用戶到服務(wù)器的數(shù)據(jù)傳輸減少到單個(gè)適應(yīng)度值.通過這種方式,用戶不需要上傳模型的梯度信息,進(jìn)而提高了數(shù)據(jù)的安全性.在該算法的實(shí)驗(yàn)中,使用卷積神經(jīng)網(wǎng)絡(luò)對(duì)腦電波EEG(electroencephalography)信號(hào)進(jìn)行分類,驗(yàn)證了遺傳算法應(yīng)用于聯(lián)邦學(xué)習(xí)的可行性.本文基于該算法,使用改進(jìn)的遺傳算法對(duì)模型進(jìn)行優(yōu)化,并與該算法進(jìn)行了比較.
全局模型的結(jié)構(gòu)對(duì)于聯(lián)邦學(xué)習(xí)的實(shí)際表現(xiàn)至關(guān)重要.針對(duì)上述問題,選擇專門為腦電圖預(yù)測(cè)問題設(shè)計(jì)的文獻(xiàn)[13-15]中介紹的淺卷積網(wǎng)絡(luò).該網(wǎng)絡(luò)的核心是3個(gè)卷積層,旨在識(shí)別信號(hào)中的特征信息.前兩個(gè)卷積層之后是一個(gè)池化層,隨后是第三個(gè)卷積層.在這一層的輸出上,應(yīng)用批處理歸一化,然后添加了帶有sigmoid激活函數(shù)的全連接輸出層.
為了使適應(yīng)度在遺傳訓(xùn)練中最大化,選擇負(fù)均方誤差(NMSE),計(jì)算方法如式(1)所示:
結(jié)合NMSE進(jìn)行適應(yīng)度的評(píng)價(jià),原始的單目標(biāo)優(yōu)化問題就轉(zhuǎn)換為優(yōu)化神經(jīng)網(wǎng)絡(luò)中w的值,使得計(jì)算出的NMSE值最大化,如下式所示:
在本文中,個(gè)體的生成,即選擇、交叉和變異發(fā)生在中央服務(wù)器的一個(gè)集中位置.系統(tǒng)的連接節(jié)點(diǎn)通過評(píng)估不同的設(shè)置來參與優(yōu)化.一個(gè)個(gè)體的適應(yīng)度可以通過對(duì)局部適應(yīng)度值的加權(quán)平均來計(jì)算.
在本節(jié)中,將描述求解問題時(shí)不同階段采用的特定方法.
(1)編碼
使用直接編碼方式對(duì)上述介紹的神經(jīng)網(wǎng)絡(luò)進(jìn)行編碼,模型中的連接權(quán)重等參數(shù)使用實(shí)數(shù)進(jìn)行編碼.例如,對(duì)于具有30個(gè)卷積核的卷積層,卷積核的大小為1×25時(shí),對(duì)應(yīng)的編碼采用30×1×25的矩陣進(jìn)行實(shí)數(shù)編碼.
(2)種群初始化
開始時(shí),創(chuàng)建一個(gè)初始種群,其中每個(gè)個(gè)體隨機(jī)初始化模型的權(quán)重.從初始種群開始,沿著計(jì)算適應(yīng)度-選擇-交叉-突變循環(huán)迭代.
(3)交叉操作
交叉方式?jīng)Q定了從父代生成新個(gè)體的方法,從種群中隨機(jī)選擇兩個(gè)父代個(gè)體,用于生成子代.下面介紹了4種交叉的方式:
(a)對(duì)半混合:這種交叉方式實(shí)現(xiàn)起來比較簡(jiǎn)單,通過將第一個(gè)父代個(gè)體的基因前半部分與第二個(gè)父代個(gè)體的基因后半部分結(jié)合在一起,構(gòu)成子代的基因型,使用式(3)表示:
其中,n為個(gè)體基因向量的長(zhǎng)度,并且a=(a1,a2,…,an),b=(b1,b2,…,bn)代表了兩個(gè)父代的基因向量,1 ≤i≤n.
(b)交錯(cuò)混合:在這種方式中,來自兩個(gè)父代的基因向量通過交錯(cuò)賦值的方式,來創(chuàng)建后代向量,如下式所示:
其中,n為個(gè)體基因向量的長(zhǎng)度,a和b代表兩個(gè)父代基因向量.
(c)均值混合:在這種交叉方式中,取兩個(gè)父代個(gè)體的基因向量在相同位置上的平均值,創(chuàng)建子代的基因向量,可以表示為下式:
其中,n為個(gè)體基因向量的長(zhǎng)度,a和b代表兩個(gè)父代基因向量.
(d)卷積核交叉:這種交叉的方式,較上述3種有著本質(zhì)上的不同,特點(diǎn)是保留了部分父代個(gè)體的模型信息.在每個(gè)卷積層中,有多個(gè)卷積核/過濾器.這些卷積核對(duì)數(shù)據(jù)進(jìn)行特征提取,保存著關(guān)鍵的模式信息,從而幫助神經(jīng)網(wǎng)絡(luò)更好地學(xué)習(xí)數(shù)據(jù)集.類似地,在全連接層中,神經(jīng)元的輸入權(quán)重也描述了前一層的某些模式.卷積核交叉通過將父代基因向量中每一層的卷積核隨機(jī)混合,生成子代個(gè)體的基因型.這種方式保證了交叉過程中卷積核的完整性,使得神經(jīng)網(wǎng)絡(luò)的模式信息得到保留,表達(dá)式如式(6)所示:
其中,num_channel為個(gè)體基因向量中卷積核的個(gè)數(shù),a和b代表兩個(gè)父代基因向量,channel_i表示第i個(gè)卷積核,μ為取值范圍在0-1之間的隨機(jī)數(shù).
前3種交叉方式,實(shí)現(xiàn)過程比較簡(jiǎn)單.由于沒有考慮到神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和卷積核的學(xué)習(xí)模式,在一些實(shí)驗(yàn)中模型的收斂性能較差.卷積核交叉方式是一種更高層次的方法,用來作為遺傳神經(jīng)網(wǎng)絡(luò)的交叉方式,具有很高的適用性.在自然界中,遺傳也是一種更高層次的基因混合,而不是有機(jī)分子的低層次混合.因此,父母的特征是完整的,它與遺傳學(xué)的相似之處可以概括為:DNA 代表了網(wǎng)絡(luò)的權(quán)值,而基因則代表的是卷積核.本算法采用了卷積核交叉來進(jìn)行交叉操作.
(4)變異
交叉操作本質(zhì)上是父代個(gè)體的交叉組合,在此基礎(chǔ)上,使用變異操作增加產(chǎn)生新個(gè)體的潛力,可以進(jìn)一步擴(kuò)大算法的搜索空間,找到適應(yīng)度更高的個(gè)體.為了定義變異算子,首先需要定義變異基因的數(shù)量和這些基因上的改變量.對(duì)于前者,使用一個(gè)概率值來確定個(gè)體基因中每個(gè)值的變異概率;后者是一個(gè)浮點(diǎn)值,用于確定對(duì)每個(gè)變異基因的變化量.下面介紹兩種執(zhí)行變異操作的方法:
(a)通過偏移量變異:這種方式,通過對(duì)產(chǎn)生變異的節(jié)點(diǎn)添加一個(gè)隨機(jī)值,完成變異的操作.在具體的實(shí)現(xiàn)中,使用到的偏移量是取值范圍在[-mutation_rate,mutation_rate]之間的一個(gè)隨機(jī)值,mutation_rate表示變異概率.
(b)通過乘法進(jìn)行變異:在這種變異方式中,對(duì)產(chǎn)生變異的節(jié)點(diǎn)與一個(gè)隨機(jī)值相乘.在具體的實(shí)現(xiàn)中,乘法因子取值范圍是在之間的一個(gè)隨機(jī)值.
在本文的實(shí)驗(yàn)中,選擇第二種變異算法.
(5)選擇
通過對(duì)當(dāng)前種群基于適應(yīng)度函數(shù)值進(jìn)行排序,得到候選種群.選擇種群中適應(yīng)度函數(shù)值最高的n-1個(gè)個(gè)體,并在種群中余下的個(gè)體間隨機(jī)選擇一個(gè),共同組成下一代種群.這樣做的原因是可以增加種群的多樣性,改善遺傳的方向.
(6)精英保留策略
為了防止種群個(gè)體在遺傳過程中發(fā)生遺傳衰退的現(xiàn)象,在本算法中,加入了覆蓋法[6]作為種群更新的策略.覆蓋法的算法流程如下:
Step 1:計(jì)算當(dāng)前子代個(gè)體的適應(yīng)度,根據(jù)適應(yīng)度值降序排列當(dāng)前子代種群中的個(gè)體.
Step 2:根據(jù)一定的覆蓋比率,將當(dāng)前子代種群中的前ReN個(gè)體替換為精英個(gè)體.
其中ReN的大小可以根據(jù)種群規(guī)模的大小進(jìn)行自適應(yīng)的變化.計(jì)算公式如下式:
其中,ReN是當(dāng)前子代種群中的個(gè)體,Rreplace是種群覆蓋比率,sizepop為當(dāng)前子代的種群規(guī)模.精英保留策略是精英遺傳算法的特有策略,可以有效地防止遺傳倒退現(xiàn)象的發(fā)生,同時(shí)加快搜索效率.
在本節(jié)中,仿真實(shí)驗(yàn)所用電腦配置如下:64 位Windows 操作系統(tǒng),處理器為八核Intel Core i5-9300H CPU@2.40 GHz,內(nèi)存為24 GB,并使用python進(jìn)行了仿真實(shí)驗(yàn).
在實(shí)驗(yàn)中,使用了腦電波(EEG)數(shù)據(jù)集[13].該EEG數(shù)據(jù)集對(duì)122個(gè)受試者分別進(jìn)行了120個(gè)刺激實(shí)驗(yàn).受試者包括兩類:酗酒者與正常對(duì)照組.在每個(gè)實(shí)驗(yàn)中,向受試者展示一張或兩張Snodgrass和Vanderwart圖片集中的圖像,接收到刺激后,對(duì)他們的腦電波進(jìn)行采樣,然后根據(jù)受試者所屬的類別對(duì)腦電波圖像進(jìn)行標(biāo)簽的標(biāo)記.因此,所建立的模型的任務(wù)是,根據(jù)受試者的腦電圖,預(yù)測(cè)受試者屬于兩類人群的哪一類.
本實(shí)驗(yàn)中使用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)使用如下設(shè)置[14]:輸入的數(shù)據(jù)維度為(64,256,1),輸出的類別為兩類:酗酒者與對(duì)照組.采用的神經(jīng)網(wǎng)絡(luò)具有3個(gè)卷積層,第一個(gè)卷積層具有30個(gè)卷積核;后面的兩個(gè)卷積層分別具有10個(gè)和2個(gè)卷積核,并且在第二個(gè)卷積層與第三個(gè)卷積層之間加入了一個(gè)平均池化層;最后是一個(gè)全連接層,采用softmax函數(shù)進(jìn)行分類.
遺傳算法中的種群大小設(shè)置為50,考慮到本算法中沒有使用梯度進(jìn)行模型更新,使得模型收斂的速度較慢,迭代次數(shù)設(shè)為3 000,保證模型最后能夠收斂到一個(gè)穩(wěn)定的水平.交叉采用了卷積核交叉算法,變異操作中的變異概率設(shè)為0.01.
過擬合是深度學(xué)習(xí)中經(jīng)常出現(xiàn)的問題,避免過擬合的主要思想是,在模型的訓(xùn)練期間,不要把整個(gè)數(shù)據(jù)集一次性分配給模型學(xué)習(xí).在每一次迭代中使用訓(xùn)練數(shù)據(jù)的子集進(jìn)行訓(xùn)練,訓(xùn)練集的子集可以每次迭代更改一次,也可以保持幾次迭代不變.通過這種方法,可以有效地避免模型訓(xùn)練后產(chǎn)生過擬合問題.
本實(shí)驗(yàn)中為了避免過擬合,在遺傳聯(lián)邦學(xué)習(xí)的每一代中,隨機(jī)選擇數(shù)據(jù)集整體的一個(gè)子集,對(duì)當(dāng)前種群的適應(yīng)度進(jìn)行評(píng)估.
在服務(wù)器上,保留一個(gè)驗(yàn)證集,在每一代中,計(jì)算并存儲(chǔ)當(dāng)前一代中最適合的模型精度,使用本文帶有精英保留策略的遺傳算法對(duì)該問題進(jìn)行優(yōu)化.同時(shí),為了對(duì)比本文算法的效果,在相同的參數(shù)設(shè)置下,使用遺傳算法對(duì)該問題進(jìn)行優(yōu)化.結(jié)果如圖1和表1所示.
表1 相關(guān)算法模型精度對(duì)比
圖1 模型精度
使用兩種優(yōu)化算法,得到的種群的適應(yīng)度函數(shù)值變化曲線如圖2和表2所示.
表2 相關(guān)算法模型適應(yīng)度對(duì)比
圖2 模型適應(yīng)度
根據(jù)圖(1)和圖(2)可以觀察到本算法收斂是緩慢但穩(wěn)定的.相較于遺傳算法,本文提出的算法具有更好的搜索性能.從一個(gè)完全隨機(jī)的狀態(tài)下,該算法能夠達(dá)到80%的模型訓(xùn)練精度.雖然這低于深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的平均水平,但考慮到模型的更新過程中沒有使用梯度,而是使用了遺傳算法的適應(yīng)度值作為代替,這仍然是一個(gè)很好的結(jié)果.
聯(lián)邦學(xué)習(xí)結(jié)合遺傳算法的一個(gè)優(yōu)勢(shì)是,客戶端傳輸?shù)椒?wù)器的數(shù)據(jù)更少.雖然本文算法收斂速度要慢一些,但由于只公開了模型的一個(gè)適應(yīng)度函數(shù)值,而無需傳輸模型的梯度信息,從而提高了數(shù)據(jù)的安全保障能力.本文算法實(shí)際上是通過犧牲一定的學(xué)習(xí)速度來保護(hù)數(shù)據(jù)的隱私,因此,對(duì)于一些特殊應(yīng)用場(chǎng)景有著較大的優(yōu)勢(shì).比如:對(duì)于來自醫(yī)療機(jī)構(gòu)的數(shù)據(jù),學(xué)習(xí)過程的通信開銷并不是最重要的,而保持用戶數(shù)據(jù)的隱私才是至關(guān)重要的.實(shí)驗(yàn)結(jié)果表明,本文算法較好地保障了醫(yī)療數(shù)據(jù)的隱私安全,具有一定的應(yīng)用價(jià)值.