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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

一文看懂「生成对抗网络 - GAN」基本原理+10种典型算法+13种应用

發布時間:2024/3/12 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文看懂「生成对抗网络 - GAN」基本原理+10种典型算法+13种应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

生成對抗網絡 – Generative Adversarial Networks | GAN

文章目錄
  • GAN的設計初衷
  • 生成對抗網絡 GAN 的基本原理
  • GAN的優缺點
  • 10大典型的GAN算法
  • GAN 的13種實際應用
  • 百度百科+維基百科
  • 擴展閱讀

此文章為轉載,這是原文地址

生成對抗網絡 – GAN 是最近2年很熱門的一種無監督算法,他能生成出非常逼真的照片,圖像甚至視頻。我們手機里的照片處理軟件中就會使用到它。

本文將詳細介紹生成對抗網絡 – GAN 的設計初衷、基本原理、10種典型算法和13種實際應用。

?

GAN的設計初衷

一句話來概括 GAN 的設計動機就是——自動化。

人工提取特征——自動提取特征

我們在《一文看懂深度學習(概念+優缺點+典型算法)》中講過,深度學習最特別最厲害的地方就是能夠自己學習特征提取。

機器的超強算力可以解決很多人工無法解決的問題。自動化后,學習能力更強,適應性也更強。

人工判斷生成結果的好壞——自動判斷和優化

我們在《監督學習》中講過,訓練集需要大量的人工標注數據,這個過程是成本很高且效率很低的。而人工判斷生成結果的好壞也是如此,有成本高和效率低的問題。

而 GAN 能自動完成這個過程,且不斷的優化,這是一種效率非常高,且成本很低的方式。GAN是如何實現自動化的呢?下面我們講解一下他的原理。

?

生成對抗網絡 GAN 的基本原理

大白話版本

知乎上有一個很不錯的解釋,大家應該都能理解:

假設一個城市治安混亂,很快,這個城市里就會出現無數的小偷。在這些小偷中,有的可能是盜竊高手,有的可能毫無技術可言。假如這個城市開始整飭其治安,突然開展一場打擊犯罪的「運動」,警察們開始恢復城市中的巡邏,很快,一批「學藝不精」的小偷就被捉住了。之所以捉住的是那些沒有技術含量的小偷,是因為警察們的技術也不行了,在捉住一批低端小偷后,城市的治安水平變得怎樣倒還不好說,但很明顯,城市里小偷們的平均水平已經大大提高了。

警察們開始繼續訓練自己的破案技術,開始抓住那些越來越狡猾的小偷。隨著這些職業慣犯們的落網,警察們也練就了特別的本事,他們能很快能從一群人中發現可疑人員,于是上前盤查,并最終逮捕嫌犯;小偷們的日子也不好過了,因為警察們的水平大大提高,如果還想以前那樣表現得鬼鬼祟祟,那么很快就會被警察捉住。

為了避免被捕,小偷們努力表現得不那么「可疑」,而魔高一尺、道高一丈,警察也在不斷提高自己的水平,爭取將小偷和無辜的普通群眾區分開。隨著警察和小偷之間的這種「交流」與「切磋」,小偷們都變得非常謹慎,他們有著極高的偷竊技巧,表現得跟普通群眾一模一樣,而警察們都練就了「火眼金睛」,一旦發現可疑人員,就能馬上發現并及時控制——最終,我們同時得到了最強的小偷和最強的警察。

?

非大白話版本

