Improved GAN

https://www.bilibili.com/video/av9770302/?p=16

從之前講的basic gan延伸到unified framework,到WGAN

再到通過WGAN進行Generation和Transformation

復習一下GAN,

首先我們有一個目標,target分布,Pdata,

藍色部分表示Pdata高,即從這部分取出的x都是符合預期的,比如這里的頭像圖片

GAN的目的就是訓練一個generator nn,讓它的輸出盡量接近Pdata分布

generator的輸入一般都是normal distribution,輸出接近Pdata,那么就意味著generator輸出的x,高概率會落在藍色區域,即我們想看到的圖片

但這里的問題是,PG是算不出來的,其實這里Pdata我們也是不知道的,我們只有一些訓練集,比如一批頭像的圖片

所以只有用sample的方式來訓練

?下面給出如何通過sample來訓練,

先隨機從v1 generator中sample 4張圖片作為false,從訓練集中取4個作為true,來訓練v1 discriminator

然后固定V1 discriminator,來訓練出V2 generator

?

然后固定V1 discriminator,來訓練出V2 generator,它產生的x,v1 discriminator都會判true

再訓練產生V2 discriminator,讓V2 generator生成的x,都被判false

下面的圖更形象的表示這一過程,

需要注意的是PG為藍色曲線,調整generator nn的參數讓它close Pdata,這個過程不是漸進的過程,而是一個反復的過程

nn的參數很難調的剛合適,往往或調過了,所以真實的過程是一個反復震蕩close的過程

直到兩者重合,discriminator就完全無法區分

簡單的列出算法,

discriminator訓練多次來max V,intuitive的理解V,讓D(x)盡量大,即讓訓練集數據被判true,讓D(x~)盡量小,即讓generator生成的數據被判false

generator僅僅訓練一次來min V,前面一項和generator無關所以不用考慮,min V,就要max D(G(z)),即讓generator生成的數據盡量被判true

?

?Unified Framework

下面來學習unifed framework,分成3部分

?

f-divergence

這篇論文稱為f-Gan,Gan中Discriminator和JS-Divergence相關,其實可以任何f-divergence相關

f-divergence就可以用來衡量兩個分布的相似度

這個定義對于函數f有兩個約束,

其中f(1)=0,當p和q分布相同時,divergence就會取到0

f是convex,可以證明D的最小值就是0,下面通過jensen不等式,很容易證明

舉幾個f-divergence的例子,

?

Fenchel Conjugate(共軛)

對于每個convex函數,都存在一個對應的conjugate函數f*

定義是給定一個t,需要調整x,使得后面的式子最大,其中x需要在f的定義域中

這里假設先固定x,這樣藍框中的部分就變成線性函數,對不同的x就是不同的直線,現在對于某個給定t,只是找出最大的那個交點

從圖上可以看出,f*也是convex的

右邊舉個例子,對于xlogx,他的f*就是exponential,從圖上也能intuitive的看出

計算過程如下,maximizing就是求微分=0

?

這里有個重要的特性,就是f** = f,即

代入f-divergence的公式,得到

?

這個紅框中的式子,給定x,找到一個t可以使得它取到最大值,那這個式子可以有個lowbound

如果隨便給一個t,那么得到值一定是小于等于這個最大值

假設有個函數D,輸入這個x,輸出t,就有,因為對于任意一個D,從x算出的t,不一定是可以取到最大值的t

?任意D代表下屆,那么我們只要調整D,使得讓其max,就可以逼近真實值

?

把上面的式子中,代入Pdata和PG,就得到Pdata和Pg的f-divergence的定義

如果我們要找一個PG,和Pdata盡量相似,也就是要找一個G,使得Df最小,于是得到G*

?

推導到這里就可以看出,之前GAN的V是怎么來的,這里用不同的f-divergence,即f不同,就可以得到不同的V

之前的GAN只是一種特殊形式罷了

所以這里就得到一種GAN的unified framework,這里列出各種不同的f-divergence

?

WGAN?

WGAN的論文,簡單說,就是用earth mover's distance,或者wasserstein distance來衡量分布之間的差異

什么是earth mover's distance?

把P分布變成Q分布,有很多種moving plan,其中最小的稱為earth mover's distance,如右圖

形式化的表示,plan r可以表示成一個矩陣,每個value表示在這個位置上,需要從P移動多少到Q

