如何比較PixelCNN與DCGAN兩種Image generation方法?

2021-03-02 極市平臺

本文轉自知乎問題@Xun Huang的答案,已經作者授權轉載答案。

原問題

今天組會讀了一下deepmind的PixelCNN(nips的那篇),不是很明白到底為什麼follow的work這麼多(而且pixel rnn還拿了best paper award。。),感覺pixel by pixel生成是一種非常反直覺的生成方式。而且是規定了從上往下從左往右的順序。這種生成方式的insight在哪裡?(個人理解是為了引出wavenet?因為對語言序列來說生成是有順序的,但是用來生成圖片就很奇怪了)


相比較,雖然GAN生成的更加隨意,但是laplacian GAN和stack GAN都是一種更符合直覺的方式。

另外,pixel CNN也有生成速度慢的問題,所以它和GAN相比到底有什麼不同的地方值得大家去思考呢?(有什麼可能比GAN更優的地方呢?)

相比GAN,PixelCNN/RNN有以下幾個優勢:


1. 可以通過chain rule提供exact的data likelihood,雖說likelihood不是一個完美的evaluation metric [12],但它對評價一個generative model還是能提供很多insight(尤其是detect missing mode)。GAN的方法不僅沒有辦法給出exact的likelihood,而且approximate出來的likelihood似乎結果很差 [9]。另外PixelCNN這套方法在likelihood這個metric上是state-of-the-art,甩其它方法一大截。我覺得拿ICML best paper主要就是因為這個。


2. 因為objective function直接就是likelihood,PixelCNN的training要穩定很多。

PixelCNN的典型training curve[11]



GAN的典型training curve... [10]




3. PixelCNN的data space可以是continuous也可以是discrete的(discrete的performance稍好一點點),但是GAN目前基本還只能在continuous data上work。在discrete data上如何實現GAN目前仍是一個non-trivial的open problem。

當然,除了題主提到的依賴於arbitrary的order而且sampling很慢以外,PixelCNN還有很多缺點:


1. PixelCNN的training其實也很慢,比如OpenAI的PixelCNN++ [8] 要在8塊Titan上train 5天才converge... 這還只是一個CIFAR dataset


2. sample quality明顯不如GAN。現在state-of-the-art的GAN在CIFAR上能生成相當reasonable的sample [5].



但是PixelCNN++[8]的sample基本還看不出什麼object...

3. 暫時還沒有paper用PixelCNN成功做出來unsupervised/semi-supervised feature learning,但是GAN在這方面碩果纍纍 [1,2,3,4]。

最後還想說的一點是,PixelCNN和GAN也許並不是非此即彼的關係,在將來有可能可以combine起來。如果有一個generative model能同時具備兩者的優勢,既能給出exact的likelihood又能有GAN這麼好的sample quality,那將會是一個非常有趣的工作。這幾個月的各種model組合(VAE+GAN [6], VAE+PixelCNN [7])也suggest這種combination或許是可行的。

[1] Salimans et al., Improved Techniques for Training GANs, 2016
[2] Dumoulin et al., Adversarially Learned Inference, 2016
[3] Donahue et al., Adversarial Feature Learning, 2016
[4] Denton et al., Semi-Supervised Learning with Context-Conditional Generative Adversarial Networks, 2016
[5] Huang et. al., Stacked Generative Adversarial Networks, 2016
[6] Larsen et al., Autoencoding beyond pixels using a learned similarity metric, 2016
[7] Gulrajani et al., PixelVAE: A Latent Variable Model for Natural Images, 2016
[8] Salimans et al., PixelCNN++: A PixelCNN Implementation with Discretized Logistic Mixture Likelihood and Other Modifications, 2016
[9] Wu et al., On the Quantitative Analysis of Decoder-Based Generative Models, 2016
[10] torch/torch.github.io
[11] carpedm20/pixel-rnn-tensorflow
[12] Thesis et al., A note on the evaluation of generative models, 2016

原文連結:https://www.zhihu.com/question/54414709/answer/139256237

 


PS.由北京大學團委指導,極視角主辦的高校計算機視覺算法邀請賽目前正在報名中,大獎等你來拿,歡迎參加~點擊閱讀原文查看詳情。

