conditional Image generation with PixelCNN Decoders
ICML的best paper
pixel cnn 屬于完全可見的信念網絡,需要對 概率密度 建模。給定圖像數據x,想要對概率分布p(x)建模。概率分布p(x)可以看做,每一像素分布同時作用結果的一個聯合分布。一個特征是這些像素之間存在緊密的關聯關系,常見的建模方法是使用此前的像素作為條件來建模當前的像素的條件分布。使用鏈式法則將聯合分布p(x)分解成一維度分布的乘積。
給定每個像素xix_ixi?的條件概率(其條件是此前所見到的所有像素(x1,x2,...,xi?1)(x_1,x_2,...,x_{i-1})(x1?,x2?,...,xi?1?)) 那么整張圖的聯合概率/條件似然 = 所有像素條件概率的乘積。
p(x)=∏i=1n2p(xi∣x1,...,xi?1)p(x)=\prod_{i=1}^{n^2}p(x_i|x_1,...,x_{i-1})p(x)=i=1∏n2?p(xi?∣x1?,...,xi?1?)
然后最大化似然來優化概率模型中的參數。眾多自回歸模型用的都是條件分布連成構造聯合分布的建模方式,不同點為條件分布建模方式不同。本文用的是masked卷積網絡對之前的像素進行卷積操作,來建模條件分布。
對于每個位置網絡都會生成一個256維度的像素值,通過true lable像素值,最小化交叉熵,來得到生成結果。(最小化交叉熵,最小化KL散度,最大似然這三種東西是等價的)就是有N×N×3個網絡
文章強調的卷積使得訓練時每個像素可以同時進行預測,但測試時只能順序進行生成。
gated convolutional layers
文章后面介紹了所用的門控的卷積層。之前的pixelRNN 的性能 優于 pixelCNN 的一個主要原因是:LSTM使得網絡的每一層可以獲取之前像素的整個鄰居區域。另一個優點,多種門控單元使得可以建模更加復雜的模型。
conditional PixelCNN
條件 PixelCNN : 給定高層次的圖像描述作為latent vector h 建模條件分布為p(x∣h)p(x|h)p(x∣h):
p(x∣h)=∏i=1n2p(xi∣x1,..,xi?1,h)p(x|h)=\prod_{i=1}^{n^2}p(x_i|x_1,..,x_{i-1},h)p(x∣h)=i=1∏n2?p(xi?∣x1?,..,xi?1?,h)
其實就是在每層的特征后接一個條件向量信息。
(圖像是二維時,作者使用了grid LSTM ,
盲點:預測下一個像素時,沒有用到之前所有的信息,
兩個方向上的卷積,垂直和水平
為了避免看到將來的像素,他們使用帶掩膜的卷積)
1.Pixel CNN, Wavenet, GCNN筆記:https://zhuanlan.zhihu.com/p/25299749
2.【2017CS231n】第十三講:生成模型(PixelRNN/PixelCNN,變分自編碼器,生成對抗網絡):https://blog.csdn.net/poulang5786/article/details/80766498
3.如何比較PixelCNN與DCGAN兩種Image generation方法?:https://www.zhihu.com/question/54414709
4.《Conditional Image Generation with PixelCNN Decoders》之Pixcel CNN—gated Pixcel CNN 閱讀筆記:https://blog.csdn.net/Jasminexjf/article/details/82499513?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
5.圖片生成模型——gated pixelCNN:https://blog.csdn.net/like_red/article/details/79192374#commentBox