這里定義出B(r),表示某個plan的平均距離

那么Earch Mover‘s Distance就是所有plan中最小的那個,可以看出算這個distance是很麻煩的,因為要先求一個最優化問題

?

那Earch Mover‘s Distance有什么用,為什么要用它來替代f-divergence來衡量分布間的差異?

f-divergence計算差異的時候,是看兩個分布是否有相同的部分,交集,這樣的問題就是很難train,因為下面的例子,Pg0,Pg50的JS-divergence都是一樣的,沒有梯度

說明這樣衡量兩個分布的差異,不科學;所以用Earch Mover‘s Distance

雖然Pg0和Pg50都不相交,但是他們之間的距離是變小的,這樣更容易訓練

回到GAN Framework

之前說,從f-divergence是可以推導出GAN的公式的

那么現在從f-divergence換到Earch Mover‘s Distance,會是怎么樣?

WGAN的論文說明,也可以從Earch Mover‘s Distance推導出下面的公式

找出一個function D,讓Pdata中抽樣的x的D(x)盡量的大,而Pg中抽樣的x的D(x)盡量的小

但這里D有個約束,必須是1-lipschitz

從lipschitz的定義可以看出,這樣的函數,變化比較緩慢,即f(x)的變化要小于x的變化

為何要加上1-lipschitz的約束?

因為如果不加,D會傾向于給D(x1) 正無窮,而D(x2)負無窮

而現在加了這個約束,x1和x2間的距離為d,那么D(x1)和D(x2)間的距離不能大于d

對于GAN,D(x)是一個二元分類器,輸出是sigmod,在兩端幾乎沒有梯度

而WGAN,D(x)是一個直線,訓練起來更簡單

?

那么這個式子怎么求解?

關鍵是1-lipschitz的約束,怎么處理

這里的方法是weight clipping,就是限制w的參數在[-c,c],這樣也就限制函數輸出的變化程度

有兩個問題,

這里weight clipping,只能做到K-lipschitz,而不是1-lipschitz,論文里面說這里放寬到k-lipschitz也是沒有問題的

這個條件是充分非必要條件,也就是說weigth clipping后,得到的D集合是真正D集合的子集,所以得到的D也許無法Max大括號中的式子

?

圖中顯示,weight clipping的作用,如果沒有weight clipping,線會趨向垂直,因為要使得max
加上weight clipping,其實就是限制住斜率

對比之前的GAN的算法,W-GAN的算法會做如下改動,

用WGAN還有一個好處是,我們真的可以用W來衡量生成圖片質量好壞

在GAN中,W是JS-divergence,衡量的是交集,只要不想交,JS-divergence都是一樣的值,而WGAN衡量的確實是兩個分布的距離,所以距離越近,生成的圖片質量越好

?

Improved GAN,Gradient penalty

改進的點,主要是如果保證1-lipschitz,之前用的是weight clipping?

現在換一種方式,

當D是1-lipschitz時,D對x的gradients的norm小于等于1,比較自覺的定義,因為1-lipschitz就是D的變化率要小于x的變化率

所以我們通過加一個罰項來近似這個約束,罰項的定義就是傾向于讓gradients的norm小于等于1,這樣罰項就會為0;這樣雖然不能保證這個約束,但是當參數lambda足夠大時,即罰項的權重足夠大時,可以近似滿足

這里的罰項是個積分,是對所有x的積分,實踐中無法做到,所以改成抽樣,x從Ppenalty中抽樣

那這里的Ppenalty是怎么樣的分布,這是有定義的,如下是Pdata和PG中間的區域

Pdata和PG各sample一個點,然后在連線,再在線上sample一個點作為Ppenalty

paper說這樣做是因為實驗效果比較好,給出的intuitive的解釋是,generator是要將PG移向Pdata,所以他們之間的gradient是最有意義的

進一步優化罰項是,讓gradient盡量接近于1,而非小于1

這樣算法的收斂速度會更快,對于D而言肯定是gradient越大收斂的越快,而1-lipschitz約束gradient最大就是1

?用gradient penalty的好處,

如果用weight clipping,顯然很多weight都會被clip在邊界上,很不自然,而gradient penalty的weight分布會更合理

同時生成的分布也更為合理

?

?

Transformation

Transformation,

Paired data,比如Text to image,從一段話,生成一張圖片

