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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

GAN论文详细解读+思想

發布時間:2024/3/12 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GAN论文详细解读+思想 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

論文地址:?[PDF] Generative Adversarial Nets | Semantic Scholar

注:由于這篇精讀是之前總結在word中,里面公式不能直接copy到這里,我就直接截圖了,省事但帶來的問題是有個別公式截圖被水印擋了一點,大家可以打開論文尋找相應的公式哈,很方便。

Intro

深度學習不僅僅是講深度神經網絡,它更多的是對整個數據分布的一個特征的表示。

深度學習在生成模式上做的比較差的原因:在最大化似然函數的時候,我們要對這個概率分布進行很多近似,近似會帶來很多計算上的困難。因此GAN就是一個不需要近似函數且計算上更好的模型。

生成模型是一個MLP,輸入是一個隨機的噪音,MLP會把一個產生噪音的分布(通常是高斯分布)可以映射到任何一個我們想要去擬合的分布。如果判別模型也是MLP的情況下,我們就可以通過誤差的反向傳遞,進而不需要通過像馬爾科夫鏈一樣來對一個分布進行復雜的采樣,進而在計算上有優勢。

Relat

作者發現之前的方法都是想辦法構造出一個分布函數出來,然后把函數提供一些參數進行學習,這些參數通過最大化它的對數似然函數來做。但他的缺點就是在維度比較高的時候計算量很大。而GAN是通過學一個模型來近似分布。但缺點是他最后不知道分布長什么樣子,但計算上比較容易。

?

作者后來發現對于f的期望求導等價于他對于f自己求導。這也是為什么我們通過誤差的反向傳遞對GAN進行求解。

Adversarial nets

其中z是隨機噪音向量,Pz是一個分布,θ都是需要學習的參數。的作用是將z輸入然后產生一個x向量。的作用是將x向量輸入,然后產生一個標量,這個標量是判斷輸入的x向量是否是真實值還是G生成值(越靠近真實值就越接近1,否則接近0),由于我們本身知道x是G生成的還是真實值,因此我們可以直接將數據標上真實值為1,G生成為0。然后采用一些數據訓練一個二分類。

?

?

-----------------------------------------------------------------------------------------------------------------------------

這個是網絡的目標函數,其中的x代表真實圖片(向量),z代表噪因圖片(隨機向量)。

當D(辨別器)訓練的很好的時候:D(x)=1,D(G(z))=0,因此V(D,G)=0。

但往往D不可能訓練的那么好,又因為有log,因此V(D,G)<0。我們在訓練D的時候是看V(D,G)的,這也是為什么是要MAX~D的原因。而訓練G的時候,只需要看即可,而G的目的是盡可能的讓D給他生成的圖片打分高,因此盡可能讓D(G(z))趨向于1,1-D(G(z))趨向于0,因此log(1-D(G(z)))趨向于無窮小。這也是MIN~G的原因。

?

需要注意的是剛開始訓練的時候G生產的圖片效果很差,很容易讓D(G(z))=0,這就導致了log(1-D(G(z)))=0,因此會導致對他求梯度再進行更新,會出現求不動的現象。因此作者建議訓練G的時候求MAX~G,用log(D(G(z)))來求。

Theroretical

????????綠色分布代表G生成的數據,黑色點陣分布代表真實數據,藍色點陣分布代表D(判別器)的判別分布。

????????(a)剛開始訓練的時候由于D沒有訓練,所以藍色點陣是無規則波動。此時G生成的數據在真實數據右側,D根據真實值分高,G生成的數據分低原則進行學習,進而產生(b)的藍色點陣分布。

?????????隨后G訓練更新參數(將生成的數據波峰左移)使其更接近真實值。然后再訓練D,讓其產生新的藍色點陣分布。

????????最后讓G產生的數據分布與真實分布幾乎重合,此時的D無法區分G產生的數據真假。

算法:

????????先制造m個隨機噪音向量,和m個從database中提取出來的真實數據

????????隨后開始將數據傳入中開始計算辨別器的參數求梯度來更新辨別器,迭代k輪。?

????????然后再制造m個隨機噪音向量,然后把這m個隨機噪音向量代入來更新生成器,計算機生成器的梯度進而更新生成器,迭代k輪。k是超參數。?

結論部分:

目標函數最優解:生成器學到的分布和真實數據的分布相等時?

最優解時:

當G固定住的時候,辨別器D的最優解是

Pdata(x)是指我把x放入真實數據分布中的數值是多少

Pg(x)是指我把x放入G學習到的分布中的數值是多少

Pdata和Pg分布數值都是0-1之間,因此D*G(x)的數值也在0-1之間。

當Pdata(x)==Pg(x),那么D*G(x)=1/2。意味著辨別器D最優解的時候輸出的值永遠都是1/2,

表示這兩個分布是完全重合,D無法區分開。

D是通過從兩個分布(真實的數據和生成的數據)分別采樣,用V(D,G)這個目標函數訓練一個二分類的分類器,如果這個分類器的值都是1/2,就證明這兩個分布完全重合了。

Two Sample Test方法:用來區分兩塊數據是不是來源于同一個分布。

下面開始證明(MAX~D)最優解公式:

---------------------------------------------------------------------------------------------------------------------------------

?

這個是求f(x)的期望公式,且x來自p的分布。

---------------------------------------------------------------------------------------------------------------------------------

?

上下公式通過x=g(z)來推導。

????????又因為Pdata(x)和Pg(x)都是常量所以分別設為a,b,我們想要求D(x),我們需要設D(x)為y,因此,這個是一個凸函數,因此可以通過求導)來求得最大值因此y=a/(a+b),因此也就是D(x)=Pdata(x)/{Pdata(x)+Pg(x)}。?

求完MAX~D,然后就該求MIN~G。

把D*G(x)帶入V(D,G)中得C(G),且C(G)求得最小值時Pdata(x)=Pg(x)

?

KL散度:公式:,其中x來自于p分布。?

KL散度的意義:已知p的情況下,需要多少個比特能把q表達出來。

且KL散度一定是大于等于0,且等于0時,q==p。

由于

?

的log中的分子的范圍都是0-1,而分母的范圍都是0-2,而KL散度公式中分子分母范圍都需要是0-1,因此需要將log中分母乘1/2,使分母的范圍從0-2變成0-1。Log中分母乘1/2,分子也要乘1/2,因此相當于(-log2)*2=-log4。所以C(G)變為:

由于KL散度當等于0時才取到最小,所以Pdata=(Pdata+Pg)/2 ????Pg=(Pdata+Pg)/2 ?=>Pdata=Pg

GAN思想淺入:

GAN網絡由generator(生成器)和discriminator(分辨器)組成。

所謂對抗的思想可以認為,generator是個做假鈔的販子,discriminator是個警察,第一次先將白紙給generator,生成一張假鈔,然后discrimination進行檢查(discrimination根據他所掌握真鈔的某個特征來判斷是否是假鈔),每一輪剛開始檢查的時候discrimination都沒有發現是假鈔,通過updata他的參數最終學會了真鈔的其他某個特征,然后discrimination發現是假鈔后,generator會updata他的參數。優化后第二輪generator繼續生成一張假鈔.....

??一張圖片通過generator后是出來一張圖片,而出來的圖片通過discrimination后出來的是數值(數值越大,證明假鈔越逼真)

Generator想要自己生成的假鈔通過discrimination出來的分數越來越高,所以不斷updata自己的參數,discrimination為了讓自己能識別出是假鈔(為了使,通過自己出來后的分數低而updata自己的參數)

總結

以上是生活随笔為你收集整理的GAN论文详细解读+思想的全部內容,希望文章能夠幫你解決所遇到的問題。

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