生成對抗網絡(GAN)由2個重要的部分構成:

  • 生成器(Generator):通過機器生成數據(大部分情況下是圖像),目的是“騙過”判別器
  • 判別器(Discriminator):判斷這張圖像是真實的還是機器生成的,目的是找出生成器做的“假數據”
  • 下面詳細介紹一下過程:

    第一階段:固定「判別器D」,訓練「生成器G」

    我們使用一個還 OK 判別器,讓一個「生成器G」不斷生成“假數據”,然后給這個「判別器D」去判斷。

    一開始,「生成器G」還很弱,所以很容易被揪出來。

    但是隨著不斷的訓練,「生成器G」技能不斷提升,最終騙過了「判別器D」。

    到了這個時候,「判別器D」基本屬于瞎猜的狀態,判斷是否為假數據的概率為50%。

    第二階段:固定「生成器G」,訓練「判別器D」

    當通過了第一階段,繼續訓練「生成器G」就沒有意義了。這個時候我們固定「生成器G」,然后開始訓練「判別器D」。

    「判別器D」通過不斷訓練,提高了自己的鑒別能力,最終他可以準確的判斷出所有的假圖片。

    到了這個時候,「生成器G」已經無法騙過「判別器D」。

    循環階段一和階段二

    通過不斷的循環,「生成器G」和「判別器D」的能力都越來越強。

    最終我們得到了一個效果非常好的「生成器G」,我們就可以用它來生成我們想要的圖片了。

    下面的實際應用部分會展示很多“驚艷”的案例。

    如果對 GAN 的詳細技術原理感興趣,可以看看下面2篇文章:

    《生成性對抗網絡(GAN)初學者指南 – 附代碼》

    《長文解釋生成對抗網絡GAN的詳細原理(20分鐘閱讀)》

    ?

    GAN的優缺點

    3個優勢

  • 能更好建模數據分布(圖像更銳利、清晰)
  • 理論上,GANs 能訓練任何一種生成器網絡。其他的框架需要生成器網絡有一些特定的函數形式,比如輸出層是高斯的。
  • 無需利用馬爾科夫鏈反復采樣,無需在學習過程中進行推斷,沒有復雜的變分下界,避開近似計算棘手的概率的難題。
  • 2個缺陷

  • 難訓練,不穩定。生成器和判別器之間需要很好的同步,但是在實際訓練中很容易D收斂,G發散。D/G 的訓練需要精心的設計。
  • 模式缺失(Mode Collapse)問題。GANs的學習過程可能出現模式缺失,生成器開始退化,總是生成同樣的樣本點,無法繼續學習。
  • 擴展閱讀:《為什么訓練生成對抗網絡如此困難?》閱讀這篇文章對數學要求很高

    ?

    10大典型的GAN算法

    GAN 算法有數百種之多,大家對于 GAN 的研究呈指數級的上漲,目前每個月都有數百篇論壇是關于對抗網絡的。

    下圖是每個月關于 GAN 的論文發表數量:

    如果你對 GANs 算法感興趣,可以在 「GANs動物園」里查看幾乎所有的算法。我們為大家從眾多算法中挑選了10個比較有代表性的算法,技術人員可以看看他的論文和代碼。

    算法論文代碼
    GAN論文地址代碼地址
    DCGAN論文地址代碼地址
    CGAN論文地址代碼地址
    CycleGAN論文地址代碼地址
    CoGAN論文地址代碼地址
    ProGAN論文地址代碼地址
    WGAN論文地址代碼地址
    SAGAN論文地址代碼地址
    BigGAN論文地址代碼地址

    上面內容整理自《Generative Adversarial Networks – The Story So Far》原文中對算法有一些粗略的說明,感興趣的可以看看。

    ?

    GAN 的13種實際應用

    GAN 看上去不如「語音識別」「文本挖掘」那么直觀。不過他的應用已經進入到我們的生活中了。下面給大家列舉一些 GAN 的實際應用。

    生成圖像數據集

    人工智能的訓練是需要大量的數據集的,如果全部靠人工收集和標注,成本是很高的。GAN 可以自動的生成一些數據集,提供低成本的訓練數據。

    ?

    生成人臉照片

    生成人臉照片是大家很熟悉的應用,但是生成出來的照片用來做什么是需要思考的問題。因為這種人臉照片還處于法律的邊緣。

    ?

    生成照片、漫畫人物

    GAN 不但能生成人臉,還能生成其他類型的照片,甚至是漫畫人物。

    ?

    圖像到圖像的轉換

    簡單說就是把一種形式的圖像轉換成另外一種形式的圖像,就好像加濾鏡一樣神奇。例如:

    • 把草稿轉換成照片
    • 把衛星照片轉換為Google地圖的圖片
    • 把照片轉換成油畫
    • 把白天轉換成黑夜

    ?

    文字到圖像的轉換

    在2016年標題為“?StackGAN:使用 StackGAN 的文本到逼真照片的圖像合成?”的論文中,演示了使用 GAN,特別是他們的 StackGAN,從鳥類和花卉等簡單對象的文本描述中生成逼真的照片。

    ?

    語意 – 圖像 – 照片 的轉換

    在2017年標題為“?高分辨率圖像合成和帶條件GAN的語義操縱?”的論文中,演示了在語義圖像或草圖作為輸入的情況下使用條件GAN生成逼真圖像。

    ?

    自動生成模特

    在2017年標題為“?姿勢引導人形象生成?”的論文中,可以自動生成人體模特,并且使用新的姿勢。

    ?

    照片到Emojis

    GANs 可以通過人臉照片自動生成對應的表情(Emojis)。

    ?

    照片編輯

    使用GAN可以生成特定的照片,例如更換頭發顏色、更改面部表情、甚至是改變性別。

    ?

    預測不同年齡的長相

    給一張人臉照片, GAN 就可以幫你預測不同年齡階段你會長成什么樣。

    ?

    提高照片分辨率,讓照片更清晰

    給GAN一張照片,他就能生成一張分辨率更高的照片,使得這個照片更加清晰。

    ?

    照片修復

    假如照片中有一個區域出現了問題(例如被涂上顏色或者被抹去),GAN可以修復這個區域,還原成原始的狀態。

    ?

    自動生成3D模型

    給出多個不同角度的2D圖像,就可以生成一個3D模型。

    ?

    ?

    百度百科+維基百科

    百度百科版本

    生成式對抗網絡(GAN, Generative Adversarial Networks )是一種深度學習模型,是近年來復雜分布上無監督學習最具前景的方法之一。模型通過框架中(至少)兩個模塊:生成模型(Generative Model)和判別模型(Discriminative Model)的互相博弈學習產生相當好的輸出。原始 GAN 理論中,并不要求 G 和 D 都是神經網絡,只需要是能擬合相應生成和判別的函數即可。但實用中一般均使用深度神經網絡作為 G 和 D 。一個優秀的GAN應用需要有良好的訓練方法,否則可能由于神經網絡模型的自由性而導致輸出不理想。

    查看詳情

    維基百科版本

    生成對抗網絡(GAN)是一類用于無監督機器學習的人工智能算法,由在零和游戲框架中相互競爭的兩個神經網絡系統實現。他們是由Ian Goodfellow 等人介紹的。在2014年這種技術可以生成照片看起來至少在表面上真實的人的觀察員,有很多的現實特征(雖然在測試中的人可以真正告訴在許多情況下產生)。

    查看詳情

    ?

    擴展閱讀

    入門類文章(1)

    生成對抗網絡GANs學習路線(2019-6)

    「論文」生成性對抗網絡及其變體的工作原理

    實踐類文章(6)

    O-GAN:簡單修改,讓GAN的判別器變成一個編碼器!(2019-3-8)

    巧斷梯度:單個loss實現GAN模型(附開源代碼)(2019-3-5)

    超詳綜述:GAN在圖像生成上的應用

    互懟的藝術:從零直達WGAN-GP

    ESRGAN:基于GAN的增強超分辨率方法(附代碼解析)

    基于PyTorch的GAN框架TorchGAN:用架構級API輕松定制GAN項目

    開拓視野類文章(18)

    綜述:基于GAN的圖像翻譯模型盤點(2019-9)

    數據不夠?GAN來湊!(2019-7)

    入大學前,Ta詳細梳理了GAN的發展脈絡(2019-6)

    一文看懂GAN演進圖譜(2019-6)

    關于生成式對抗網絡(GAN) 還有這些開放性問題尚未解決(2019-4)

    七問生成對抗:谷歌大腦研究員提出未來GANs研究的七個深入方向(2019-4)

    在GAN中畢業:從了解生成對抗網絡到運行自己的網絡(2019-4)

    GAN – 為什么訓練生成對抗網絡如此困難!(2019-4)

    生成性對抗網絡(GAN)的興起(2019-4)

    四塊GPU即可訓練BigGAN:「官方版」PyTorch實現出爐(2019-3)

    最新圖像合成GAN架構解讀:核心理念、關鍵成就、商業化路徑(2019-3)

    MirrorGAN出世!浙大等提出文本-圖像新框架,刷新COCO紀錄(2019-3)

    GAN之父5篇文章細數GAN在人臉生成方向4年多進展

    谷歌大腦發布GAN全景圖:看百家爭鳴的生成對抗網絡

    生成對抗網絡的最新研究進展(19年2月)

    能量視角下的GAN模型(一):GAN=“挖坑”+“跳坑”

    GANs 千萬條,安全第一條、

    GAN最新進展:8大技巧提高穩定性

    相關資源(1)

    GANs 算法大全 – the-gan-zoo

    谷歌帶來GAN入門神器:瀏覽器上運行的可視化工具GAN Lab

    總結

    以上是生活随笔為你收集整理的一文看懂「生成对抗网络 - GAN」基本原理+10种典型算法+13种应用的全部內容,希望文章能夠幫你解決所遇到的問題。

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