iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
0
AI & Data

Tensorflow2.0系列 第 28

GAN(生成對抗網路)

GAN是非監督式學習的一種方法,透過讓兩個神經網路相互博弈的方式進行學習,生成對抗網絡由一個生成網絡(Generator)與一個判別網絡(Discriminator)組成,生成網絡從潛在空間中隨機取樣作為輸入,其輸出結果需要盡量模仿訓練集中的真實樣本。判別網絡的輸入則為真實樣本或生成網絡的輸出,其目的是將生成網絡的輸出從真實樣本中盡可能分辨出來。

GAN的組成

GAN 主要由兩個模型:GeneratorDiscriminator 組成
Generator 的目標就是當你input 的 array的時候,他能依照你的array樣態生成目標
Discriminator的目標就是當Generator生成照片時,可以透過這個網路來對生成的照片做評分或者說驗證品質。因此,這Componet 有著不同的目標,相互對抗。
https://ithelp.ithome.com.tw/upload/images/20201008/20130246BQsJcmafHm.png
https://github.com/jonbruner/generative-adversarial-networks/blob/master/gan-notebook.ipynb
在訓練的過程,Generator會不斷的想辦法騙過Discriminator,而Discriminator會努力地去判斷。所以雙方就會互相成長,就像國外最長的舉例,假鈔跟驗證假鈔,Generator 是負責做假鈔的人,Discriminator 是檢驗是否為假鈔。透過不斷的訓練,就能生成越來越像的樣本。

GAN的應用

  1. 不用再花大量人力標註資料了,直接利用GAN模型生成即可,『監督式學習』就變成『非監督式學習』。
  2. 風格轉換
    https://ithelp.ithome.com.tw/upload/images/20201008/201302465qCsVn6QmD.png
    https://junyanz.github.io/CycleGAN/
  3. 影像加強
    https://ithelp.ithome.com.tw/upload/images/20201008/20130246DP99DbV0g9.png
    https://junyanz.github.io/CycleGAN/
  4. 影像轉換
    https://ithelp.ithome.com.tw/upload/images/20201008/20130246ZRxpMysWVT.png
    https://junyanz.github.io/CycleGAN/
    目前GAN較多被應用在生成資料方面,如圖像與影音的生成、合成、辨識、修復等等,進階一點的則是輸入文本描述便能生成與形容相符的圖像,或者透過語言模型實現機器翻譯等。
    結論
    GAN經由小量真實資料,產生大量的訓練資料,作為非監督學習的重要訓練方法,儘管還有許多問題需要改良修正,GAN在未來依舊可能真正實現「完全不靠人類就能自主學習的AI」,其技術上的突破將會是人工智慧的發展趨勢。明天來實作一下GAN。

上一篇
Auto Encoder
下一篇
GAN實作(一)
系列文
Tensorflow2.030
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言