那么如果用傳統的supervised learning的方法,會有下面的問題

比如train,所代表的火車有各種各樣,所以生成的train會是所有火車的綜合,變成一個很糊的輸出圖片

所以這里用GAN來生成,GAN的輸入有兩個,除了train,還有一個分布z

所以得到的輸出也不是一個值,而是一個分布,分布中的點就可以代表各種各樣的case,所以每次sample都可能得到不一樣值,藍色或綠色點的任意一個,而不會是紅點

?Conditional GAN的訓練不同的地方,就是Discriminator的輸入是兩個,Negative example也要給出兩種

如下圖右,可以對比一下左邊普通的discriminator

?

Unpaired Data,沒有成對的訓練集,比如有一堆普通圖片,一堆梵高的圖片

然后就想把普通圖片轉化成梵高風格

?

可以通過,風格遷移,sytle transfer來做,也可以用Cycle GAN

如果用普通的GAN,用Discriminator來判斷生成的圖片和梵高的畫比,是否是一副梵高的畫

很容易會產生下面的效果,generator確實會生成梵高的畫,但是和input無關

所以要加上約束,其實就是auto-encoding

但中間的編碼要符合特定的分布,這里就是梵高畫的分布

完整的版本就是這樣的,

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538200.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538200.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538200.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cython加密代碼python_利用Cython對python代碼進行加密

利用Cython對python代碼進行加密Cython是屬于PYTHON的超集,他首先會將PYTHON代碼轉化成C語言代碼,然后通過c編譯器生成可執行文件。優勢:資源豐富,適合快速開發。翻譯成C后速度比較快,在windows環境中用cython加密后的…

Linux ftp 命令

[deepenvd26wyjl01 ~]$ ftp IP地址 Connected to 10.xxxx.191 (10.xxxx191). 220-FileZilla Server 0.9.53 beta 220-written by Tim Kosse (tim.kossefilezilla-project.org) 220 Please visit https://filezilla-project.org/ Name (10.xxxx.191:deepen): yzcloud 331 Passwo…

android viewpager 間隔,viewpager 系統兼容 clipChildren 頁卡間距

此效果在4.4以下有個bug,兩邊的會有遮蓋,但是一滑動就沒事了。。。此時需要給viewpager設置onpagerchangedListener 刷新父布局invalidateviewpager.setPagerMargin();//設置頁卡間隔viewpager.setOffscreenPageLimit(); 設置緩存數量viewpager的父布局…

python web驗證碼_python web框架Flask——手機短信驗證碼

下列代碼都是以自己的項目實例講述的,相關的文本內容很少,主要說明全在代碼注釋中。我是使用阿里云云通信的短信服務,第一次使用會摸不著頭緒,這里我們需要做些準備工作:1、登陸自己的賬號進入阿里云官網,沒…

機器學習:樣本集、驗證集(開發集)、測試集

