人工智能中小樣本問題相關的系列模型演變及學習筆記(二):生成對抗網絡 GAN

【說在前面】本人博客新手一枚,象牙塔的老白,職業場的小白。如下內容僅爲我的看法,歡迎批評指正,不喜勿噴![握手][握手]html

【再囉嗦一下】本文銜接上一個隨筆:人工智能中小樣本問題相關的系列模型演變及學習筆記(一):元學習、小樣本學習python

1、生成對抗網絡 GAN 綜述

說到小樣本學習,就想說比較時髦的生成對抗網絡GAN。別誤會,生成對抗網絡並非只針對小樣本生成,還有不少別的豐富應用。面試

1. GAN

GANs是一種結構化的機率模型,由兩個對立的模型組成:生成模型(G)用於捕獲數據分佈,判別模型(D)用於估計生成數據的機率,以肯定生成的數據是來自真實數據分佈,仍是來自G的分佈。D和G使用基於梯度的優化技術(同時梯度降低)玩一個極小極大零和博弈,直到納什均衡。算法

GANs在一些實際任務中表現良好,例如圖像生成、視頻生成、域自適應和圖像超分辨率等。傳統的GANs雖然在不少方面都取得了成功,可是因爲D和G訓練的不平衡,使得GANs在訓練中很是不穩定。D利用迅速飽和的邏輯損失。另外,若是D能夠很容易的區分出真假圖像,那麼D的梯度就會消失,當D不能提供梯度時,G就會中止更新。網絡

近年來,對於模式崩潰問題的處理有了許多改進,由於G產生的樣本基於少數模式,而不是整個數據空間。另外一方面,引入了幾個目標(損失)函數來最小化與傳統GANs公式的差別。最後,提出了幾種穩定訓練的方法。框架

2. DCGAN

顧名思義,DCGAN主要討論CNN與GAN如何結合使用並給出了一系列建議。另外還討論了GAN特徵的可視化、潛在空間插值等問題。機器學習

3. ImprovedGAN

Ian Goodfellow等人提供了諸多訓練穩定GAN的建議,包括特徵匹配、mini-batch識別、歷史平均、單邊標籤平滑以及虛擬批標準化等技巧。討論了GAN不穩定性的最佳假設。函數

4. PACGAN

PACGAN討論的是的如何分析model collapse,以及提出了PAC判別器的方法用於解決model collapse。思想其實就是將判別器的輸入改爲多個樣本,這樣判別器能夠同時看到多個樣本能夠從必定程度上防止model collapse。post

5. WGAN

WGAN首先從理論上分析了原始GAN模型存在的訓練不穩定、生成器和判別器的loss沒法只是訓練進程、生成樣本缺少多樣性等問題,並經過改進算法流程針對性的給出了改進要點。學習

6. CycleGAN 

CycleGAN討論的是image2image的轉換問題,提出了Cycle consistency loss來處理缺少成對訓練樣原本作image2image的轉換問題。Cycle Consistency Loss 背後的主要想法,圖片A轉化獲得圖片B,再從圖片B轉換獲得圖片A',那麼圖片A和圖片A'應該是圖一張圖片。

7. Vid2Vid

Vid2Vid在生成器中加入光流約束,判別器中加入光流信息及對前景和背景分別建模,重點解決視頻轉換過程當中先後幀圖像的不一致性。

8. PGGAN

PGGAN創造性地提出了以一種漸進增大(Progressive growing)的方式訓練GAN,利用逐漸增大的PGGAN網絡實現了效果使人驚歎的生成圖像。「Progressive Growing」 指的是先訓練 4x4 的網絡,而後訓練 8x8,不斷增大,最終達到 1024x1024。這既加快了訓練速度,又大大穩定了訓練速度,而且生成的圖像質量很是高。

9. StackGAN

StackGAN是由文本生成圖像,StackGAN模型與PGGAN工做的原理很像,StackGAN 首先輸出分辨率爲64×64 的圖像,而後將其做爲先驗信息生成一個 256×256 分辨率的圖像。

10. BigGAN

BigGAN模型是基於 ImageNet 生成圖像質量最高的模型之一。該模型很難在本地機器上實現,並且 有許多組件,如 Self-Attention、 Spectral Normalization 和帶有投影鑑別器的 cGAN等。

11. StyleGAN 

StyleGAN應該是截至目前最複雜的GAN模型,該模型借鑑了一種稱爲自適應實例標準化 (AdaIN) 的機制來控制潛在空間向量 z。雖然很難本身實現一個StyleGAN,可是它提供了不少有趣的想法。

12. 小結

固然前文有一些方法沒有提到的,例如CGAN、自編碼GAN等。

說到這裏,放一張大佬整理的GAN家族主要模型的概要圖:

  • 左邊部分主要是改進模型解決例如圖片轉換、文本轉圖像、生成圖片、視頻轉換等實際問題。
  • 右邊部分主要是解決GAN框架自己存在的一些問題。

同時,再分享一下生成式對抗網絡(GANs)最新2020綜述,分類更全面更細緻:[認真看圖][認真看圖]

  • 主要包括基於從新設計的網絡結構、新的目標函數和替代優化算法的技術三個大類

GAN 已經在一些特定應用上與其它機器學習算法相結合,例如半監督學習、遷移學習、強化學習和多模態學習等。GAN 在圖像處理與計算機視覺(例如圖像超分辨率、圖像生成、目標檢測和視頻處理等)、天然語言處理(例如文本生成等)、音樂(例如歌詞生成等)、語音與音頻、醫學以及數據科學中的典型應用(例如以前個人隨筆裏提到的數據補全、異常檢測、時間序列預測等)。

同時,GAN 被用於特徵學習領域(例如特徵選擇、哈希和度量學習等)和其它機器學習任務(例如主動學習、在線學習 、零/小樣本學習和多任務學習等)。能夠說,計算機領域的不少研究分支中的算法模型都可以互相遷移、彼此融合,從而在不一樣領域有了拓展性的應用。

歡迎持續關注個人下一篇隨筆:人工智能中小樣本問題相關的系列模型演變及學習筆記(三):遷移學習

歡迎持續關注個人下一篇隨筆:人工智能中小樣本問題相關的系列模型演變及學習筆記(四):知識蒸餾、增量學習

 

若是您對異常檢測感興趣,歡迎瀏覽個人另外一篇博客:異常檢測算法演變及學習筆記

若是您對智能推薦感興趣,歡迎瀏覽個人另外一篇博客:智能推薦算法演變及學習筆記 CTR預估模型演變及學習筆記

若是您對知識圖譜感興趣,歡迎瀏覽個人另外一篇博客:行業知識圖譜的構建及應用基於圖模型的智能推薦算法學習筆記

若是您對時間序列分析感興趣,歡迎瀏覽個人另外一篇博客:時間序列分析中預測類問題下的建模方案 深度學習中的序列模型演變及學習筆記

若是您對數據挖掘感興趣,歡迎瀏覽個人另外一篇博客:數據挖掘比賽/項目全流程介紹 機器學習中的聚類算法演變及學習筆記

若是您對人工智能算法感興趣,歡迎瀏覽個人另外一篇博客:人工智能新手入門學習路線和學習資源合集(含AI綜述/python/機器學習/深度學習/tensorflow)人工智能領域經常使用的開源框架和庫(含機器學習/深度學習/強化學習/知識圖譜/圖神經網絡)

若是你是計算機專業的應屆畢業生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的應屆生,你如何準備求職面試?

若是你是計算機專業的本科生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的本科生,你能夠選擇學習什麼?

若是你是計算機專業的研究生,歡迎瀏覽個人另一篇博客:若是你是一個計算機領域的研究生,你能夠選擇學習什麼?

若是你對金融科技感興趣,歡迎瀏覽個人另外一篇博客:若是你想了解金融科技,不妨先了解金融科技有哪些可能?

以後博主將持續分享各大算法的學習思路和學習筆記:hello world: 個人博客寫做思路

相關文章
相關標籤/搜索