2
本文作者: 人工智能學家 | 2015-10-17 16:24 |
【編者按】這是一篇對谷歌研發(fā)團隊最新研究成果的博客(Inceptionism: Going Deeper into Neural Networks)的翻譯。這項研究的主要目的是觀察深度學習神經(jīng)網(wǎng)絡的某一個隱層都提取了哪些特征以及這些特征提取的是否準確。但出人意料的是他們發(fā)現(xiàn)了這里面的創(chuàng)造性過程有可能揭示出人類大腦本身是如何進行創(chuàng)新的。
人工神經(jīng)網(wǎng)絡技術引發(fā)了近期圖像分類和語音識別領域的顯著發(fā)展。但是即便這些都是基于大家普遍了解的數(shù)學方法之上的非常有用的工具,我們?nèi)匀粚?strong>為什么某些神經(jīng)網(wǎng)絡模型有用但另外一些沒有用知之甚少。下面讓我們來看看用一些簡單的技術來窺視一下這些神經(jīng)網(wǎng)絡的內(nèi)部機制。
為了訓練一個神經(jīng)網(wǎng)絡,我們通常展示給其以百萬計的訓練樣本,并逐步調(diào)整其權重參數(shù),直到它給了我們想要的分類結果。一個神經(jīng)網(wǎng)絡通常包含10-30個堆疊在一起的人工神經(jīng)元層。每個圖像首先由輸入層導入,然后傳遞到下一層,直到到達最后的“輸出”層。神經(jīng)網(wǎng)絡根據(jù)圖像給出的“答案”就來源于最終輸出層。
了解神經(jīng)網(wǎng)絡的挑戰(zhàn)之一是在圖像處理的每一層中都發(fā)生了些什么。我們知道經(jīng)過訓練的神經(jīng)網(wǎng)絡的每一層都逐步提取更抽象的圖像特征,直到最后一層對圖像顯示的是什么做個決定。例如,第一層可能只查找圖像中的物體邊緣或角。中間層通過對前面收集的基本特征的理解來尋找更加整體的輪廓和構件,比如一扇門或者一片樹葉。最后幾層將這些整體輪廓和構件組合在一起形成對圖像的完整解釋 —— 這些神經(jīng)元只對非常復雜的對象呈現(xiàn)出激活反應,比如整棟建筑物或者樹木。
將神經(jīng)網(wǎng)絡中每一層對圖像的特征抽取進行可視化的方法之一是把該網(wǎng)絡前后倒置,要求某一層將輸入圖像,以引發(fā)特定的解釋。假設你想知道哪種圖像會讓該網(wǎng)絡形成“香蕉”的結果,你可以一開始輸入一個充滿隨機噪聲數(shù)據(jù)的圖像,然后逐漸調(diào)整該圖像直到該神經(jīng)網(wǎng)絡認為它是香蕉。這種方法本身效果不太顯著,但是當我們加上一個限制,使整個過程中的像素分布與自然生成的圖像具有相似的統(tǒng)計規(guī)律,比如相鄰像素需要高度相關,那么效果就出來了。
所以這里有一個驚喜:經(jīng)過訓練后可以識別不同圖像的神經(jīng)網(wǎng)絡也同時積累了可以產(chǎn)生圖像的大量信息。看下面再不同類別的更多的例子:
為什么這很重要?我們通過簡單地展示給一個神經(jīng)網(wǎng)絡大量的我們希望它們學習的例子來訓練它們,希望他們能夠從中提取這些例子共性(例如,一把叉子由一個把柄和2-4叉齒組成),同時學會忽略不重要的東西(一個叉可以是任何形狀,大小,顏色或放置方向)。但你如何檢查一個神經(jīng)網(wǎng)絡是否正確學習到對象的共性特征?通過觀察該神經(jīng)網(wǎng)絡對它形成的叉子的概念的展示可以有所幫助。
事實上,這種方法揭示出在某些情況下,我們認為神經(jīng)網(wǎng)絡已經(jīng)找到的并不完全是我們想讓它找到的東西。例如,這是我們設計的一個神經(jīng)網(wǎng)絡經(jīng)過訓練后認為的啞鈴的樣子:
沒錯這些圖片里都有啞鈴,但似乎沒有一張圖片里的啞鈴是不帶有一段充滿肌肉的臂膀的。在這種情況下,該神經(jīng)網(wǎng)絡并沒有完全參透啞鈴的共性。也許它從來沒有看到過沒有一只胳膊抱著的啞鈴。可視化可以幫助我們糾正類似的訓練失誤。
有時我們可以不去精確描述我們希望神經(jīng)網(wǎng)絡突出的特征,而是讓神經(jīng)網(wǎng)絡自己做出決定。這時我們可以首先簡單地給它任意圖片或照片,并讓它進行分析。然后,我們選擇網(wǎng)絡中的一個層,讓它強調(diào)顯示它抽取的特征。神經(jīng)網(wǎng)絡中的每一層抽取的特征的抽象度都不同,所以特征的抽象度取決于我們選取的層面。例如,較低層往往會產(chǎn)生特定筆畫或簡單裝飾狀圖案,因為這些層面對邊和邊的方向等特征最為敏感。
如果我們選擇更高層,由于它們識別圖像更復雜特征,這種方式可以使復雜特征甚至某個物體出現(xiàn)在畫面中。這次我們?nèi)匀唤o我們的神經(jīng)網(wǎng)絡一張圖像。我們要求它:“你如果看到了什么,就多給我一點你看到的!”這就創(chuàng)建了一個反饋循環(huán):如果一朵云看起來有一點點像一只鳥,我們的網(wǎng)絡就讓使它看起來更像一只鳥。這樣一來,重新讀入的數(shù)據(jù)會讓它更像一只鳥,直到一只看上去非常逼真的鳥好像憑空出現(xiàn)。
這一結果耐人尋味:即使是一個相對簡單的神經(jīng)網(wǎng)絡都可用于對圖像進行過渡解釋,就像我們小時候喜歡看云并且喜歡將那些隨機形狀的云解釋為我們熟悉的對象。該網(wǎng)絡的主要訓練對象是動物,所以它自然也容易將遇到的各種形狀解釋為動物。但是因為特征數(shù)據(jù)來自高抽象層,所以結果是這些特征的有趣混合。
當然,用這種技術我們可以做比看云更多的事情。我們可以把它適用于任何種類的圖像,結果差別很大,因為強調(diào)的特征不同。例如,地平線線往往會被塔充滿,巖石和樹木變成建筑,鳥和昆蟲出現(xiàn)在葉子里面……
這一技術可以讓我們了解神經(jīng)網(wǎng)絡中的某一層對圖像特征的了解程度。根據(jù)我們使用的神經(jīng)網(wǎng)絡的架構,我們將其稱為“開始主義 (Inceptionism)”。請參閱我們的開始主義畫廊,里面有更多的圖像和對它們的處理結果,還有一些很酷的視頻動畫。
我們必須更進一步:迭代
如果我們將該算法反復在每次輸出的結果上進行迭代,并且每次在迭代前做一些放大,我們就可以得到層出不窮的新印象,探索該神經(jīng)網(wǎng)絡所了解的更多的特征。我們甚至可以從隨機噪聲圖像開始該過程,使得最后結果成為某一個神經(jīng)網(wǎng)絡自己的作品,比如下面的圖像:
這里介紹的技術可以幫助我們理解并視覺化神經(jīng)網(wǎng)絡如何進行復雜的圖像分類任務,提高網(wǎng)絡架構,并檢查一下神經(jīng)網(wǎng)絡在訓練期間學會了些什么東西。這也使我們聯(lián)想到神經(jīng)網(wǎng)絡是否能成為一個藝術家的新工具 —— 一種新的混合視覺體驗的方式 – 亦或向我們揭示出一點一般性創(chuàng)新過程的根源所在。
【關于譯者】本文由University of Illinois Chicago,博士萬赟翻譯。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。