掀起熱潮的WassersteinGAN,在近段時間又有哪些研究進展?

2021-01-10 雷鋒網

雷鋒網按:本文作者為中山大學鄭華濱,他在知乎的提問《生成式對抗網絡GAN有哪些最新的發展,可以實際應用到哪些場景中?》中做了回答,介紹了WassersteinGAN的最新進展。本文為鄭華濱基於此回答向雷鋒網供稿,未經許可不得轉載。

前段時間,WassersteinGAN以其精巧的理論分析、簡單至極的算法實現、出色的實驗效果,在GAN研究圈內掀起了一陣熱潮(對WGAN不熟悉的讀者,可以參考我之前寫的介紹文章:)。但是很多人(包括我們實驗室的同學)到了上手跑實驗的時候,卻發現WGAN實際上沒那麼完美,反而存在著訓練困難、收斂速度慢等問題。其實,,認為關鍵在於原設計中Lipschitz限制的施加方式不對,並在新論文中提出了相應的改進方案:令人拍案叫絕的WassersteinGAN-知乎專欄WGAN的作者MartinArjovsky不久後就在reddit上表示他也意識到了這個問題

論文:ImprovedTrainingofWassersteinGANsTensorflow實現:igul222/improved_wgan_training

首先回顧一下WGAN的關鍵部分——Lipschitz限制是什麼。WGAN中,判別器D和生成器G的loss函數分別是:

(公式1)

(公式2)

公式1表示判別器希望儘可能拉高真樣本的分數,拉低假樣本的分數,公式2表示生成器希望儘可能拉高假樣本的分數。

Lipschitz限制則體現為,在整個樣本空間上,要求判別器函數梯度的Lp-norm不大於一個有限的常數:

(公式3)

直觀上解釋,就是當輸入的樣本稍微變化後,判別器給出的分數不能發生太過劇烈的變化。在原來的論文中,這個限制具體是通過weightclipping的方式實現的:每當更新完一次判別器的參數之後,就檢查判別器的所有參數的絕對值有沒有超過一個閾值,比如0.01,有的話就把這些參數clip回[-0.01,0.01]範圍內。通過在訓練過程中保證判別器的所有參數有界,就保證了判別器不能對兩個略微不同的樣本給出天差地別的分數值,從而間接實現了Lipschitz限制。

然而weightclipping的實現方式存在兩個嚴重問題:

第一,如公式1所言,判別器loss希望儘可能拉大真假樣本的分數差,然而weightclipping獨立地限制每一個網絡參數的取值範圍,在這種情況下我們可以想像,最優的策略就是儘可能讓所有參數走極端,要麼取最大值(如0.001)要麼取最小值(如-0.001)!為了驗證這一點,作者統計了經過充分訓練的判別器中所有網絡參數的數值分布,發現真的集中在最大和最小兩個極端上:

這樣帶來的結果就是,判別器會非常傾向於學習一個簡單的映射函數(想想看,幾乎所有參數都是正負0.01,都已經可以直接視為一個了,太簡單了)。而作為一個深層神經網絡來說,這實在是對自身強大擬合能力的巨大浪費!判別器沒能充分利用自身的模型能力,經過它回傳給生成器的梯度也會跟著變差。二值化神經網絡

在正式介紹gradientpenalty之前,我們可以先看看在它的指導下,同樣充分訓練判別器之後,參數的數值分布就合理得多了,判別器也能夠充分利用自身模型的擬合能力:

第二個問題,weightclipping會導致很容易一不小心就梯度消失或者梯度爆炸。原因是判別器是一個多層網絡,如果我們把clippingthreshold設得稍微小了一點,每經過一層網絡,梯度就變小一點點,多層之後就會指數衰減;反之,如果設得稍微大了一點,每經過一層網絡,梯度變大一點點,多層之後就會指數爆炸。只有設得不大不小,才能讓生成器獲得恰到好處的回傳梯度,然而在實際應用中這個平衡區域可能很狹窄,就會給調參工作帶來麻煩。相比之下,gradientpenalty就可以讓梯度在後向傳播的過程中保持平穩。論文通過下圖體現了這一點,其中橫軸代表判別器從低到高第幾層,縱軸代表梯度回傳到這一層之後的尺度大小(注意縱軸是對數刻度),c是clippingthreshold:

