《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 資源 | Distill詳述「可微圖像參數(shù)化」:神經(jīng)網(wǎng)絡(luò)可視化和風(fēng)格遷移利器!

資源 | Distill詳述「可微圖像參數(shù)化」:神經(jīng)網(wǎng)絡(luò)可視化和風(fēng)格遷移利器!

2018-08-22

近日,期刊平臺 Distill 發(fā)布了谷歌研究人員的一篇文章,介紹一個適用于神經(jīng)網(wǎng)絡(luò)可視化風(fēng)格遷移的強大工具:可微圖像參數(shù)化。這篇文章從多個方面介紹了該工具,機器之心選取部分內(nèi)容進行了編譯介紹。

微信圖片_20180822141406.jpg



圖像分類神經(jīng)網(wǎng)絡(luò)擁有卓越的圖像生成能力。DeepDream [1]、風(fēng)格遷移 [2] 和特征可視化 [3] 等技術(shù)利用這種能力作為探索神經(jīng)網(wǎng)絡(luò)內(nèi)部原理的強大工具,并基于神經(jīng)網(wǎng)絡(luò)把藝術(shù)創(chuàng)作推進了一小步。


所有這些技術(shù)基本上以相同的方式工作。計算機視覺領(lǐng)域使用的神經(jīng)網(wǎng)絡(luò)擁有圖像的豐富內(nèi)部表征。我們可以使用該表征描述我們希望圖像具備的特性(如風(fēng)格),然后優(yōu)化圖像使其具備這些特性。這種優(yōu)化是可能的,因為網(wǎng)絡(luò)對于輸入是可微的:我們可以輕微調(diào)整圖像以更好地擬合期望特性,然后迭代地在梯度下降中應(yīng)用這種微調(diào)。


通常,我們將輸入圖像參數(shù)化為每個像素的 RGB 值,但這不是唯一的方式。由于從參數(shù)到圖像的映射是可微的,我們?nèi)匀豢梢杂锰荻认陆祦韮?yōu)化可替代的參數(shù)設(shè)定。

微信圖片_20180822141424.jpg


圖 1:當(dāng)圖像參數(shù)化可微的時候,我們就可以對其使用反向傳播(橙色箭頭)來優(yōu)化。


為什么參數(shù)化很重要?


這可能令人驚訝,即改變優(yōu)化問題的參數(shù)設(shè)定可以如此顯著地改變結(jié)果,盡管實際被優(yōu)化的目標(biāo)函數(shù)仍然是相同的形式。為什么參數(shù)設(shè)定的選擇有如此顯著的效果?原因如下:


(1)改善優(yōu)化:轉(zhuǎn)換輸入使優(yōu)化問題更簡單,這是一種被稱為「預(yù)處理」的技術(shù),是優(yōu)化過程的重要部分。我們發(fā)現(xiàn)參數(shù)設(shè)定的簡單變化就可以使圖像優(yōu)化變得更加簡單。


(2)引力盆地:當(dāng)我們優(yōu)化神經(jīng)網(wǎng)絡(luò)的輸入時,通常有很多不同的解,對應(yīng)不同的局部極小值。優(yōu)化過程落入某個局部極小值是由其引力盆地(即在極小值影響下的優(yōu)化曲面區(qū)域)控制的。改變優(yōu)化問題的參數(shù)設(shè)定可以改變不同引力盆地的大小,影響可能的結(jié)果。


(3)附加約束:某些參數(shù)設(shè)定僅覆蓋可能輸入的子集,而不是整個空間。在這種參數(shù)設(shè)定下的優(yōu)化器仍然尋找最小化或最大化目標(biāo)函數(shù)的解,但它們需要服從參數(shù)設(shè)定的約束。通過選擇正確的約束集,我們可以施加多種約束,從簡單的約束(例如,圖像邊界必須是黑色的)到復(fù)雜而精細的約束。