相關焦點

  • 資源| 在TensorFlow 1.0上實現快速圖像生成算法Fast PixelCNN++
    項目地址:https://github.com/PrajitR/fast-pixel-cnn論文地址:https://openreview.net/pdf?id=rkdF0ZNKl我們通過利用緩存避免冗餘計算而實現了對圖像生成算法 PixelCNN++ 的加速。原始的生成算法丟棄了可以重複利用的計算,並且還會佔用不用於生成特定像素的附加計算資源。
  • 資源 在TensorFlow 1.0上實現快速圖像生成算法Fast PixelCNN++
    項目地址:https://github.com/PrajitR/fast-pixel-cnn論文地址:https://openreview.net/pdf?id=rkdF0ZNKl我們通過利用緩存避免冗餘計算而實現了對圖像生成算法 PixelCNN++ 的加速。原始的生成算法丟棄了可以重複利用的計算,並且還會佔用不用於生成特定像素的附加計算資源。
  • Mask R-CNN
    是對faster r-cnn的擴展,與bbox識別並行的增加一個預測分割mask的分支。Mask R-CNN 可以應用到人體姿勢識別。並且在實例分割、目標檢測、人體關鍵點檢測三個任務都取得了現在最好的效果。效果圖
  • 愷明大神 Mask R-CNN 超實用教程
    在上周的博客文章中,你學習了如何使用Yolo物體探測器來檢測圖像中物體(https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/)。對象檢測器,如yolo、faster r-cnn和ssd,生成四組(x,y)坐標,表示圖像中對象的邊界框。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    目前,用於目標檢測的方法通常屬於基於機器學習的方法或基於深度學習的方法。對於機器學習方法,首先使用 SIFT、HOG 等方法定義特徵,然後使用支持向量機 (SVM)、Adaboost 等技術進行分類。對於深度學習方法,深度學習技術能夠在沒有專門定義特徵的情況下進行端到端目標檢測,並且通常基於卷積神經網絡 (CNN)。
  • 愷明大神 Mask R-CNN 超實用教程
    在上周的博客文章中,你學習了如何使用Yolo物體探測器來檢測圖像中物體(https://www.pyimagesearch.com/2018/11/12/yolo-object-detection-with-opencv/)。對象檢測器,如yolo、faster r-cnn和ssd,生成四組(x,y)坐標,表示圖像中對象的邊界框。
  • 獨家 | 如何從頭開始為MNIST手寫數字分類建立卷積神經網絡(附代碼)
    儘管數據集得到了有效的解決,但它可以作為學習和實踐如何開發、評估和使用卷積深度學習神經網絡從頭開始進行圖像分類的基礎。這包括如何開發一個用於評估模型性能的強大測試工具,如何探索模型的改進,以及如何保存模型,然後加載它以對新數據進行預測。在本教程中,您將了解如何從頭開始開發用於手寫數字分類的卷積神經網絡。
  • 跨境營銷指南 l 什麼是Pixel,如何創建Pixel?
    需要注意的是,平臺站像亞馬遜,速賣通等是無法添加pixel在店鋪後臺的。所以也會失去很多珍貴的廣告投放數據。這也是為什麼我們一直倡導獨立站與平臺站並行的原因之一。Facebook Pixel新建&授權今天的課程分為5部分~1. 創建Pixel2. 安裝Pixel3.
  • First global CO2 distribution image acquired by TanSat released
    Recently, China resealed the first global carbon dioxide distribution image acquired by China’s first Carbon Dioxide Observation Satellite (TanSat) to the public.
  • 一周論文 Image Caption任務綜述
    caption generation with visual attention受最近注意機制在機器翻譯中發展的啟發,作者提出了在圖像的卷積特徵中結合空間注意機制的方法,然後將上下文信息輸入到encoder-decoder框架中。
  • 【源頭活水】Sparse R-CNN:簡化版fast rcnn
    1.2 faster rcnnfastrcnn的做法不是一個完全端到端的做法,比較麻煩,性能也一般,故faster rcnn提出採用可學習的RPN網絡代替所以前面才會說object queries作用非常類似faster rcnn中的anchor,這個anchor是可學習的,由於維度比較高,故可以表徵的東西豐富,當然維度越高,訓練時長就會越長。其他的transformer改進主要是輸入輸出引入了更多的信息而已。
  • 如何看待Transformer在CV上的應用前景,未來有可能替代CNN嗎?
    所以聰明的人提出了share weights的思想,大大減少了參數量,後續工作也就變成了如何擴大感受野,從而有了加深網絡深度,金字塔,或者其他方法。如果cnn是參數量和性能的折衷,那麼某種意義上,我覺得transformer對於cv領域來說就是cnn和fc的折衷,沒什麼稀奇,只能說有錢了,有設備了,往全局性上去考量很正常。
  • 沈春華:如何窺一斑而知全豹--Dense Per Pixel Prediction | VALSE2017之九
    在本文中,來自澳大利亞阿德萊德大學的沈春華教授將會講述,如何使用深度結構化學習的方法來實現Dense Per Pixel Prediction,該方法在單目圖像深度估計、語義分割、以及low-level圖像處理領域均有很好的應用。大講堂在文末特別提供文中提到所有文章的下載連接及沈教授組內開原始碼的下載連結。
  • CVPR論文解讀:非常高效的物體檢測Mimic方法
    因此,該文中提出了一個新的卷積網絡mimic方法,即將學習整個feature map變為學習proposal採樣之後的feature來簡化任務。在由小網絡生成的proposal中,使用spatial pyramid pooling方法在大小網絡上進行局部特徵採樣(後經作者指正為直接使用pixel-wise的學習),然後通過L2 loss減小二者之間的差別,loss function定義如下: