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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

GAN——对抗生成网络

發布時間:2024/3/26 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GAN——对抗生成网络 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

GAN的基本思想

作為現在最火的深度學習模型之一,GAN全稱對抗生成網絡,顧名思義是生成模型的一種,而他的訓練則是處于一種對抗博弈狀態中的。它使用兩個神經網絡,將一個神經網絡與另一個神經網絡進行對抗。
基本思想:(摘自某*乎)
假如你是一名籃球運動員,你想在下次比賽中得到上場機會。
于是在每一次訓練賽之后你跟教練進行溝通:

你:教練,我想打球
教練:(評估你的訓練賽表現之后)… 算了吧
(你通過跟其他人比較,發現自己的運球很差,于是你苦練了一段時間)

你:教練,我想打球
教練:… 嗯 還不行
(你發現大家投籃都很準,于是你苦練了一段時間的投籃)

你:教練,我想打球
教練: … 嗯 還有所欠缺
(你發現你的身體不夠壯,被人一碰就倒,于是你去泡健身房)

通過這樣不斷的努力和被拒絕,你最終在某一次訓練賽之后得到教練的贊賞,獲得了上場的機會。
值得一提的是在這個過程中,所有的候選球員都在不斷地進步和提升。因而教練也要不斷地通過對比場上球員和候補球員來學習分辨哪些球員是真正可以上場的,并且要“觀察”得比球員更頻繁。隨著大家的成長教練也會會變得越來越嚴格。

基本結構:

GAN的主要結構包括一個生成器G(Generator)和一個判別器D(Discriminator)。

判別器的任務是判斷輸入圖像是源自數據集中還是由機器生成的。判別器一般使用二分類的神經網絡來構建,一般將取自數據集的樣本視為正樣本,而生成的樣本標注為負樣本。生成器的任務是接收隨機噪聲,然后使用反卷積網絡來創建一個圖像。生成器的隨機輸入可以看做一個種子,相同的種子會得到相同的生成圖像,不同的種子則得到的圖像不同,大量種子的作用是保證生成圖像的多樣性。

在上面的例子中的球員就相當于生成器,我們需要他在球場上能有好的表現。而球員一開始都是初學者,這個時候就需要一個教練員來指導他們訓練,告訴他們訓練得怎么樣,直到真的能夠達到上場的標準。而這個教練就相當于判別器。

GAN的雙系統的目的是讓生成器盡量去迷惑判別器,同時讓判別器盡可能的對輸入圖像的來源進行判斷。兩個模型之間是互相對抗的關系,它們都會通過試圖擊敗對方來使自己變得更好。生成器可以通過判別器得到它生成的圖像和數據集圖像分布是否一致的反饋,而判別器則可以通過生成器得到更多的訓練樣本。

舉個例子:
我們現在擁有大量的手寫數字的數據集,我們希望通過GAN生成一些能夠以假亂真的手寫字圖片。

  • 定義一個模型來作為生成器(圖三中藍色部分Generator),能夠輸入一個向量,輸出手寫數字大小的像素圖像。
  • 定義一個分類器來作為判別器(圖三中紅色部分Discriminator)用來判別圖片是真的還是假的(或者說是來自數據集中的還是生成器中生成的),輸入為手寫圖片,輸出為判別圖片的標簽。

訓練過程是什么?

前面已經定義了好了
一個生成器(Generator)來生成手寫數字,
一個判別器(Discrimnator)來判別手寫數字是否是真實的,和一些真實的手寫數字數據集。

訓練的基本過程(重難點):

  • 初始化判別器D的參數 和生成器G的參數 。
  • 從真實樣本中采樣 m 個樣本
    從先驗分布噪聲中采樣 m 個噪聲樣本
    并通過生成器獲取 m 個生成樣本
  • 固定生成器G,訓練判別器D盡可能好地準確判別真實樣本和生成樣本,盡可能大地區分正確樣本和生成的樣本。

  • 循環k次更新判別器之后,使用較小的學習率來更新一次生成器的參數,訓練生成器使其盡可能能夠減小生成樣本與真實樣本之間的差距,也相當于盡量使得判別器判別錯誤。
  • 多次更新迭代之后,最終理想情況是使得判別器判別不出樣本來自于生成器的輸出還是真實的輸出。亦即最終樣本判別概率均為0.5。

    注:圖中的黑色虛線表示真實的樣本的分布情況,藍色虛線表示判別器判別概率的分布情況,綠色實線表示生成樣本的分布。 表示噪聲, 到 表示通過生成器之后的分布的映射情況。
  • 我們的目標是使用生成樣本分布(綠色實線)去擬合真實的樣本分布(黑色虛線),來達到生成以假亂真樣本的目的。

    可以看到在(a)狀態處于最初始的狀態的時候,生成器生成的分布和真實分布區別較大,并且判別器判別出樣本的概率不是很穩定,因此會先訓練判別器來更好地分辨樣本。
    通過多次訓練判別器來達到(b)樣本狀態,此時判別樣本區分得非常顯著和良好。然后再對生成器進行訓練。
    訓練生成器之后達到(c)樣本狀態,此時生成器分布相比之前,逼近了真實樣本分布。
    經過多次反復訓練迭代之后,最終希望能夠達到(d)狀態,生成樣本分布擬合于真實樣本分布,并且判別器分辨不出樣本是生成的還是真實的(判別概率均為0.5)。也就是說我們這個時候就可以生成出非常真實的樣本啦,目的達到。

    總結

    以上是生活随笔為你收集整理的GAN——对抗生成网络的全部內容,希望文章能夠幫你解決所遇到的問題。

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