矩阵的二范数_【专题】GAN(二)—— 目标函数的优化
生活随笔
收集整理的這篇文章主要介紹了
矩阵的二范数_【专题】GAN(二)—— 目标函数的优化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
編寫:果殼屋在第一篇我們了解到,原生的 GAN 采用零和博弈(zero-sum game)的策略,這會導致在訓練初期生成器的臨梯度消失(gradient vanishing),訓練停止。如果將零和博弈改為非飽和博弈,這雖然能夠解決梯度消失的問題,但會導致訓練不穩定(instable)。為了解決這兩個問題,許多研究者對目標函數的優化做了不同的嘗試。上一篇中,我們已經了解到 GAN 的目標函數等價于 JS 散度(JS divergence),那我們下面就先從散度的角度重新認識一下 GAN,然后再介紹對目標函數的優化策略。f-GANf-GAN 又稱為 f-divergence GAN,其中 f-divergence(f 散度)是各類散度(divergences)的通稱,定義為:其中 p 和 q 都是連續密度函數,f 是一個凸下半連續函數(凸下半連續函數例如 圖1所示)。f 滿足?,這保證了當 p 等于 q 時,它們的散度??為零。當??時,f-divergence 為 KL 散度,而當??時,f 散度為 JS 散度(如 表1所示)。從上一篇的 式(5)我們知道,原生的 GAN 的目標函數是 JS 散度的近似,所以原生的 GAN 實際上屬于 f-GAN 的特例。(表1、2,來自:f-GAN training generative neural samplers using variational divergence minimization,Nowozin)(圖1,來自百度)f-GAN 的目標函數可以統一表示為:其中 D 和 G 分別為判別器和生成器,?為函數 f 的凸共軛函數(convex conjugate function)或者稱 Frenchel conjugate,定義為:其中??表示上確界或最小上界(supremum),也就是集合 {·} 中的所有值的上邊界,這個上邊界可能包含在集合 {·} 中,也可能不在 {·} 中。就是上確界不包含于集合中的例子。?為函數 f 的定義域,或者說 u 的取值范圍。不同散度對應的 ?如 表2中所示。函數 f 之所以有 Frenchel 共軛,是因為它是凸下半連續函數(在這里不做證明,有興趣可以自己找答案)。另外,?也是凸下半連續函數,且與 f 互為共軛,。因此:將 式(3)帶入 (1),得到 f 散度的下界(lower bound):(4)是 f 散度的下界(小于等于?),原因是:1)根據 Jensen’s 不等式(Jensen’s inequality),在交換積分和求上確界的順序時,得到的值小于等于原值;2)函數集 T 可能只是所有可能函數的子集(subset),取不到最優函數。另外,當 p 被替換為?,q 替換為?,并且令變分函數(variational function)t 為 D,我們就將 (4)轉換為 f-GAN 的目標函數?(2)。也就是說,f-GAN 的目標函數是f散度的估計。根據 論文 [1],最優的 D 為:時,下界 (4)越接近 f 散度,或者說 f-GAN 的目標函數越接近 f 散度(注意,?表示最優的 t,而 ?表示 f 的共軛函數,?表示 f 的導數)。對于原生的 GAN 來說,?就是第一篇中推導出的 (4):因為 f 散度是 f-GAN 目標函數的上確界,最大化 f-GAN 的目標函數(優化判別器)是使目標函數接近 f 散度,最小化 f-GAN 的目標函數(優化生成器)實際上是減小 f 散度。當 f 散度趨近于 0 時,生成數據的分布趨近于真實數據。WGANWGAN,又稱為 Wasserstein GAN,是 GAN 的 IPM(Integral Probability Metric)類的模型。IPM 類的模型會用一個函數來衡量兩個分布的差異,在 WGAN 中,這個函數是 EM 距離(Earth-Mover distance/Wasserstein-1,推土機距離)。EM ?距離的定義如下:其中??是下確界或最大下界(infimum),與 ?相反。例如,對于不包含下確界的集合,。x 和??的分布分別為 ?和 ?它們的聯合分布(joint distribution)為?,?是這些聯合分布的集合,也就是所有可能的聯合分布組成的集。當生成數據 ?越接近真實數據 x 時,EM 距離越小,而優化判別器則是使 EM 距離最大化。但是 EM 距離中的? 的不能直接計算,因為我們不知道 ?和 ,不能求出聯合分布 。為了得到 EM 距離,我們需要對式子 (5)做一些轉換。利用 Kantorovish-Rubistein 對偶(duality),上面的式子可以轉換為:其中??表示函數 f 必須滿足 1-Lipschitz 約束。Lipschitz 約束(constraint)的定義是:當??時,k-Lipschitz 約束為 1-Lipschitz。這一約束保證對于相鄰的兩點??和?,函數值 f 不會劇烈波動,或者說函數 f 對數據不會過度敏感。對 EM 距離 (6)做一些變化,我們就得到了 WGAN 的目標函數:式(7)中的 f 是 critic。不同于執行二分類任務的判別器 D,f 可以是滿足 1-Lipschitz 約束的任意函數,它的輸出值沒有限制,所以可以認為它是一個回歸模型。當生成的數據??時,。EM 距離相對于 JS 散度和 KL 散度的優勢是,它對沒有重疊的兩個分布的差異也能夠進行衡量,或者說 EM 距離衡量的就是任意兩個分布的差異。這樣一個優勢,使得WGAN 不會出現生成器梯度消失的問題。基于 JS 散度的 GAN 之所以會遇到梯度消失的情況,可以認為是因為 JS 散度無法處理不重疊的兩個分布。根據在第一篇中推導得到的式子 (5),在判別器取到最優時,生成器的目標函數等價于 JS 散度:其中??和??的取值有四種情況,分別是:,,,,當??時,生成器的目標函數 (8)變成:當??時, (8)變成,而常數的導數為 0:當 ?和 ?都為零時:(9)、(10)和 (11)都是常數,而常數的導數為 0,此時生成器 G 停止優化。當??和 ?都不為 0 時,也就是說數據 x 同時存在于 ?和 ,?和 ?出現重疊。但是在訓練初期,這種情況的概率很低,就像二維平面中的兩條線,它們重疊的部分很小,甚至沒有重疊。所以基于 JS 散度的 GAN 在訓練初期,很容易出現梯度消失。除了避免梯度消失外,WGAN 的訓練也很穩定,不會發生模式坍塌(mode collapse),因為 EM 距離就是在衡量兩個分布的差異,訓練生成器就是使 EM 距離變小,不存在同時變大又變小的情況。參數約束WGAN 的目標函數中的函數 f 可以通過神經網絡模型來估計。假設模型的每一層的激活函數(activation function)的輸出為?,其中??為激活函數,W 和 b 為模型參數,使這一層滿足 Lipschtz 約束(Lipschitz constraint):根據泰勒展式:近似?:其中 ?為 f 的一階導,,?為求絕對值,將 f 替換為 a,得到:根據 (12),要使 k 盡可能小,需要??和 W 的絕對值盡可能小。因為在神經網絡中,激活函數 a 的導數的絕對值基本上都小于或等于 1(例如 ReLU 在??時導數都為 1)。假設激活函數的導數為 1,那么要使這一層滿足 1-Lipschitz 約束,只需要約束參數 W:參數裁剪為了使 f 對數據點 x 滿足 1-Lipschitz 約束,WGAN [2]?的作者采用參數裁剪(weight clipping)的方法來約束參數的范圍。參數裁剪方法是設置閾值 c,使 f 的參數落在區間 [-c,c] 的方法。雖然這種方法能夠約束 f,但用這種方法訓練出來的模型過于簡單,能力較差。另外,論文[3]中的實驗顯示,采用參數裁剪的方法,模型的訓練比較耗時。除裁剪之外,其他對參數進行約束的方法有:參數歸一化(weight normalization)、譜歸一化(spectral normalization)等。參數歸一化參數歸一化的方法是受到批歸一化(Batch Normalization,BN)的啟發而設計的。批歸一化方法對神經網絡每一層的輸入做歸一化,使?——這里是某一批(minibatch)數據 x 的均值,而??是它們的標準差。參數歸一化是采用重參數技巧(reparameterization trick),將 W 用新的參數 V 和 g 替換:其中 V 和 W 一樣都是參數矩陣。在這里我們所做的參數歸一化是將 W 替換為?:從 (14)可以發現,參數歸一化等價于 Frobenius 歸一化,其中??為 Frobenius 范數(Frobenius norm)。如果不是用歸一化的方式,而是用正則化(regularization)的方式來約束參數的話,那么目標函數則是:從形式上來說,上面的式子與 L2 正則化相似。L2 正則化是對向量做處理,而 Frobenius 正則是處理矩陣,但 L2 實際上也是使模型的參數對數據的敏感度降低,使模型泛化能力更強。另外,正則化相比歸一化,它不需要對每個參數進行重新計算。譜歸一化譜范數(spectral norm)的定義是:?等于矩陣 W 的最大特征值(maximum singular value),它可以通過冪迭代(power iteration)的方式計算出來。對 (15)做一些調整:如果將 x 替換為?:結合 (13)和 (16),發現譜范數能更準確地反映 Lipschitz 約束中的 k。如果將參數矩陣 W 除以譜范數?,就可以使 k 等于 1。這就是譜歸一化,參數歸一化得到的是它的上界(upper bound):對于多層網絡結構:只要通過譜歸一化,用??替換每一層的?,就可以使整個模型?。如果用正則化代替歸一化,那就是譜正則化(spectral norm regularization)。它就是將參數的譜范數作為正則化項加入目標函數,約束參數的范圍。梯度約束除了對參數進行約束,還可以直接對梯度進行約束,因為 1-Lipschitz 約束為:對梯度進行約束的方法有 WGAN-GP 模型,其中 GP 代表梯度懲罰(Gradient Penalty)。在梯度懲罰中,為了使梯度趨向于 1,將梯度設置成正則項,將其添加到WGAN的目標函數后面:其中右邊前兩項為 WGAN 的目標函數,第三項為正則項,超參數??控制懲罰對目標函數的影響。?是函數 f 的梯度/一階導。?通過采樣得到:其中??為生成的數據,x 為真實數據,?是 [0, 1] 區間內的隨機數。根據 論文[4] 的作者分析,梯度懲罰有兩個缺點:1)?依賴于生成模型生成的數據的分布,而這一分布在訓練時不斷地變化,這會導致訓練不穩定,這一現象在學習率較大時比較明顯;2)求導? 要參與前向傳播(forward propagation)和后向傳播(backword propagation),因而計算量較大。(WGAN 系模型,來自https://www.bbsmax.com/A/kPzOZ8V3dx/)LS-GANLS-GAN 又稱 loss sensitive GAN,和 WGAN 一樣,也是基于 Lipschitz 約束的 GAN 模型。事實上,WGAN 可以被認為是 LS-GAN 的一種特例。LS-GAN 中的 loss 是一個函數,或者 loss 模型,和判別器或者 WGAN 中的 critic 類似。Loss 函數的工作是給真實數據一個較低的評分(loss),給生成的數據較高的loss 值。另外,loss 函數要滿足下面的約束:其中??是以??為參數的 loss 函數,G 是生成器,z ?是噪音變量,與原生的 GAN 中的 z 相同。這個約束其實就是 1-Lipschitz 約束。因為上面的約束過于嚴苛,所以 LS-GAN 中引入了非負的松弛變量?。這樣,帶約束的目標函數變成:最小化 (18)等號右邊第一項等于使真實數據得到較小的 loss 值,因為??可以衡量生成的數據使得違反約束 (17)的程度,所以最小化等號右邊第二項等于使生成的數據盡可能滿足 1-Lipschitz 約束。把 (18)中所有的約束帶 (18)中的目標函數,得到:?是一個鉸鏈損失函數(hinge loss)。對于最優 loss 模型?,生成器 G 的目標是使生成的數據的 loss 值也和真實數據一樣小,它的目標函數是:因為不知道具體的??和?,所以上面的目標函數要通過采樣估計:對此 LS-GAN [5]的作者分析了需要多少數據才能使估計值接近目標函數真實值。分析結果顯示,所需的數據量與模型的復雜度以及 Lipschitz 常數 k 有關。因此,論文作者建議通過梯度懲罰,使 loss 模型 L 和生成器 G 的 k-Lipschitz 的 k 盡可能小。另外,論文[5]作者還論證了 LS-GAN 和 WGAN 都屬于 GLS-GAN 的特例,而GLS-GAN 是 LS-GAN 的泛化版本。如果將 LS-GAN 的目標函數(19)中的將?替換為一個函數?,也就是使目標函數變為:當??時,,而當??時,GLS-GAN 等價于 WGAN:其中等號右邊第三項是常數,省略掉后就得到了 WGAN 的目標函數:其中 是一個遠大于 1 的值?,而且因為它在等號右邊的兩項中都出現,所以可以將其放入 L 中。未完待續~[1] X. Nguyen, M. Wainwright, M. Jordan, (2008). “Estimating Divergence Functionals and the Likelihood Ratio by Convex Risk Minimization”.[2] M. Arjovsky, S. Chintala, and L. Bottou, (2017). “Wasserstein generative adversarial networks”.[3] A. Radford, L. Metz, and S. Chintala, (2015). “Unsupervised representation learning with deep convolutional generative adversarial networks”.[4] T. Miyato, T. Kataoka, M. Koyama, and Y. Yoshida, (2018). “Spectral normalization for generative adversarial networks”.[5] G.-J. Qi, (2019). “Loss-sensitive generative adversarial networks on lipschitz densities”.
?
總結
以上是生活随笔為你收集整理的矩阵的二范数_【专题】GAN(二)—— 目标函数的优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows获取硬件设备的guid_W
- 下一篇: 原来正是这位射频老前辈发明了手机