(4)暗含地優(yōu)化其它目標(biāo)函數(shù):參數(shù)化可能內(nèi)在地使用一種和輸出不同的目標(biāo)函數(shù),并對其進行優(yōu)化。例如,當(dāng)視覺網(wǎng)絡(luò)的輸入是一張 RGB 圖像時,我們可以參數(shù)化那張圖像為一個 3D 物體渲染圖,并在渲染過程中使用反向傳播以進行優(yōu)化。由于 3D 物體比圖像具有更多的自由度,我們通常使用隨機參數(shù)化,它能生成從不同視角渲染的圖像。


在文章接下來的部分中,我們將給出幾個示例,證明使用上述方法的有效性,它們帶來了令人驚訝和有趣的視覺結(jié)果。


對齊特征可視化解釋


相關(guān) colab 頁面:https://colab.research.google.com/github/tensorflow/lucid/blob/master/notebooks/differentiable-parameterizations/aligned_interpolation.ipynb


特征可視化最常用于可視化單個神經(jīng)元,但它也可用來可視化神經(jīng)元組合,以研究它們?nèi)绾蜗嗷プ饔?[3]。這時不是優(yōu)化一張圖像來激活單個神經(jīng)元,而是優(yōu)化它來激活多個神經(jīng)元。


當(dāng)我們希望真正地理解兩個神經(jīng)元之間的相互作用時,我們可以更進一步并創(chuàng)建多個可視化,逐漸把目標(biāo)函數(shù)從優(yōu)化一個神經(jīng)元轉(zhuǎn)移到給另一個激活神經(jīng)元賦予更多的權(quán)重。這在某種程度上和生成模型(如 GAN)的潛在空間插值相似。


盡管如此,仍然存在一些小問題:特征可視化是隨機的。即使你優(yōu)化的是同一個物體,其每一次的可視化圖也是不同的。一般而言,這不是什么問題,但它確實阻礙了插值可視化。如果就這樣處理,得到的可視化將是非對齊的:視覺關(guān)鍵點(例如眼睛)將出現(xiàn)在每張圖像的不同位置。在稍微不同的物體中,缺乏對齊將更難識別差異,因為差異被更明顯的圖式差異掩蓋了。


如果我們觀察插值幀的動畫演示,就可以看到獨立優(yōu)化存在的問題:

微信圖片_20180822141447.jpg



微信圖片_20180822141516.jpg

圖 2:(1、3 行)非對齊插值:視覺關(guān)鍵點(例如眼睛)從一幀到下一幀的位置會改變。(2、4 行)不同的幀更容易比較,因為視覺關(guān)鍵點在相同位置。

微信圖片_20180822141541.jpg


圖 3:(頂行)從獨立參數(shù)化的幀開始;(中行)然后每個幀結(jié)合單個共享參數(shù)設(shè)定;(底行)創(chuàng)建一個視覺對齊的神經(jīng)元插值。


通過在幀之間部分共享一個參數(shù)設(shè)定,我們促進可視化結(jié)果自然地對齊。直覺上,共享參數(shù)設(shè)定提供了視覺關(guān)鍵點位移的一個共同參照,但是單獨的參數(shù)設(shè)定基于插值權(quán)重賦予每個幀自己的視覺效果。這種參數(shù)設(shè)定并沒有改變目標(biāo)函數(shù),但確實放大了引力盆地(其中可視化是對齊的)。


這是可微參數(shù)化在可視化神經(jīng)網(wǎng)絡(luò)中作為有用輔助工具的第一個示例。


通過 3D 渲染進行紋理風(fēng)格遷移


相關(guān) colab 頁面:https://colab.research.google.com/github/tensorflow/lucid/blob/master/notebooks/differentiable-parameterizations/style_transfer_3d.ipynb


現(xiàn)在我們已經(jīng)構(gòu)造了一個高效反向傳播到 UV 映射紋理的框架,該框架可用于調(diào)整現(xiàn)有風(fēng)格遷移技術(shù)來適應(yīng) 3D 物體。與 2D 情況類似,我們的目標(biāo)是用用戶提供圖像的風(fēng)格進行原始物體紋理的再繪制。下圖是該方法的概述:

