張 波,徐黎明,2,黃志偉,要小鵬
1.西南醫(yī)科大學(xué) 醫(yī)學(xué)信息與工程學(xué)院,四川 瀘州646000
2.重慶郵電大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,重慶400065
近年來,生成對抗網(wǎng)絡(luò)(Generative Adversarial Nets,GANs)[1]在深度學(xué)習(xí)和圖像處理領(lǐng)域取得了巨大的進(jìn)展,與之前的深度生成模型[2-3]相比,GANs 具有強(qiáng)大的數(shù)據(jù)擬合和近似能力。它不僅消除了馬爾可夫和可展開近似推理網(wǎng)絡(luò)的約束,也為擬合各種數(shù)據(jù)提供了靈活的框架。GANs的概念和框架相對較新,但已成為一個熱門的研究主題。正如LeCun 所說,GANs 是過去十年中機(jī)器學(xué)習(xí)領(lǐng)域最令人興奮的想法。到目前為止,GANs 在Google 學(xué)術(shù)中的引用量已超過17 000 次。隨著GANs理論的不斷成熟以及與其他技術(shù)的融合,它被廣泛地應(yīng)用于包括圖像復(fù)原[4-6]、圖像超分辨率[7-9]、圖像隱寫術(shù)[10]、文本-圖像合成[11]、圖像-圖像轉(zhuǎn)換[12-13]、圖像分類[14]和圖像檢索[15]等多個圖像子領(lǐng)域。
在以生成對抗網(wǎng)絡(luò)或者對抗訓(xùn)練為基礎(chǔ)的圖像模型中,其目標(biāo)函數(shù)往往包含多個損失項(xiàng),每項(xiàng)損失代表一個目標(biāo),旨在完成一種特定的任務(wù),并且這些損失項(xiàng)之間往往存在相互“矛盾”甚至“競爭”的關(guān)系。求解這類非凸函數(shù)的全局最優(yōu)解較難,大部分GANs模型不會直接尋求全局最優(yōu)解,而是先利用交叉驗(yàn)證的方法確定最優(yōu)權(quán)重參數(shù),然后再利用梯度策略和線性搜索方法,沿著梯度下降的方向,搜索帕累托最優(yōu)解。但這種方法存在2個明顯的缺陷:
(1)當(dāng)目標(biāo)數(shù)量較多時,采用交叉驗(yàn)證方式確定權(quán)重參數(shù)的過程非常耗時,并且得到的權(quán)重參數(shù)不能保證對于整體參數(shù)求解是最優(yōu)的。
(2)當(dāng)目標(biāo)數(shù)量較多或者參數(shù)梯度的維度較高時,線性搜索并不能直接應(yīng)用到大規(guī)模學(xué)習(xí)任務(wù)。
根據(jù)文獻(xiàn)[16]的總結(jié),大部分面向應(yīng)用的GANs 模型都包含多個損失函數(shù),并且含有大量參數(shù),梯度的維度較高,這給求解參數(shù)最優(yōu)解帶來了巨大挑戰(zhàn)。對此,本文提出基于梯度策略的多目標(biāo)生成對抗網(wǎng)絡(luò)的帕累托最優(yōu)解搜索算法。
與多目標(biāo)優(yōu)化相關(guān)的是多任務(wù)學(xué)習(xí),有文獻(xiàn)[17]證明可以通過多目標(biāo)優(yōu)化來解決多任務(wù)學(xué)習(xí),并簡單認(rèn)定在優(yōu)化層面多任務(wù)學(xué)習(xí)等同于多目標(biāo)優(yōu)化。當(dāng)給定多個任務(wù)或多個目標(biāo)時,尋找帕累托最優(yōu)解是一個多目標(biāo)優(yōu)化問題。在機(jī)器學(xué)習(xí)中,多目標(biāo)優(yōu)化可以歸納為,訓(xùn)練一個模型來執(zhí)行多個任務(wù),而多個任務(wù)之間可能存在相互“矛盾”的關(guān)系,多目標(biāo)優(yōu)化則能夠優(yōu)化一組可能沖突的目標(biāo)或任務(wù)。常見的優(yōu)化方法是選擇優(yōu)化代理目標(biāo),即,通過最小化多個損失的加權(quán)線性組合來進(jìn)行優(yōu)化。多目標(biāo)優(yōu)化或多任務(wù)學(xué)習(xí)可以通過建立歸納偏差,然后最小化單個任務(wù)經(jīng)驗(yàn)風(fēng)險(xiǎn)的加權(quán)和來進(jìn)行參數(shù)求解。
早期的多任務(wù)學(xué)習(xí)認(rèn)定,對比獨(dú)立地學(xué)習(xí)每個任務(wù),使用來自多個任務(wù)的數(shù)據(jù)能夠取得更好的性能[18]。多任務(wù)學(xué)習(xí)通常是通過參數(shù)共享進(jìn)行的,在實(shí)際求解過程中,參數(shù)共享分為硬參數(shù)共享和軟參數(shù)共享兩種方式。硬參數(shù)共享方法中,一部分參數(shù)共享,另一部分參數(shù)依賴于特定的任務(wù)。采用軟參數(shù)共享方法時,所有參數(shù)都基于特定任務(wù),并且所有參數(shù)都被貝葉斯先驗(yàn)或聯(lián)合詞典約束。現(xiàn)階段,基于梯度策略的多目標(biāo)優(yōu)化方法都是基于硬參數(shù)共享實(shí)現(xiàn)的,因此,本文重點(diǎn)關(guān)注這類方法。
Baxter等人[19]從理論上將多任務(wù)學(xué)習(xí)問題分解為個體學(xué)習(xí)者與元算法。每一個學(xué)習(xí)者要負(fù)責(zé)一項(xiàng)任務(wù),元算法決定怎樣更新共享參數(shù),上述提到的優(yōu)化代理目標(biāo)就使用加權(quán)求和作為元算法?;谶@種方式,后續(xù)有學(xué)者提出了許多改進(jìn)方式。Li 等人[20]提出每個學(xué)習(xí)者都基于核學(xué)習(xí)來進(jìn)行多目標(biāo)優(yōu)化。Zhou 等人[21]首先假設(shè)所有的任務(wù)共享一個詞典,然后提出使用期望似然最大化的元算法來實(shí)現(xiàn)多目標(biāo)優(yōu)化。此外,Zhou等人[22]還提出了群體多目標(biāo)優(yōu)化策略。隨著多目標(biāo)優(yōu)化問題研究日漸成熟,還有學(xué)者將多主體學(xué)習(xí)[23],順序決策[24]和貝葉斯優(yōu)化[25]應(yīng)用到多目標(biāo)優(yōu)化問題中。
此外,基于梯度策略的方法也被提出,并取得較好的結(jié)果。Fliege[26]和Désidéri 等人[27]利用Karush-Kuhn-Tucker(KKT)條件,找到所有目標(biāo)經(jīng)驗(yàn)風(fēng)險(xiǎn)的梯度下降方向,然后在此方向上進(jìn)行線性搜索。由于硬件設(shè)備的不斷發(fā)展,這種策略隨后又被擴(kuò)展到利用隨機(jī)梯度更新,Poirion等人[28]與Chen等人[29]提出了基于不確定性隨機(jī)梯度策略的方法用于多目標(biāo)卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)化。
與本文所提算法最接近的是MGDA[27]算法和Frank-Wolfe[28]算法,二者都基于梯度策略進(jìn)行線性搜索,但這兩種算法適合目標(biāo)數(shù)較少以及參數(shù)梯度維度較低的情況,并不能有效地處理目標(biāo)數(shù)較多的情況。由于GANs包含多個深度神經(jīng)網(wǎng)絡(luò),擁有巨量的參數(shù),梯度維度較高。因此,MGDA 算法和Frank-Wolfe 算法不能直接適用于多目標(biāo)GANs優(yōu)化?;谶@兩種算法,本文所提算法將多目標(biāo)優(yōu)化問題分解為多個兩目標(biāo)優(yōu)化問題,然后再沿著梯度下降的方向進(jìn)行梯度更新和線性搜索。
原始的生成對抗網(wǎng)絡(luò)[1]優(yōu)化采用梯度上升法優(yōu)化判別器,同時采用梯度下降法優(yōu)化生成器,后續(xù)許多GANs 改進(jìn)模型都基于這類梯度策略。由于原始的GANs 中只有一項(xiàng)損失,即,用于擬合真實(shí)數(shù)據(jù)流形的對抗損失,這種梯度策略非常有效。但在面向任務(wù)的GANs 模型[16]中往往包含多種損失。如,圖像復(fù)原任務(wù)中,包含重建損失、視覺感知損失等;圖像-圖像轉(zhuǎn)換任務(wù)中,包含循環(huán)一致性損失,邊緣保持損失等。不難證明,包含多個損失的目標(biāo)函數(shù)是非凸的,可以將這個非凸函數(shù)總結(jié)為:
其中,L={L1,L2,…,Ln}表示不同的損失或者目標(biāo),α={α1,α2,…,αn}表示不同的權(quán)重參數(shù)?,F(xiàn)階段,基于梯度策略的多目標(biāo)GANs 都采用硬參數(shù)共享方法來求解。因此,可以將GANs模型的參數(shù)θ 分為共享參數(shù)θs和特定參數(shù)θk。結(jié)合式(1),可以得出優(yōu)化式為:
其中,K 表示目標(biāo)數(shù)量。前文提到,可以將多任務(wù)學(xué)習(xí)看作是多目標(biāo)優(yōu)化問題,即,優(yōu)化一組可能沖突或競爭的任務(wù)。因此,式(2)可以展開為:
求解式(1)和(3)這類包含巨量參數(shù)的非凸函數(shù)的全局最優(yōu)解較難,是一個可證明的NP難問題。因此,大多數(shù)算法選擇尋求帕累托最優(yōu)解。
對于不同的目標(biāo)數(shù)量,本文采取不同的求解方法。根據(jù)GANs 綜述論文[16],大體上將目標(biāo)數(shù)分為K=1、K=2 和K >2 三種情況進(jìn)行求解。在基本的圖像合成任務(wù)中[1],任務(wù)數(shù)K=1,不存在相互沖突的任務(wù)或目標(biāo)。此時可以認(rèn)定帕累托最優(yōu)解即為模型的全局最優(yōu)解,按照GANs提供的梯度策略方法進(jìn)行求解即可。當(dāng)任務(wù)數(shù)K >1 時,GANs 的結(jié)構(gòu)多為深度編碼-解碼結(jié)構(gòu)。對此,將編碼器參數(shù)設(shè)置為共享參數(shù),解碼器參數(shù)設(shè)置為特定參數(shù)進(jìn)行求解。
現(xiàn)在已經(jīng)有一些基于梯度策略的方法能夠有效搜索帕累托最優(yōu)解。MGDA 就是一種典型的方法,該方法通過添加KKT(Karush-Kuhn-Tucker,KKT)條件到共享參數(shù)和特定參數(shù)上,進(jìn)行求解。
文獻(xiàn)[27]已經(jīng)證明滿足上述KKT 條件的任何解均為帕累托最優(yōu)解,并且,帕累托最優(yōu)解要么為0 且所得模型參數(shù)和權(quán)重參數(shù)滿足KKT 條件,要么帕累托最優(yōu)解位于參數(shù)梯度下降方向。因此,所得的多目標(biāo)優(yōu)化算法是針對任務(wù)特定參數(shù)的梯度下降,即,求解:
此時,搜索帕累托最優(yōu)解比較容易,可以計(jì)算式(5)(二次方程)的最優(yōu)權(quán)重參數(shù)為:
當(dāng)確定最優(yōu)權(quán)重參數(shù)后,可視化搜索帕累托最優(yōu)解的過程,如圖1所示。
圖1 K=2時,三種可能的帕累托最優(yōu)解
根據(jù)以上分析,可以得出當(dāng)K=2 時的搜索算法,如算法1所示。
算法1兩目標(biāo)帕累托最優(yōu)解算法
圖1 表明,當(dāng)K=2 時,帕累托最優(yōu)解的范圍較小。因此,通過算法1能夠有效地搜索出帕累托最優(yōu)解。以CE 模型[4]和SRGAN 模型[7]為例,這兩種模型只包含兩種損失,采用式(6)確定的權(quán)重參數(shù),與使用交叉驗(yàn)證的方式獲得的權(quán)重參數(shù),對GANs模型產(chǎn)生了相當(dāng)?shù)男阅苡绊?。但是算?不需要繁瑣的交叉驗(yàn)證,能夠進(jìn)一步縮短訓(xùn)練時間。
K=1 或K=2 可以看作多目標(biāo)GANs優(yōu)化的特例,而K >2 是多目標(biāo)GANs 優(yōu)化的一般情況。當(dāng)K >2時,采用常見的交叉驗(yàn)證方法確定權(quán)重參數(shù)非常耗時。隨著目標(biāo)數(shù)量的增加,驗(yàn)證過程的耗時情況幾乎呈指數(shù)增長。同時目標(biāo)數(shù)量的增加,目標(biāo)之間的“沖突”情況更復(fù)雜;參數(shù)維度較高,直接應(yīng)用線性搜索算法容易陷入局部最優(yōu)?;贛GDA算法,所提算法將多目標(biāo)GANs優(yōu)化問題分解為多個兩目標(biāo)優(yōu)化,確定最優(yōu)權(quán)重參數(shù)之后,再沿著的方向使用線性搜索來獲取帕累托最優(yōu)解。具體如算法2所示。
算法2多目標(biāo)帕累托最優(yōu)解算法
此時,GANs 模型達(dá)到最優(yōu)狀態(tài),各項(xiàng)損失不再變化,梯度不再更新。因此,α={α1,α2,…,αK}即為式(4)的最優(yōu)權(quán)重參數(shù),并且當(dāng)前參數(shù)為該式的最優(yōu)解。
其中,λ=1-ω 是常數(shù),ω 表示固定權(quán)重參數(shù)的和。
綜上所述,多目標(biāo)GANs 優(yōu)化取決于特定的目標(biāo)數(shù),當(dāng)K=2 時,采用算法1進(jìn)行優(yōu)化求解;當(dāng)K>2 時,采用算法2進(jìn)行優(yōu)化求解。
為了驗(yàn)證算法1 和算法2 在實(shí)際應(yīng)用中的有效性,主要對比兩種權(quán)重參數(shù)確定方式以及對圖像任務(wù)的性能差異:
方式1利用交叉驗(yàn)證方法確定權(quán)重參數(shù);
方式2利用算法1或算法2確定權(quán)重參數(shù)。
對比算法涉及圖像修復(fù),圖像超分辨,圖像-圖像轉(zhuǎn)換和圖像哈希檢索等多個領(lǐng)域。具體算法包括:CE[4]、SRGAN[7]、RankSRGAN[8]、BicycleGAN[12]、SNSR-GAN[13]和BGAN[15]。進(jìn)行實(shí)驗(yàn)對比時,采用原文獻(xiàn)提供的數(shù)據(jù)集和源代碼,所提算法和所有對比算法的仿真實(shí)驗(yàn)建立在“四核Intel?Core?i-7685K CPU @3.6 GHz”處理器和四塊“NVIDIA Titan V”的硬件環(huán)境上。
為了直觀展示算法1 和算法2 的優(yōu)勢,選擇PSNR和SSIM 收斂情況進(jìn)行對比,所有模型重復(fù)訓(xùn)練500次。PSNR和SSIM的定義分別如下:
其中,M和N分別表示圖像的大小,I(x,y)和I*(x,y)分別表示原始圖像和變換圖像。Max(I(x,y))表示原始圖像中最大的像素值[30]。
其中,L(x,y)表示亮度函數(shù),C(x,y)表示對比度函數(shù),T(x,y)表示結(jié)構(gòu)函數(shù)。α、β和γ表示對應(yīng)函數(shù)的權(quán)重[30]。
根據(jù)目標(biāo)數(shù)(損失項(xiàng)數(shù)量),將從以下三方面討論所提算法的有效性。
本節(jié)實(shí)驗(yàn)主要對比CE 模型[4]和SRGAN 模型[7],這兩種模型均包含兩種損失函數(shù),即,K=2。CE模型包含對抗損失和重建損失(L范數(shù)),SRGAN 模型包含對抗損失和內(nèi)容損失。盡管內(nèi)容損失還包括MSE 損失(Mean Square Error,MSE)和視覺感知損失,但二者權(quán)重相同,可以認(rèn)定SRGAN 只包含兩種損失。實(shí)驗(yàn)結(jié)果對比如圖2、圖3所示。
圖2 方式1、方式2在CE模型上的性能對比
圖3 方式1、方式2在SRGAN模型上的性能對比
圖2、圖3 顯示,采用算法1 確定的權(quán)重參數(shù)與原文采用交叉驗(yàn)證方法確定的權(quán)重參數(shù),對模型的整體性能影響相當(dāng),二者都能產(chǎn)生較好的實(shí)驗(yàn)效果。但是在實(shí)際訓(xùn)練過程中,算法1 耗時少,可操作性和參數(shù)自適應(yīng)更強(qiáng)。
本節(jié)實(shí)驗(yàn)主要對比RankSRGAN[8]、BicycleGAN[12]和BGAN[13]模型,這三種模型的目標(biāo)數(shù)分別為:K=3、K=4 和K=5。如前文分析,由于目標(biāo)數(shù)較多,采用交叉驗(yàn)證確定權(quán)重參數(shù)異常耗時。因此,實(shí)驗(yàn)直接采用原文中的權(quán)重參數(shù)和訓(xùn)練數(shù)據(jù)集。實(shí)驗(yàn)結(jié)果對比如圖4~6所示。
圖4 方式1、方式2在RankSRGAN模型上的性能對比
圖5 方式1、方式2在BicycleGAN模型上的性能對比
圖6 方式1、方式2在BGAN模型上的性能對比
圖4~6 顯示,當(dāng)K>2 時,對比交叉驗(yàn)證,算法2 具有明顯的優(yōu)勢,并且目標(biāo)數(shù)量越多,產(chǎn)生的優(yōu)勢越明顯。此外,結(jié)合圖2~6 可以看出,采用方式1 訓(xùn)練的模型,獲得的PSNR或SSIM值收斂性較差,這間接地說明了采用方式1確定權(quán)重參數(shù)并非最優(yōu)權(quán)重,同時也說明了對于權(quán)重參數(shù)敏感的模型而言,非最優(yōu)權(quán)重參數(shù)對模型的性能影響較大。
本節(jié)實(shí)驗(yàn)選擇SNSR-GAN 模型[13]進(jìn)行驗(yàn)證。該模型包含6種目標(biāo),但為保證病理不變性和保持醫(yī)學(xué)圖像的邊緣信息,根據(jù)先驗(yàn)知識,設(shè)置了其中3個權(quán)重參數(shù),即,該模型中的部分權(quán)重參數(shù)是確定的。此時,需要將算法2中的步驟8替換為式(15)。實(shí)驗(yàn)對比結(jié)果如圖7所示。圖7顯示,對于多目標(biāo)優(yōu)化任務(wù)并且部分權(quán)重參數(shù)確定的情況,所提算法仍能產(chǎn)生較好的實(shí)驗(yàn)結(jié)果。
圖7 方式1、方式2在SNSR-GAN模型上的性能對比
為比較所提算法與交叉驗(yàn)證方法的計(jì)算耗時情況,本文根據(jù)文獻(xiàn)[4,7-8,12-13,15]提供的源碼,估計(jì)獲取最優(yōu)參數(shù)的時間。結(jié)果如表1所示。
表1 交叉驗(yàn)證與所提算法計(jì)算耗時對比
結(jié)合圖2~7 和表1 的實(shí)驗(yàn)結(jié)果可以看出,當(dāng)不確定權(quán)重參數(shù)的數(shù)量等于2 時,方式1 和方式2 產(chǎn)生相當(dāng)?shù)膶?shí)驗(yàn)結(jié)果,但所提算法可操作性和參數(shù)自適應(yīng)性更強(qiáng),耗時更少;當(dāng)不確定權(quán)重參數(shù)的數(shù)量大于2 時,本文所提算法能夠產(chǎn)生更好的實(shí)驗(yàn)結(jié)果,同時耗時少,可操作性、自適應(yīng)性強(qiáng)。
為了優(yōu)化多目標(biāo)生成對抗網(wǎng)絡(luò)及求得帕累托最優(yōu)解,本文基于梯度策略,將多目標(biāo)優(yōu)化分解為多個兩目標(biāo)優(yōu)化,提出帕累托最優(yōu)解求解算法,較好地解決了求解多目標(biāo)、高維度生成對抗網(wǎng)絡(luò)最優(yōu)解的NP 難問題。此外,將所提算法應(yīng)用到多個圖像子領(lǐng)域,實(shí)驗(yàn)結(jié)果進(jìn)一步驗(yàn)證了所提算法的有效性。實(shí)驗(yàn)結(jié)果顯示,即使部分參數(shù)權(quán)重確定,只要模型的待確定參數(shù)權(quán)重大于2,所提算法具有明顯的性能和計(jì)算優(yōu)勢。在訓(xùn)練和更新深度神經(jīng)網(wǎng)絡(luò)時,由于梯度反向計(jì)算和更新比前向計(jì)算更耗時,導(dǎo)致整個算法比其他基于梯度策略的方法耗時。算法的耗時仍是文章值得改進(jìn)的地方,這也是下一步的研究重點(diǎn)。