樣本集、驗證集(開發集)、測試集。 Ripley, B.D(1996)在他的經典專著Pattern Recognition and Neural Networks中給出了這三個詞的定義。 Training set: A set of examples used for learning, which is to fit the parameters [i…

Linux ftp傳送問題 WARNING! 258831 bare linefeeds received in ASCII mode

WARNING! 258831 bare linefeeds received in ASCII mode 原因是傳輸時ftp的傳輸類型不一致。 在上傳的時候,選擇傳輸類型為 二進制 在Linux上用ftp命令get的時候,也要設置二進制 ftp> binary // 設置傳輸方式為binary

html輸入支付密碼樣式,基于JS實現類似支付寶支付密碼輸入框

基于JS實現類似支付寶支付密碼輸入框2019-01-06編程之家https://www.jb51.cc編程之家收集整理的這篇文章主要介紹了基于JS實現類似支付寶支付密碼輸入框,編程之家小編覺得挺不錯的,現在分享給大家,也給大家做個參考。本文實現的是一個類似支付…

海康+螢石云+云存儲多少錢一個月_400萬極清畫質 螢石C6Wi智能家居攝像機

作為全球最大安防企業海康威視旗下子品牌,螢石以“家庭安防”切入智能家居市場,螢石C6Wi作為一款融合目前市面上云臺攝像頭最新設計和最全功能的產品,其外觀設計獲得多項國際大獎,支持2K分辨率(25601440)及4倍變焦拍攝、微光全彩、…

unzip 報錯error [clas.zip]:? missing 1844 bytes in zipfile

error [clas.zip]: missing 1844 bytes in zipfile 解決方法: http://blog.csdn.net/zengmingen/article/details/78604574

Vue+axios統一接口管理

通過axios請求接口已經很簡單了,但最近在做一個vue項目,想著把axios請求再封裝一下,這樣api就可以只在一處配置成方法,在使用的時候直接調用這個方法。 但咱們不用每個接口都定義成一個啰嗦的axios請求方法,既然是想簡…

html網頁 table布局實例,HTML用Table表格對網頁布局

HTML是用于開發網頁的“超文本標記語言”,今天我們一起來學習一下HTMLCSS網頁布局中Table布局方式。常見的網頁布局用CSS而言一般有經典行布局、經典列布局、雙飛翼布局、圣杯布局等。今天小編教大家用Table表格布局。大家先來欣賞幾個網頁:這幾個網頁布…

vue設置輸入框輸入長度_Vue實現input寬度隨文字長度自適應操作

業務需求,輸入文字,后面的元要緊隨其后,奈何input默認是有寬度,我想要達到,輸入文字,動態改變input的寬度,試了很多方法,目前自己琢磨一種,有遇到問題的可以參考一下,直接…

JDBC 連接Hive 簡單樣例(開啟Kerberos)

今天在移動的云平臺上通過jdbc連接hive,發現云平臺使用了 kerberos的認證。與寧波實驗環境不同。 發現一文解決了問題,轉載如下: 原文地址:http://blog.csdn.net/zengmingen/article/details/78605086 -----------------------…

新年快樂輪播特效html,基于owl-carousel的卡片水平輪播展示特效

這是一款基于owl-carousel的卡片水平輪播展示特效。該卡片輪播展示特效可以通過前后導航按鈕來切換卡片,它是響應式設計,在手機等小屏幕設備上,會自動調節為只展示一個卡片。使用方法在頁面中引入bootstrap.css和style.css文件,以…

parameter縮略語_“參數”的英文縮寫有嗎?

展開全部“參數”的英文e69da5e887aa3231313335323631343130323136353331333365643662縮寫是“parm”。1.音標:[ prɑ:m ]2.具體含義:參數3.雙語例句:It involves the same parameter as that involved in the enhancement factor for coagul…

JDBC實現從Hive抽取數據導入Oracle

環境:浙江移動華為云平臺 云平臺大數據采用了 Kerberos 認證。 開發歷程: 1、在寧波大數據實驗環境測試通過了JDBC實現從Hive抽取數據導入Oracle功能。 2、通過查看其它項目的數據庫訪問配置,知道了云平臺上的oracle配置。 3、獲取hive的…

加拿大計算機專業學什么,加拿大哥倫比亞大學計算機專業課程

計算機專業是加拿大哥倫比亞大學研究生熱門專業,很多準備申請加拿大研究生留學的都非常關心加拿大英屬哥倫比亞大學計算機專業研究生申請需要注意哪些問題?針對這個問題,出國留學小編為大家進行簡要介紹。英屬哥倫比亞大學計算機科學碩士專業優勢&#…

PC,移動端H5實現實現小球加入購物車效果

HTML部分&#xff1a; <!DOCTYPE html> <html> <head><meta http-equiv"content-type" content"text/html; charsetUTF-8"><title>基于jquery.fly模仿天貓拋物線加入購物車特效代碼</title><style>* {margin: 0…

云桌面部署_云桌面時代降臨-青椒云工作站

云計算理念是當代互聯網時代的新型理念&#xff0c;用戶享受的所有資源、所有應用程序全部都由一個存儲和運算能力超強的云端后臺來提供。云桌面是基于云計算技術&#xff0c;實現各種終端設備之間的互聯互通。我們的電子設備等都只是一個單純的顯示和操作終端&#xff0c;它們…

一些配置文件

--用戶用linux用戶&#xff0c;配置hadoop的Linux用戶。非hive連接mysql的用戶 HIVE_DRIVERorg.apache.hive.jdbc.HiveDriver HIVE_URLjdbc:hive2://192.168.78.128:10000/default HIVE_UserName root HIVE_PassWord 123456 ORACLE_DRIVERoracle.jdbc.driver.OracleDriver …