微信圖片_20180822141604.jpg



該算法開始于隨機初始化紋理。在每次迭代中,我們采樣出一個指向物體邊界框中心的隨機視點,并渲染它的兩個圖像:一個是有原始紋理的內(nèi)容圖像(content image),另一個是有當(dāng)前優(yōu)化紋理的學(xué)習(xí)圖像(learned image)。


在對內(nèi)容圖像和學(xué)習(xí)圖像進行渲染后,我們對 Gatys 等人 [2] 的風(fēng)格遷移目標(biāo)函數(shù)進行了優(yōu)化,并將參數(shù)化映射回 UV 映射紋理中。重復(fù)該過程,直到在目標(biāo)紋理中實現(xiàn)期望的內(nèi)容與風(fēng)格融合。


微信圖片_20180822141637.jpg

微信圖片_20180822141700.jpg

圖 17:各類 3D 模型的風(fēng)格遷移。注意:內(nèi)容紋理中的視覺關(guān)鍵點(如眼睛)在生成紋理中正確地顯示出來。


因為每個視圖都是獨立優(yōu)化的,所以在每次迭代中優(yōu)化都要把該風(fēng)格的所有元素融合進去。例如,如果選擇梵高的《星夜》作為風(fēng)格圖像,那每個單視圖都會加上星星。我們發(fā)現(xiàn),引入先前視圖風(fēng)格的「記憶」會獲得更好的結(jié)果,如上圖所示。為此,我們在近期采樣視點上維持表征風(fēng)格的 Gram 矩陣的滑動平均不變。在每次優(yōu)化迭代時,我們根據(jù)平均矩陣來計算風(fēng)格損失,而不是基于特定視圖計算。


最終紋理結(jié)合了期望風(fēng)格的元素,同時保持了原始紋理的特征。譬如將梵高的《星夜》作為風(fēng)格圖像的模型,其最終紋理就包含了梵高作品中輕快有力的筆觸風(fēng)格。然而,盡管風(fēng)格圖像是冷色調(diào)的,最終照片里的皮毛還是保持了原始紋理的暖橙色調(diào)。更有趣的是風(fēng)格遷移時兔子眼睛的處理方式。例如,當(dāng)風(fēng)格來自梵高的畫作,那兔子的眼睛會像星星一樣旋轉(zhuǎn),而如果是康定斯基的作品,兔子眼睛就會變成抽象圖案,但仍然類似原始眼睛。

微信圖片_20180822141724.jpg


圖 18:將立體派畫家費爾南·萊熱的畫作 The large one parades on red bottom (Fernand Leger, 1953) 的風(fēng)格遷移到 Stanford Bunny(Greg Turk & Marc Levoy)上的 3D 打印結(jié)果。


結(jié)論


對于充滿創(chuàng)造力的藝術(shù)家或研究者來說,對參數(shù)化圖像進行優(yōu)化還有很大的空間。這不僅生成了截然不同的圖像結(jié)果,還可以生成動畫和 3D 圖像。我們認為本文探討的可能性只觸及了皮毛。例如,你可以將對 3D 物體紋理進行優(yōu)化擴展到對材料或反射率的優(yōu)化,甚至可以沿著 Kato 等人 [15] 的方向,繼續(xù)優(yōu)化 mesh 頂點位置。


本文主要討論了可微圖像參數(shù)化,因為它們易于優(yōu)化且涵蓋了大多應(yīng)用程序。當(dāng)然,通過強化學(xué)習(xí)或進化策略 [17, 18] 來優(yōu)化不可微或部分可微的圖像參數(shù)化也是能夠?qū)崿F(xiàn)的。使用不可微參數(shù)化實現(xiàn)圖像或場景生成也很令人期待。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。