說了這麼多,gradientpenalty到底是什麼?

前面提到,Lipschitz限制是要求判別器的梯度不超過K,那我們何不直接設置一個額外的loss項來體現這一點呢?比如說:

(公式4)

不過,既然判別器希望儘可能拉大真假樣本的分數差距,那自然是希望梯度越大越好,變化幅度越大越好,所以判別器在充分訓練之後,其梯度norm其實就會是在K附近。知道了這一點,我們可以把上面的loss改成要求梯度norm離K越近越好,效果是類似的:

(公式5)

究竟是公式4好還是公式5好,我看不出來,可能需要實驗驗證,反正論文作者選的是公式5。接著我們簡單地把K定為1,再跟WGAN原來的判別器loss加權合併,就得到新的判別器loss:

(公式6)

這就是所謂的gradientpenalty了嗎?還沒完。公式6有兩個問題,首先是loss函數中存在梯度項,那麼優化這個loss豈不是要算梯度的梯度?一些讀者可能對此存在疑惑,不過這屬於實現上的問題,放到後面說。

其次,3個loss項都是期望的形式,落到實現上肯定得變成採樣的形式。前面兩個期望的採樣我們都熟悉,第一個期望是從真樣本集裡面採,第二個期望是從生成器的噪聲輸入分布採樣後,再由生成器映射到樣本空間。可是第三個分布要求我們在整個樣本空間上採樣,這完全不科學!由於所謂的維度災難問題,如果要通過採樣的方式在圖片或自然語言這樣的高維樣本空間中估計期望值,所需樣本量是指數級的,實際上沒法做到。

所以,論文作者就非常機智地提出,我們其實沒必要在整個樣本空間上施加Lipschitz限制,只要重點抓住生成樣本集中區域、真實樣本集中區域以及夾在它們中間的區域就行了。具體來說,我們先隨機採一對真假樣本,還有一個0-1的隨機數:

(公式7)

然後在和的連線上隨機插值採樣:

(公式8)

把按照上述流程採樣得到的所滿足的分布記為,就得到最終版本的判別器loss:

(公式9)

這就是新論文所採用的gradientpenalty方法,相應的新WGAN模型簡稱為WGAN-GP。我們可以做一個對比:

weightclipping是對樣本空間全局生效,但因為是間接限制判別器的梯度norm,會導致一不小心就梯度消失或者梯度爆炸;

gradientpenalty只對真假樣本集中區域、及其中間的過渡地帶生效,但因為是直接把判別器的梯度norm限制在1附近,所以梯度可控性非常強,容易調整到合適的尺度大小。

論文還講了一些使用gradientpenalty時需要注意的配套事項,這裡只提一點:由於我們是對每個樣本獨立地施加梯度懲罰,所以判別器的模型架構中不能使用BatchNormalization,因為它會引入同個batch中不同樣本的相互依賴關係。如果需要的話,可以選擇其他normalization方法,如layernormalization、weightnormalization和instancenormalization,這些方法就不會引入樣本之間的依賴。論文推薦的是layernormalization。

實驗表明,gradientpenalty能夠顯著提高訓練速度,解決了原始WGAN收斂緩慢的問題:

雖然還是比不過DCGAN,但是因為WGAN不存在平衡判別器與生成器的問題,所以會比DCGAN更穩定,還是很有優勢的。不過,作者憑什麼能這麼說?因為下面的實驗體現出,在各種不同的網絡架構下,其他GAN變種能不能訓練好是有點看運氣的事情,但是WGAN-GP全都能夠訓練好,尤其是最下面一行所對應的101層殘差神經網絡:

剩下的實驗結果中,比較厲害的是第一次成功做到了「純粹的」的文本GAN訓練!我們知道在圖像上訓練GAN是不需要額外的有監督信息的,但是之前就沒有人能夠像訓練圖像GAN一樣訓練好一個文本GAN,要麼依賴於預訓練一個語言模型,要麼就是利用已有的有監督groundtruth提供指導信息。而現在WGAN-GP終於在無需任何有監督信息的情況下,生成出下圖所示的英文字符序列:

