一文入门人工智能的掌上明珠:生成对抗网络(GAN)
一.簡介
在人工智能領域內,GAN是目前最為潮流的技術之一,GAN能夠讓人工智能具備和人類一樣的想象能力。只需要給定計算機一定的數據,它就可以自動聯想出相似的數據。我們學習和使用GAN的原因如下:
1.能夠用GAN進行無監督學習:深度學習需要大量數據的標注才能夠進行監督學習,而使用GAN則不需要使用大量標注的數據,可以直接生成數據進行無監督學習,比如使用GAN進行圖像的語義分割,我們甚至根本不需要標注圖像,計算機就可以自動對圖像進行語義分割,目標檢測等等。
2.使用GAN可以進行圖像的風格遷移:我們可以將一段馬的視頻變成斑馬,將一段真實世界里的視頻變成動漫世界
3.使用GAN可以輸入文字就輸出圖像:我們只需要隨便對計算機說一句話,計算機就可以根據這段話想象出所對應的場景。
4.GAN:使用Gan可以恢復圖像的分辨率,讓圖像變得更加清晰,或者去掉馬賽克。比如前幾個月的老北京項目,將100年前的一段北京街頭的黑白視頻變成了高清的彩色視頻。
二.GAN的發展歷史
GAN實際上從2014年才提出來,目前也只走過了6年的時間,當時Yun Lecun(LeNet-5的發明者)在Twitter上評論說GAN是人工智能領域最有頂尖的技術,但是因為在今年他所提出的去馬賽克技術,因技術還不夠成熟,將奧巴馬(黑人)的打馬賽克之后的圖像去掉馬賽克變成了白人,刺激了美國的種族主義者,因此把他罵退了Twitter的賬號,Gan的發展歷程如下:
從DCGANs開始人們第一次在生成對抗網絡當中引入了深度神經網絡的思想,從而讓GAN的效果得到極大的提升。那么GAN的基本結構是怎么的呢?
三.生成式對抗網絡的結構
生成對抗網絡GAN的結構如下:
整個結構具有兩個神經網絡,一個是Generator神經網絡,另一個則是Discriminator神經網絡。Generator接受一個隨機噪聲(隨機的一個向量的值)用于生成假的圖片,Discriminator通過判定生成的圖片和真實圖片之間的差異來形成loss,同時在判定的時候更新自己的參數,直到能夠完全分辨出假的圖片和真實的圖片,讓loss變到最大為止。如下圖所示就是一個用于生成二次元妹子頭像的生成式對抗網絡:
那么我們整個訓練的步驟是怎樣的呢?
第一步:
首先生成Fakeimage,然后固定住Generator,讓其不更新參數,通過更新Discriminator的參數來讓loss更小,這里的loss衡量的是什么呢??假設真是的圖像的label為1,生成的fakeimage為0,loss就是衡量的Discriminator是否將真實的圖片label為1以及將假的圖片衡量為0的準確度,loss因此越小越好。從而使Discriminator能夠區分真的圖片和假的圖片。
第二步:
我們直接固定住Discriminator和Trainnig Set,更新Generator的參數,使Discriminator的loss越來越大,讓Discriminator根本無法分辨。這個時候參數更新又重復之間的第一步,固定住Generator,不斷地迭代。最終就可以讓生成的圖片完全讓人類的肉眼無法分辨其真假。
四.GAN的缺點
第一點是:根據實驗可得,生成式對抗網絡不容易梯度下降達到全局最優點,如下所示:
第二點則是容易出現模式坍塌,也就是訓練出來的結果很可能讓計算機喪失生成視頻或者圖片的多樣性。比如說我們使用GAN生成的妹子圖片和真實圖片幾乎像克隆人一般一模一樣,從而喪失了GAN的想象力。
五.常見的對抗生成網絡(GAN)
1.DCGAN是一種十分常見的對抗生成網絡,如下圖所示:
和原始GAN不同的是:
1.原始gan全都使用了全連接神經網絡進行訓練,而DCGAN將全連接網絡層都替換成了卷積神經網絡。
2.并在每一層之后添加了Batch Normilization,從而加速了訓練,提升了訓練的穩定性。
3.Generator的Hidden Layer都使用了Relu作為激活函數,Generator的最后一層使用了Tanh,Discriminator則使用了leakrelu作為了激活函數,可以防止梯度稀疏。
2.Multi agent diverse GAN(MAD-GAN)
通過增加多個生成器,從而讓GAN生成的對象更加豐富:
這就是GAN入門所需要了解的知識啦!希望您看了有所收獲,小編寫得也挺辛苦的,如果覺得還行的話,不要忘了點擊右下角的“推薦”和左下角的“關注”呀!
總結
以上是生活随笔為你收集整理的一文入门人工智能的掌上明珠:生成对抗网络(GAN)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: memory_buffer详解
- 下一篇: 可以直接进行运算么_WORD办公技巧:如