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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

GANs简述 Generative Adversarial Nets

發布時間:2024/1/1 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GANs简述 Generative Adversarial Nets 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0、說在開頭

????????最近接觸到基于機器學習進行入侵檢測的項目,加上研討班上需要面向畢設預開題,在看了最近一些論文之后打算開始小白的GANs之旅,這篇先從Goodfellow在2014年最早提出GANs這一概念的文章說起,講述一下自己對于GANs框架的一些想法和理解,方便日后回顧,若有錯誤歡迎大佬指出,初學者可能有些細節講的不算清楚。

1、現狀

?

? ? ? ? 在Goodfellow大神提出GAN以后,關于GANs的研究數量直線上升,如圖(圖自:GAN-zoo) 那么什么是GANs呢,全稱Generative Adversarial Nets,翻譯為生成對抗網絡。意味著GANs框架可以分為Generative跟Adversarial,即生成跟對抗兩個主要思路。

2、Basic Idea

????????生成對抗網絡主要有兩部分組成,分別是生成器G跟判別器D。判別器在本質上其實就是一個二分類模型,根據一定的判別界限,通過這個判別界限去區分樣本。如下圖,D的輸入是來自G的輸出G(z)以及真實數據X,D的輸出則是一個得分,該得分越高則表明輸入屬于真實數據集X的概率越大。而生成器是需要在給定的條件內產生數據的分布, 比如高斯分布,需要使得生成的數據擬合該分布。

????????

????????圖自Recent Progress on Generative AdversarialNetworks (GANs): A Survey

? ? ? ? ?簡而言之,GANs的思路是使用兩個模型,生成模型G跟判別模型D,以圖像任務為例,判別模型D用于判斷輸入的圖像是否屬于真實數據集,生成模型G的任務則是生成盡可能貼近真實數據集的圖片,欺騙判別器,讓判別器難以判斷這張圖片的真假,這就是GANs中A所代表的對抗所在。在原文中作者將G比喻成造假鈔的人,而D比喻為警察。通過兩個模型的對抗訓練,兩個模型的能力在理論上會越來越強,即生成器能生成越來越真實的數據,而判別器對真假數據的判別能力越來越強,最終兩個模型的能力達到一個納什均衡,即生成器生成的對抗樣本以假亂真,判別器的準確率約為0.5,雙方的利益都達到最大化,且不再更新自己的策略。

? ? ? ? 如上圖,將生成器比作枯葉蝶,將判別器比作捕食者,一開始枯葉蝶顏色艷麗,捕食者根據學習發現枯葉蝶不是棕色的,所以遇到顏色鮮艷的蝴蝶捕食者可以判斷其為枯葉蝶。后來枯葉蝶進化了,將自己進化為棕色,躲避捕食者。而與此同時,捕食者也相應進化,改變自己的判斷策略,學習到枯葉蝶可能是沒有葉脈紋路的,之后枯葉蝶進一步進化,而捕食者可能又進而更新策略,不斷進化。

3、Generation

? ? ? ? 生成器輸入一些隨機分布,然后生成指定的數據,我們可以使用不同的算法使生成器生成不同類型的數據,如圖像或者文字。

? ? ? ? 如圖,生成器的基本思想即為輸入一個低維的vector向量?生成一個高維的對象,而生成器自身是一個Neural Network(NN),也可以將其理解為一個函數(function)。而輸入向量的不同元素可能代表了最終輸出數據的不同表現,如下圖。

4、Discriminator

? ? ? ? ?判別器理論上是一個二分類模型,對輸入數據進行二分類任務,如下圖,給來自真實數據庫的數據打高分(接近1),給來自生成器的數據打低分(接近0)。

5、Algorithm

? ? ? ? GANs模型的目標函數如下:

? ? ? ? ?首先是maxD,意思是使得判別器能在最大概率區分訓練樣本,而生成器G的目標則是使得1-D(G(z))最小,即使得D難以區分G根據隨機分布z生成的G(z),使得D的loss最大化。我們也可以將log(1-D(G(z)))理解為生成器G的loss。

? ? ? ? GANs模型的訓練模式分為幾個步驟:

(1)固定生成器G,更新判別器D:

? ? ? ? 首先在真實數據集中采部分樣本,?并標記為1,將根據隨機分布輸入固定生成器G生成的數據標記為0,對判別器D進行訓練,使其能夠初步識別真假數據。

(2)固定判別器D,更新生成器G

? ? ? ? 將步驟(1)中訓練得到的模型作為固定的判別器,生成器不斷更新,試圖欺騙第一階段的判器。

?(3)重復步驟1、2,得到最終模型

? ? ? ? 在訓練過程中,生成器生成的數據會越來越接近真實數據,在原文中作者給出了理論上的訓練效果,如下圖:

? ? ? ? 對于圖a,判別器D剛開始訓練,本身能力有限,有波動,只能初步區分生成數據與真實數據。在圖b中可以看見判別器D的能力有所提升,能較為明顯區分真實與生成數據。對于圖c,綠色線與黑色線之間的距離更近,說明生成器在沿著藍色的線向高處訓練,隨著訓練的持續,作者認為會達到圖d的情況,即判別器D已經無法分辨生成數據與真實數據,兩個模型達到了納什均衡,雙方策略無法進一步更新。但后續也有研究指出最終情況與作者提出的有區別,判別器D最終并不會完全失去判斷能力,而在14年以后也有大量研究使用GANs訓練后得到的判別器D執行更加精確的分類任務,如果真如作者想象,判別器D應該無法進一步執行分類任務,在之后的文章我會進一步補充這方面的內容。

6、思考

? ? ? ? 最后提出一個思考,并在后續的文章中進一步解釋。關于GANs框架,也存在一個和平的比喻,將生成器G比作學生,將判別器D比作老師。

? ? ? ? 生成器需要學習如何繪制二次元人物頭像,但最開始畫出來的圖像清晰度不夠,或者沒有顏色,也無法看出來這是一個人物,此時初代的判別器D告訴生成器,二次元人物應該有兩個圈,表示眼睛。生成器進一步學習,畫出了黑白的頭像,此時判別器D進一步提出,二次元人物應該是彩色的,然后不斷重復繪畫與提出建議的過程,老師跟學生共同進步。

????????基于這個比喻,很自然的我們會想,為什么學生不能自學?而老師知道真正的頭像長什么樣,為什么老師不能自己畫呢?這是我們后續探討的問題,在下一篇文章中我會爭取解釋這部分的問題。?

總結

以上是生活随笔為你收集整理的GANs简述 Generative Adversarial Nets的全部內容,希望文章能夠幫你解決所遇到的問題。

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