gated pixelCNN。


這篇論文中提出了一個基於pixelRNN/CNN上進行改進的一個模型——gated pixelCNN。 gated pixelCNN依舊還是一個圖片生成模型。它基於對像素點的概率分布進行建模只要給這個模型一組描述性的向量(這些向量可以是一組具有描述性的標簽gated pixelCNN就可以生成大量的有變化的圖片。 ———-

圖片生成模型

生成模型是一種訓練模型進行無監督學習的模型希望從數據中學習到信息后的模型能夠生成一組和訓練集盡可能相近的數據。 圖片生成模型就是更具體的指向說給模型一組圖片作為訓練集讓模型進行學習https://img-圖像生成模型又可以根據模型對像素點分布的預測情況進一步細分。 ![generative models的分類](blog.csdn.net/20180129103934889?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlrZV9yZWQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 其中當下最流行的三種圖片生成器模型當屬:pixelRNN/CNN、VAE、GAN。 -**自回歸模型**:auto regressive models一種概率圖形模型進行圖片再生成) -**生成對抗網絡**:GAN(generative adversarial network)分別是生成器網絡和判別式網絡來聯合進行建模 ———-

pixelRNN/CNN

怎么想

現在需要構建一個模型來實現生成一張圖片同時將前面生成的像素點作為參考。相當於將預測一張圖上所有像素點的聯合分布轉換為對條件分布的預測。

p(x)=i=1n2p(xi|x1...xi�6�11)p(x)=∏i=1n2p(xi|x1,xi�6�11)

這里的xixi就是指在ii處的像素點。

怎么做

既然是用已經預測得到的像素來預測當前點的像素那么就應該可以想到用RNN來建模。因此這個模型就叫pixelRNN。 在pixelRNN中用了12個兩維LSTM層。 在《pixel recurrent neural networks》這篇論文中由於本文是對gated pixelCNN進行梳理所以pixel RNN的訓練時間特別長那為什么不可以使用 CNN來進行建模呢?用CNN構建出來的模型叫pixelCNN。 但是標准的卷積層會把所有像素的信息一次性進行提取用到masked convolutions以及去掉池化層來進行建模。

masked convolutions

這是一個5*5的掩膜卷積核。它的作用就是只保留中心點處之前的像素信息。
可以看到當要提取中心點的像素信息的時候右邊和后面的像素信息被“遮蓋”住了maskA這種掩膜的傳遞方式是不傳遞給自己為什么三個通道之間的傳遞關系是這樣的所以像素的信息傳遞不僅僅是基於前后的context的像素點信息的傳遞R算是前面的信息B是后面的信息同樣的在pixelCNN中后面所有的層上都是使用的maskB這種掩膜。
可以看到兩種mask的區別就是在信息傳遞上RGB這三個通道中像素點信息是否傳遞給自己這一點上有不同。可以看到maskB這種方式是信息要傳遞給自己。
這里還需要進行說明因為每個點的像素信息是由RGB這三個通道的值構成的還有自己的三個通道上面的值的一個傳遞。而按照RGB的位置順序來說G屬於中間的信息所以在記錄當前像素點的R通道上面的信息時就不能把后面的GB信息當作已知條件在記錄當前像素點的B通道上的信息時可以將RG兩個通道上的信息當作已知條件。所以可以看到有這樣的傳遞關系。
論文中提到只有在第一個卷積層上使用了maskA所以不管是生成圖片的過程還是訓練的過程所以速度較慢所以訓練時間較pixelRNN有提高這里也不展開多說。 ———-

gated pixelCNN

為什么要從pixelCNN到gated pixelCNN

gated pixelCNN是在pixelCNN上進行了某些改進的到的從表現效果上面看但是模型的效果並沒有它好pixelCNN存在“盲點”問題。在生成圖像的時候因為使用了mask的原因可以推測是因為pixelRNN模型中每一個LSTM層都能夠獲取到之前像素的所有信息。
而在CNN中獲取到的信息也在不斷增多。
所以如果能夠合理增加pixelCNN中的卷積層pixelRNN表現效果不錯這些單元可以幫助模型的神經元之間有更加復雜的聯系。所以可以將masked convolutions之間的簡單線性鏈接單元換成和RNN中門與門之間的激活方式一樣的連接方式:

 

y=tanh(Wkf�6�5x)�8�6σ(Wkg�6�5x)y=tanh(Wk,g�6�5x)


其中σσ是sigmoid激活函數�8�6指元素之間的點乘運算這也是為什么改進之后的這個模型叫gated pixelRNN的原因。

 

“盲點”問題

要如何改進“blind spot”問題論文中分別叫這兩種卷積網絡horizonal stack和vertical stack。
Horizonal stack是將當前像素所在的行(當然也是指當前像素之前的像素值)作為條件進行卷積在horizonal stack中仍然要使用掩膜技術來實現只提取前面的信息。
Vertical stack是將當前像素所在的行的前面所有行當作條件來進行卷積所以vertical stack中不進行掩膜操作。

將每一層的兩種stacks的結果進行結合這樣就消除了“盲點”問題。

所以使用門的技術和更多的卷積層來提高pixelCNN的表現效果就得到了論文最終想要的模型gated pixelCNN。

A single layer in the gated pixelCNN architecture

改后的gated pixelCNN的作用

論文中提到

這仍然是一個基於像素的概率分布進行預測的圖像生成器(生成式模型)。

論文中還提到

只要給這個模型一組描述性的向量用ImageNet數據集中的分類標簽(一組描述性的標簽)進行生成圖像比如說動物、風景等等;如果是用由其它卷積網絡中間生成的沒見過的人臉照片(其他網絡生成的向量)輸入pixel CNN模型中論文中也提到

如果把門這種元件納入條件pixelCNN中可以使pixelCNN的性能達到和pixelRNN的性能一樣好所以gated pixelCNN仍然可以在訓練好模型之后直接進行圖片生成。在論文中作者在CIFAR-10這個數據集上訓練了gated pixelCNN模型, training performance in brackets.

這里的NLL值是指負對數似然的值這個值越小越好。
可以看到gated pixelCNN的效果已經在pixelCNN上得到了很大的提升, training performance in brackets.

可以看到可以看到gated pixel CNN的效果已經非常好了。

conditional gated pixelCNN

Gated pixel CNN作為一個條件圖片生成器就是指添加一些先驗信息來使生成的圖片往我們想要的方向生成。上面提到的給模型一組向量來生成圖片就是指作為conditional gated pixelCNN的作用。

p(X|h)=i=1n2p(xi|x1...xi�6�11h)p(X|h)=∏i=1n2p(xi|x1,xi�6�11
y=tanh(Wkf�6�5X+VTkfh)�8�6σ(Wkg�6�5x+VTkgh)y=tanh(Wk,fTh)�8�6σ(Wk,gTh)

這里的hh就是我們給的一個先驗信息hh可以以兩種方式提供給模型:一組描述性的標簽;基於其他網絡生成的向量。

 

hh是a one-hot encoding that specifies a class

hh是a one-hot encoding that specifies a classgated pixel CNN可以准確的生成這個種類hh只告訴模型要生成的東西是什么訓練好的模型會生成大量基於不同地點的圖片。
更NB的地方是hh甚至可以直接是imagenet 這個數據集中1000類別里面的類別id作者訓練pixelCNN生成了八種不同類型的動物圖片但是場景相似。

Figure 3: Class-Conditional samples from the Conditional PixelCNN.

hh是基於其他網絡生成的向量

hh是一個用由其它卷積網絡中間生成的沒見過的人臉信息然后給模型一張不在整個訓練集中的完全陌生的人臉信息給模型一個auto-encoder由兩部分組成encoder部分就是將輸入的圖片降維變成一個低緯度表示的特征hhhh送入decoder中hh進行重構它將encoder中生成的hh作為條件輸入作者在ImageNet上訓練了一個gated pixelCNN auto-encoder最后生成的圖片效果如下:

Figure 6: Left to right: original image,conditional samples from a PixelCNN auto-encoder. Both auto-encoders were trained end-to-end with a m = 10-dimensional bottleneck and a m = 100 dimensional bottleneck.

最左邊的這個張圖是原圖右邊的是gated pixel CNN生成的圖片。可以看到而gated pixelCNN在盡力去生成不同的但是相似的圖像。


總結

最后作者對整個模型進行了一個總結作者指出gated pixel CNN可以生成在不同光照條件下的圖片所以gated pixel CNN可以客服生成模型中訓練集光照條件不好的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM