當(dāng)我們仔細(xì)觀察神經(jīng)網(wǎng)絡(luò)生成的圖像時,會經(jīng)??吹狡灞P樣式的瑕疵。在一些特殊場景下這種現(xiàn)象更明顯,尤其最近的模型。
更重要的是,這種棋盤偽影在顏色越鮮艷的區(qū)域越明顯,這是為什么呢?難道神經(jīng)網(wǎng)絡(luò)不喜歡明亮的顏色嗎?其實,造成這些偽影的原因很簡單,不過想解決也很簡單。
反卷積與重疊
當(dāng)我們用神經(jīng)網(wǎng)絡(luò)生成圖像時,通常會從低分辨率、高水平的描述中對其進(jìn)行創(chuàng)造。網(wǎng)絡(luò)可以表現(xiàn)粗略的圖像并填充其中的細(xì)節(jié)。
為了做到這一點,我們需要將低分辨率的圖像轉(zhuǎn)換成高分辨率圖像,這一過程通過反卷積操作進(jìn)行。簡單地說,反卷積圖層可以讓模型使用小圖中的每個點來“繪制”一個更大的正方形。
但是,反卷積會很容易生成“不均勻的重疊”,使得某些區(qū)域比其他地方有更多抽象的結(jié)果。尤其是當(dāng)核的尺寸(輸出窗口的大?。┎荒鼙徊介L(頂部各點之間的距離)整除時,反卷積就會有不均勻的重疊。雖然理論上,網(wǎng)絡(luò)可以通過權(quán)重避免這一現(xiàn)象,但實際上,神經(jīng)網(wǎng)絡(luò)想要完全消除這種現(xiàn)象是非常困難的。
重疊圖案同樣是二維的。兩個軸上不均勻的重疊相乘,就能創(chuàng)造出不同程度的棋盤狀偽影。
事實上,這種不均勻的重疊在兩個維度上更明顯,因為兩個圖案相乘,不均勻性是原來的平方。例如,在一維中,一個步長為2,尺寸為3的反卷積的輸出是輸入的兩倍,但是在二維中就變成了四倍。
現(xiàn)在,神經(jīng)網(wǎng)絡(luò)在創(chuàng)造圖像時通常使用多層的反卷積,經(jīng)過迭代從低分辨率中創(chuàng)建更大尺寸的圖像。雖然這些堆棧的反卷積可以消除偽影,但它們通常是混合的,會在多個尺度上產(chǎn)生棋盤偽影。
這些偽影在輸出特殊顏色時會更加顯眼,由于神經(jīng)網(wǎng)絡(luò)圖層通常存在偏差(一種添加到輸出中經(jīng)過學(xué)習(xí)的值),很容易就輸出平均色。如果一種顏色越偏離平均色,反卷積的作用就越大。
重疊和學(xué)習(xí)
理論上來說,我們的模型可以學(xué)習(xí)仔細(xì)寫入不均勻重疊位置,從而讓輸出達(dá)到平衡。
但是要達(dá)到平衡有些難度,尤其是有多個通道的時候。想要避免偽影,就要嚴(yán)格限制可能用到的過濾器,犧牲模型部分性能。在實際中,神經(jīng)網(wǎng)絡(luò)要經(jīng)過很長的學(xué)習(xí)才能完全避免這些偽影。
事實上,不僅僅是有著不均勻重疊的模型不會學(xué)習(xí)避免這種情況,那些有著均勻重疊的模型會經(jīng)常學(xué)習(xí)核,也會造成相似的偽影。雖然對于不平均重疊來說這不是默認(rèn)的情況,但對平均重疊卷積來說是很容易造成偽影的。
對過濾器來說,完全避免偽影仍然是非常重要的限制,實際上,偽影仍然會出現(xiàn)在這些模型中,雖然并不明顯。
造成這一情況的可能有多種因素。例如,在生成對抗網(wǎng)絡(luò)的情況下,一個關(guān)鍵要素可能是判別器和他的梯度,但是問題的主要還是反卷積。在最好的情況下,反卷積非常脆弱,因為它們很容易就表現(xiàn)出人工偽影,即使尺寸很小。最壞情況下,偽影的生成是反卷積的默認(rèn)行為。
所以,還有其他上采樣方法能避免偽影的出現(xiàn)嗎?
更好的采樣方法
為了避免這些瑕疵,我們想用另一種方法對反卷積進(jìn)行規(guī)范。和反卷積不同,這種上采樣方法不會將偽影的生成變?yōu)槟J(rèn)行為,理想情況下,它會進(jìn)一步對抗這些偽影。
有一種方法可以確保你使用的核尺寸可以被步長整除,避免重疊。和“次像素卷積”相同,這種技術(shù)是最近提出的,在超分辨率圖像上產(chǎn)生了巨大成功。但是,雖然這一方法有用,反卷積仍然會很容易地生成偽影。
另一種方法是將上采樣分離后在更高分辨率的卷積上計算特征。例如,你可能會對圖像尺寸進(jìn)行改變,然后建立一個卷積層。這似乎是自然的做法,類似的方法在超分辨率圖像上效果也很好。
反卷積和各種對卷積調(diào)整尺寸的方法都是線性操作,可以用矩陣解釋,這也有助于我們了解它們之間的不同。
調(diào)整卷積層的尺寸可以用TensorFlow上的tf.image,resize_images( )實現(xiàn),想得到最佳結(jié)果,在用tf.nn.conv2d( )進(jìn)行卷積之前先使用tf.pad( )來避免邊界上出現(xiàn)偽影。
圖像生成結(jié)果
經(jīng)過研究我們發(fā)現(xiàn),用最近鄰尺寸調(diào)整和一個卷積能在大部分語境下得出較好的結(jié)果。其中表現(xiàn)較好的是GAN,簡單的對反卷積層進(jìn)行調(diào)整,就能生成不同程度的偽影:
實際上,偽影的不同可以在訓(xùn)練之前就看到。如果我們看一張生成器輸出的圖像,初始權(quán)重是隨機(jī)的,就能看到偽影。這說明偽影與生成圖片的方法有關(guān),與對抗訓(xùn)練無關(guān)。
另一種能夠解釋偽影并不是GAN獨(dú)有的現(xiàn)象的原因是,我們將其放在另一種模型中時,調(diào)整卷積尺寸的上采樣,仍然能發(fā)現(xiàn)這一現(xiàn)象。
結(jié)語
雖然用反卷積可以生成圖像,但它也會導(dǎo)致偽影的出現(xiàn)。使用其他自然的替代方法可以消除這些棋盤偽影。同時,我們還提出了可以提高圖像生成質(zhì)量的神經(jīng)網(wǎng)絡(luò)方法,我們希望能幫助到多領(lǐng)域的研究者們。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100718 -
圖像
+關(guān)注
關(guān)注
2文章
1083瀏覽量
40449
原文標(biāo)題:用縮放CNN消除反卷積帶來的棋盤偽影
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論