日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Pytorch神经网络理论篇】 24 神经网络中散度的应用:F散度+f-GAN的实现+互信息神经估计+GAN模型训练技巧

發布時間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Pytorch神经网络理论篇】 24 神经网络中散度的应用:F散度+f-GAN的实现+互信息神经估计+GAN模型训练技巧 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 散度在無監督學習中的應用

在神經網絡的損失計算中,最大化和最小化兩個數據分布間散度的方法,已經成為無監督模型中有效的訓練方法之一。

在無監督模型訓練中,不但可以使用K散度JS散度,而且可以使用其他度量分布的方法。f-GAN將度量分布的做法總結起來并找出了其中的規律,使用統一的f散度實現了基于度量分布的方法實現基于度量分布方法訓練GAN模型的通用框架。

1.1 f-GAN簡述

f-GAN是是一套訓練GAN的框架總結,它不是具體的GAN方法,它可以在GAN的訓練中很容易實現各種散度的應用,即f-GAN是一個生產GAN模型的“工廠”。

它所生產的GAN模型都有一個共同特點:不進行任何先驗假設,對要生成的樣本分布使用最小化差異的度量方法,嘗試解決一般性的數據樣本生成問題(常用于無監督訓練)。

1.2 基于f散度的變分散度最小化方法(Variational Divergence Minimization,VDM)

變分散度最小化方法是指通過最小化兩個數據分布間的變分距離來訓練模型中參數,這是f-GAN所使用的通用方法。在f-GAN中,數據分布間的距離使用f散度來度量。

1.2.1 變分散度最小化方法的適用范圍

WGAN模型的訓練方法、分自編碼的訓練方法也屬于VDM方法。所有符合f-GAN框架的GAN模型都可以使用VDM方法進行訓練。VDM方法適用于GAN模型的訓練。

1.2.1 f散度

給定兩個分布P、Q,p(x)和q(x)分別是x對應的概率函數,則f散度可以表示為;

f散度相當于一個散度“工廠”,在使用它之前必須為式中的生成函數f(x)指定具體內容。f散度會根據生成函數f(x)對應的具體內容,生成指定的度量算法。

?2?用Fenchel共軛函數實現f-GAN

2.1?.Fenchel共軛函數的定義(Fenchel conjugate)

Fenchel共軛/凸共軛函數,是指對于每個凸函數且滿足下半連續的f(x),都有一個共軛函數f*的定義為:

式中的f*(t)是關于t的函數,其中t是變量;dom(f)為f(x)的定義域;max即求當橫坐標取t時,縱坐標在多條表達式為{xt-f(x)}的直線中取最大那條直線上所對應的點,如圖所示。

2.2?Fenchel共扼函數的特性

圖8-23中有1條粗線和若干條細直線,這些細直線是由隨機采樣的幾個x值所生成的f(x),粗線是生成函數的共軛函數f*。圖8-23中的生成函數是f(x)=|x-1|÷2,該函數對應的算法是總變分(Total Variation,TV)算法。TV算法常用于對圖像的去噪和復原。

2.3?將Fenchel共軛函數運用到f散度中

?2.4 用f-GAN生成各種GAN?

將圖8-22中的具體算法代入到式(8-40)中,便可以得到對應的GAN。有趣的是,對于通過f-GAN計算出來的GAN,可以找到好多已知的GAN模型。這種通過規律的視角來反向看待個體的模型,會使我們對GAN的理解更加透徹。舉例如下:

?2.5 f-GAN中判別器的激活函數

?3 互信息神經估計

互信息神經估計(Mutual Information Neural Estimation,MlNE)是一種基于神經網絡估計互信息的方法。它通過BP算法進行訓練,對高維度的連續隨機變量間的互信息進行估計,可以最大化或者最小化互信息,提升生成模型的對抗訓練,突破監督學習分類任務的瓶頸。(參見的論文編號為arX:1801.04062,2018)

3.1?將互信息轉化為KL散度

在前面介紹過互信息的公式。它可以表示為兩個隨機變量XY的邊緣分布的乘積相對行太、Y聯合概率分布的相對熵,即

這表明E信息可以通過求KL散度的方法進行計算。

3.2 KL散度的兩種對偶表示

KL散度具有不對稱性,可以將其轉化為具有對偶性的表示方式進行計算,基于散度的對偶表示公式有兩種。

其中dual f-divergence表示相對于Donsker-Varadhan表示有更低的下界,會導致估計結果更加寬松和不準確。因此,一般使用Donsker-Varadhan表示。

3.3 神經網絡中的KL散度的應用

4 穩定訓練GAN的經驗與技巧

4.1 GAN訓練失敗的分類

GAN模型的訓練是神經網絡中公認的難題。對于眾多訓練失敗的情況,主要分為兩情況:模式丟棄(mode dropping)和模式崩塌(mode collapsing)

  • 模式丟棄是指模型生成的模擬樣本中,缺乏多樣性的問題,即生成的模擬數據是原始數擺集中的一個子集。剛如,MNST數據分布一共有10個分類,而生成器所生成的模擬數據只有其中某個數字。
  • 模式崩塌:生成器所生成的模擬樣本非常模湖,質量很低。

4.2?GAN訓練技巧

4.2.1 降低學習率

通常,當使用更大的批次訓練橫型時,可以設置更高的學習率。但是,當模型發生模式透棄情況時,可以嘗試降低模型的學習率,并從頭開始訓練。

4.2.2?標簽平滑

標簽平滑可以有效地改善訓練中模式崩塌的情況。這種方法也非常容易理解和實現,如奧真實圖像的標簽設置為1,就將它改成一個低一點的值(如0.9)。這個解決方案阻止判別器過于相信分類標簽,即不依賴非常有限的一組特征來判斷圖像是真還是假。

4.2.3?多尺度梯度

這種技術常用于生成較大(1024像素×1024像素)的模擬圖像。該方法的處理方式與傳統的用于語義分割的U-Net類似。模型更關注的是多尺度梯度,將真實圖片通過下采樣方式獲得的多尺度圖片與生成器的多跳連接部分輸出的多尺度向量一起送入判別器,形成MSG-GAN架構。(參見的論文編號為arXv:1903.06048,2019)

4.2.4?更換損失函數

在f-GAN系列的訓練方法中,由于散度的度量不同,導致訓練不穩定性問題的存在。在這種情況下,可以在模型中使用不同的度量方法作為損失函數,找到更適合的解決方法。

4.2.5?借助互信息估計方法

在訓練模型時,還可以使用MNE方法來輔助模型訓練。

MINE方法是一個通用的訓練方法,可以用于各種模型(自編碼神經網絡、對抗神經網絡)。在GAN的訓練過程中,使用MINE方法輔助訓練模型會有更好的表現,如圖8-27所示。

圖8-27左側是GAN模型生成的結果;右側是使用MINE輔助訓練后的生成結果。可以看到,圖中右側的模擬數據(黃色的點)所覆蓋的空間與原始數據(藍色的點)更一致。

?4.3?MINE方法概述

MINE方法中主要使用了兩種技術:互信息轉為神經網絡模型技術和使用對偶KL散度計算損失技術。最有價值的是這兩種技術的思想,利用互信息轉為神經網絡模型技術,可應用到更多的提示結構中,同時損失函數也可以根據具體的任務而使用不同的分布度量算法。【詳見下一節實戰】

總結

以上是生活随笔為你收集整理的【Pytorch神经网络理论篇】 24 神经网络中散度的应用:F散度+f-GAN的实现+互信息神经估计+GAN模型训练技巧的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。