它是怎麼做到的呢?我認為關鍵之處是對樣本形式的更改。以前我們一般會把文本這樣的離散序列樣本表示為sequenceofindex,但是它把文本表示成sequenceofprobabilityvector。對於生成樣本來說,我們可以取網絡softmax層輸出的詞典概率分布向量,作為序列中每一個位置的內容;而對於真實樣本來說,每個probabilityvector實際上就蛻化為我們熟悉的onehotvector。

但是如果按照傳統GAN的思路來分析,這不是作死嗎?一邊是hardonehotvector,另一邊是softprobabilityvector,判別器一下子就能夠區分它們,生成器還怎麼學習?沒關係,對於WGAN來說,真假樣本好不好區分並不是問題,WGAN只是拉近兩個分布之間的Wasserstein距離,就算是一邊是hardonehot另一邊是softprobability也可以拉近,在訓練過程中,概率向量中的有些項可能會慢慢變成0.8、0.9到接近1,整個向量也會接近onehot,最後我們要真正輸出sequenceofindex形式的樣本時,只需要對這些概率向量取argmax得到最大概率的index就行了。

新的樣本表示形式+WGAN的分布拉近能力是一個「黃金組合」,但除此之外,還有其他因素幫助論文作者跑出上圖的效果,包括:

文本粒度為英文字符,而非英文單詞,所以字典大小才二三十,大大減小了搜索空間

文本長度也才32

生成器用的不是常見的LSTM架構,而是多層反卷積網絡,輸入一個高斯噪聲向量,直接一次性轉換出所有32個字符

上面第三點非常有趣,因為它讓我聯想到前段時間挺火的語言學科幻電影《降臨》:

裡面的外星人「七肢怪」所使用的語言跟人類不同,人類使用的是線性的、串行的語言,而「七肢怪」使用的是非線性的、並行的語言。「七肢怪」在跟主角交流的時候,都是一次性同時給出所有的語義單元的,所以說它們其實是一些多層反卷積網絡進化出來的人工智慧生命嗎?

開完腦洞,我們回過頭看,不得不承認這個實驗的setup實在過於簡化了,能否擴展到更加實際的複雜場景,也會是一個問題。但是不管怎樣,生成出來的結果仍然是突破性的。

最後說回gradientpenalty的實現問題。loss中本身包含梯度,優化loss就需要求梯度的梯度,這個功能並不是現在所有深度學習框架的標配功能,不過好在Tensorflow就有提供這個接口——tf.gradients。開頭連結的GitHub源碼中就是這麼寫的:

#interpolates就是隨機插值採樣得到的圖像gradients=tf.gradients(Discriminator(interpolates),[interpolates])[0]

對於我這樣的PyTorch黨就非常不幸了,高階梯度的功能還在開發,感興趣的PyTorch黨可以訂閱這個GitHub的pullrequest:,如果它被merged了話就可以在最新版中使用高階梯度的功能實現gradientpenalty了。Autogradrefactor

但是除了等待我們就沒有別的辦法了嗎?其實可能是有的,我想到了一種近似方法來實現gradientpenalty,只需要把微分換成差分:

(公式10)

也就是說,我們仍然是在分布上隨機採樣,但是一次採兩個,然後要求它們的連線斜率要接近1,這樣理論上也可以起到跟公式9一樣的效果,我自己在MNIST+MLP上簡單驗證過有作用,PyTorch黨甚至Tensorflow黨都可以嘗試用一下。

相關焦點

  • 疫情期間,洽洽憑什麼掀起全球搶購熱潮
    來源標題:疫情期間,洽洽憑什麼掀起全球搶購熱潮 新冠肺炎疫情發生以來,世界人民都乖乖宅在家,如何排解居家無聊的情緒?各國人民花樣百出,其中一批不甘寂寞的國外網友們更是一馬當先。
  • 神秘的「507所」,誕生了哪些「神人」,為何會在上世紀掀起熱潮
    01江湖騙子張寶勝張寶勝是一位來自遼寧的工人,因為抓住了「氣功熱」這一社會熱潮,他有機會可以進入到「507所」。02「氣功熱」掀起之因那麼,問題來了。為何當時像張寶勝這樣的江湖騙子會受到那麼多人的關注呢?主要原因有兩個。
  • 免稅政策利好釋放 海南掀起購物熱潮
    一時間,這股在海南掀起的免稅購物熱潮顯得勢不可擋,「海南購」成為了當下熱議。 政策調整掀起購物熱潮「海南購」的熱潮,與今年6月公布的《海南自由貿易港建設總體方案》政策密不可分。海南免稅消費如此火爆主要有以下幾方面原因:一是不少消費者在上半年因疫情封鎖而壓抑的消費欲望在長假期間得到了釋放,尤其是對奢侈品等高檔商品需求頗高;二是由於新冠疫情仍在全球範圍內蔓延,而我國疫情基本得到了有效控制,這使得原本應在長假期間出國消費的群體出現回流;三是在節日期間,免稅購物折扣和優惠力度加大,海南免稅商品價格優勢顯著。這些都將十月的海南推向了購物熱潮的高峰。
  • 全民健身日掀起全民運動熱潮 - 國家體育總局
    全民健身日掀起全民運動熱潮 發布時間:2019-08-12 來源:河南省體育局 字體: 大 中 小
  • 騰衝市氣象局掀起十九屆五中全會精神學習熱潮
    原標題:騰衝市氣象局掀起十九屆五中全會精神學習熱潮近日,騰衝市氣象局多種方式掀起十九屆五中全會精神學習熱潮。一是班子成員帶頭開展自學。
  • 距離5G商用已近一年時間,都有哪些新進展?
    兩會聞風|5G商用近一年,都有哪些新進展?  中新經緯客戶端5月28日電 (徐世明)今年的政府工作報告提出,擴大有效投資。重點支持既促消費惠民生又調結構增後勁的「兩新一重」建設,包括拓展5G應用等。2019年6月6日,工信部正式發放5G牌照,由此拉開中國5G商用的序幕。如今,距離5G商用已近一年時間,都有了哪些新進展?
  • 南昌地鐵4號線望城車輛段項目咽喉區主體結構封頂
    摘 要:12月20日上午,隨著最後一塊頂板混凝土澆築的完成,由中鐵一局承建的南昌地鐵4號線望城車輛段項目咽喉區主體結構順利封頂。12月20日上午,隨著最後一塊頂板混凝土澆築的完成,由中鐵一局承建的南昌地鐵4號線望城車輛段項目咽喉區主體結構順利封頂。
  • 隴南市各級婦聯持續掀起全民閱讀熱潮
    隴南市各級婦聯持續掀起全民閱讀熱潮 2020-05-08 02:36 來源:澎湃新聞·澎湃號·政務
  • 「五度空間」掀起主題教育紅色熱潮
    振發社區黨總支參觀無錫市革命紀念館自今年9月以來,無錫市新吳區空港經開區(碩放街道)緊緊圍繞「不忘初心、牢記使命」主題,牢牢抓住深入學習貫徹習近平新時代中國特色社會主義思想根本任務,全面把握「守初心、擔使命,找差距、抓落實」總要求,精心謀劃、統籌安排,深入學習貫徹落實,把學習成果轉化為行為動力,掀起了主題教育紅色熱潮
  • 清河:掀起《習近平談治國理政》第三卷學習熱潮
    清河:掀起《習近平談治國理政》第三卷學習熱潮 2020-11-11 10:00 來源:澎湃新聞·澎湃號·政務
  • 谷歌搜索也掀起《寄生蟲》熱潮,奉俊昊翻譯、炸醬麵等成為熱門搜索詞
    獲得坎城電影節金棕櫚獎和奧斯卡四冠王的電影《寄生蟲》的熱潮在谷歌(google)搜索中掀起一股熱潮,全世界有關《寄生蟲》和奉俊昊導演的搜索量暴增。
  • 女裝大佬李永人氣破300w,掀起鬥魚DNF圈新輪熱潮
    女裝大佬李永人氣破300w,掀起鬥魚DNF圈新輪熱潮 電競直播掀起新一輪的行業熱潮,在直播圈中,電競遊戲直播一直廣受網友追捧。
  • 天津市網際網路企業掀起學習貫徹落實黨的十九屆五中全會精神熱潮
    天津市網際網路企業掀起學習貫徹落實黨的十九屆五中全會精神熱潮 2020-11-27 09:44 來源:澎湃新聞·澎湃號·政務
  • 中開高速公路雙水段最新進展是……
    標誌著中開高速公路雙水段控制性工程施工  取得階段性勝利!    為依時高質量完成工作目標,在年初全面復工以來,中電建廣東中開高速公路第8項目部對下沙衝施工段倒排工期施工期間,各部門緊密配合,做好資源調配,做到搶時間、抓安全、保質量,為梁板澆設順利完成打下堅實基礎。
  • 疑似發現金星存在生命關鍵物質,或將掀起新一輪金星探測熱潮
    2020年9月14日《自然天文學》雜誌發表了一篇關於金星的研究成果,一個由麻省理工學院和卡迪夫大學組成的研究團隊表示,他們通過在夏威夷和智利的兩臺顯微鏡觀察發現,在金星的大氣層裡發現一種特殊物質——磷化氫
  • 黔南州臺辦掀起學習黃大發先進事跡熱潮
    5月16日,黔南州臺辦組織全辦黨員幹部14人開展向黃大發同志學習活動,掀起了學習黃大發先進事跡的熱潮。     黃大發,貴州省遵義市播州區平正鄉團結村老支書,帶領全村群眾自強不息、艱苦奮鬥,歷時36年之久,在懸崖絕壁上鑿出一條7200米長的生命之渠,解決全村灌溉用水問題,生動詮釋了一名共產黨員一心為民的初心和堅持不懈的志氣。
  • M730、M630重裝上市,聯想掀起噴墨多功能普及熱潮
    在印表機市場也同樣精彩紛呈,近日,聯想多功能一體機M730、M630的重裝上市,面向家庭用戶和SOHO一族,憑藉著聯想國際一流的品質,創新的設計,實惠的價格,掀起了噴墨多功能普及應用的熱潮!    而聯想M630同樣是集列印、複印、掃描等功能於一體,黑白列印速度達到了17頁每分鐘,彩色列印每分鐘9頁,輕鬆滿足家庭用戶的需求,再加上每分鐘15頁的黑白複印速度,彩色複印為6頁每分鐘,複印文字清晰,圖案形象逼真,節省了用戶時間,提高了應用效率。充分滿足家庭用戶工作和娛樂的需求。
  • 電視劇版《三體》已低調開拍,電影尚未上映,又掀起一波熱潮
    8月2日,《三體》電視劇官宣了參與拍攝的演員陣容,由很多實力派的演員加入,有于和偉、王子文、李小冉等人,看到如此陣容,網友都紛紛表示期待。《三體》是改編自劉慈欣的同名長篇科幻小說,這一作品也獲得過"中國科幻銀河獎特別獎",掀起陣陣熱潮,如今電視劇版已在橫店低調開拍,等上映時想必又是一陣熱潮。此前,《三體》還拍攝成了電影版,由馮紹峰、張靜初、唐嫣等主演,但如今仍未上映,兩種不同形式的演繹,帶給觀眾不同的視覺體驗,現在只期待能呈現好的演繹效果。
  • 全市掀起新一輪「海上福州」建設熱潮
    市海上辦有關負責人表示,接下來,將深入貫徹落實省委常委、市委書記林寶金赴馬尾、連江調研「海上福州」建設時的指示精神,注重發揮海洋優勢,搶抓發展機遇,通過抓龍頭促帶動、抓集群促發展、抓載體促提升、抓創新促效益,全面掀起新一輪「海上福州」建設熱潮。
  • 抖音大咖齊齊助力《星雲紀》,掀起全民「不打擾」熱潮!
    抖音大咖齊齊助力《星雲紀》掀起全民「不打擾」熱潮! 大型唯美國風修仙手遊《星雲紀》將於4月23日震撼公測!