神經(jīng)網(wǎng)絡(luò)到底是如何運(yùn)作的?
雖然機(jī)器視覺(jué)系統(tǒng)在越來(lái)越多的領(lǐng)域得到應(yīng)用,從醫(yī)療保健到自動(dòng)駕駛汽車(chē),但是要真的理解機(jī)器的眼睛到底是如何“看到”事物,為什么它將甲歸類(lèi)為行人,但將乙歸類(lèi)為路標(biāo),仍然是一個(gè)迷。
今日,谷歌與OpenAI發(fā)布新研究,希望通過(guò)繪制這些系統(tǒng)用于理解世界的視覺(jué)數(shù)據(jù),來(lái)進(jìn)一步打開(kāi)人工智能視覺(jué)領(lǐng)域的黑匣子。
此項(xiàng)研究被稱(chēng)為“激活地圖集”(Activation Atlases),是一種神經(jīng)元交互方式的最新可視化技術(shù)。
論文:https://distill.pub/2019/activation-atlas/
代碼:https://github.com/tensorflow/lucid/#activation-atlas-notebooks
Demo:https://distill.pub/2019/activation-atlas/app.html
該研究一經(jīng)發(fā)布,就在全網(wǎng)引發(fā)熱議。它能夠像“顯微鏡”一樣,幫助研究人員分析各種算法的工作原理。
不僅能夠揭示它們識(shí)別的抽象形狀、顏色與圖案,還能夠揭示它們?nèi)绾螌⑦@些元素結(jié)合起來(lái)以識(shí)別特定的物體、動(dòng)物與場(chǎng)景。
如果將之前的研究比作在算法的視覺(jué)字母表中顯示單個(gè)字母,那么激活地圖集則提供了整個(gè)字典,它能夠顯示字母是如何組合在一起制作實(shí)際詞匯的。
覺(jué)分類(lèi)網(wǎng)絡(luò)的激活圖集,揭示了許多完全被識(shí)別出的特征,如電子設(shè)備、建筑、食物、動(dòng)物耳朵、植物和水樣背景等等
激活地圖集建立在特征可視化的基礎(chǔ)上,是一種研究神經(jīng)網(wǎng)絡(luò)隱藏層究竟可以表示什么的技術(shù)。特征可視化的早期工作主要集中在單個(gè)神經(jīng)元上。通過(guò)收集數(shù)以萬(wàn)計(jì)的神經(jīng)元相互作用和可視化的樣例,激活地圖集將關(guān)注點(diǎn)從單個(gè)神經(jīng)元轉(zhuǎn)移到可視化這些神經(jīng)元所共同代表的空間。
OpenAI的博客介紹稱(chēng):激活地圖集比預(yù)期的效果更好,似乎有力地表明神經(jīng)網(wǎng)絡(luò)的激活層對(duì)人類(lèi)而言是有意義的。這能讓我們更加樂(lè)觀地認(rèn)為,視覺(jué)模型能取得非常好的可解釋性。
從不同的訓(xùn)練樣例中收集一百萬(wàn)個(gè)激活向量,將它們安排在二維空間中,使相似的激活向量緊密地結(jié)合在一起。然后,在每個(gè)單元的平均值上施加一個(gè)網(wǎng)格并使用特征可視化。
谷歌的Shan Carter是這項(xiàng)工作的首席研究員。Carter說(shuō):“拿'鯊魚(yú)'這一圖像類(lèi)別為例,其中會(huì)有很多激活因素,比如'牙齒'和'水'。
這項(xiàng)工作并不一定是一項(xiàng)巨大科學(xué)突破,但它確實(shí)是更廣泛的特征可視化這一研究領(lǐng)域中向前邁出的重要一步。佐治亞理工學(xué)院的博士生Ramprasaath Selvaraju(未參與這項(xiàng)工作)認(rèn)為這項(xiàng)研究“非常令人著迷”,它結(jié)合了許多現(xiàn)有的想法來(lái)創(chuàng)造一項(xiàng)”非常有用“的新工具。
因?yàn)橥ǔG闆r下,如果要部署一個(gè)關(guān)鍵的軟件,程序員可以通過(guò)檢查代碼的所有執(zhí)行路徑,甚至進(jìn)行形式化驗(yàn)證來(lái)確保安全。但是目前而言如果用到了神經(jīng)網(wǎng)絡(luò),我們進(jìn)行這種檢查的能力將會(huì)受到很大的限制。
有了激活地圖集,人類(lèi)就可以發(fā)現(xiàn)那些存在于神經(jīng)網(wǎng)絡(luò)中而未曾被預(yù)料到的問(wèn)題。例如,神經(jīng)網(wǎng)絡(luò)可能會(huì)依賴(lài)虛假相關(guān)性對(duì)圖像進(jìn)行分類(lèi),或者因?yàn)橹貜?fù)利用了不同類(lèi)別間共有的某個(gè)特征而導(dǎo)致奇怪的錯(cuò)誤。人類(lèi)甚至可以利用這種理解來(lái)“攻擊”模型,修改圖像來(lái)欺騙它。
部分依賴(lài)面條的存在來(lái)區(qū)分炒鍋和煎鍋。加入面條會(huì)有45%的可能欺騙模型。
在未來(lái),這樣的研究將有很多用途,比如幫助我們建立更高效和先進(jìn)的算法,還能夠通過(guò)讓研究人員進(jìn)入模型的內(nèi)部來(lái)提高其安全性并消除偏誤。“由于神經(jīng)網(wǎng)絡(luò)固有的復(fù)雜性,它們?nèi)狈山忉屝裕?rdquo;Selvaraju在采訪中說(shuō)。但是在未來(lái),當(dāng)這種網(wǎng)絡(luò)經(jīng)常被用于駕駛汽車(chē)以及引導(dǎo)機(jī)器人時(shí),可解釋性將非常重要。
OpenAI的Chris Olah也參與了這個(gè)項(xiàng)目,他說(shuō),“感覺(jué)有點(diǎn)像創(chuàng)造一個(gè)顯微鏡。至少,這就是我們所追求的目標(biāo)。“
激活地圖集允許研究人員將視覺(jué)數(shù)據(jù)算法用于理解世界
激活地圖集的工作原理
要了解激活地圖集和其他功能可視化工具的工作原理,首先需要了解一下AI系統(tǒng)如何識(shí)別對(duì)象。
實(shí)現(xiàn)這一目標(biāo)的基本方法是使用神經(jīng)網(wǎng)絡(luò):一種與人類(lèi)大腦大致相似的計(jì)算結(jié)構(gòu)(雖然它在復(fù)雜性方面落后了無(wú)數(shù)倍)。在每個(gè)神經(jīng)網(wǎng)絡(luò)內(nèi)部有像網(wǎng)狀物一樣連接的人造神經(jīng)元層。像大腦中的細(xì)胞一樣,這些細(xì)胞會(huì)響應(yīng)刺激——這一過(guò)程被稱(chēng)為激活。重要的是,它們不僅僅能夠被開(kāi)啟或關(guān)閉; 它們有一定的取值范圍,能夠?yàn)槊看渭せ钯x予特定值或“權(quán)重”。
要將一個(gè)神經(jīng)網(wǎng)絡(luò)變?yōu)檎嬲杏玫臇|西,你必須提供大量的訓(xùn)練數(shù)據(jù)。在視覺(jué)算法的情況下,這將意味著數(shù)十萬(wàn)甚至數(shù)百萬(wàn)被標(biāo)記為特定類(lèi)別的圖像。在谷歌和OpenAI的研究人員為這項(xiàng)工作測(cè)試的神經(jīng)網(wǎng)絡(luò)的情況下,這些類(lèi)別非常廣泛:從羊毛到溫莎領(lǐng)帶,從安全帶到加熱器。
神經(jīng)網(wǎng)絡(luò)使用互相連接的人工神經(jīng)元層來(lái)處理數(shù)據(jù)。不同的神經(jīng)元反映圖像的不同部分。
當(dāng)我們使用這些數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò)時(shí),神經(jīng)網(wǎng)絡(luò)中的不同神經(jīng)元會(huì)響應(yīng)對(duì)應(yīng)的圖像。此規(guī)律會(huì)連接到圖像的標(biāo)簽,這種聯(lián)系允許網(wǎng)絡(luò)“學(xué)習(xí)”事物的樣子。一旦經(jīng)過(guò)訓(xùn)練,你就可以向網(wǎng)絡(luò)顯示它以前從未見(jiàn)過(guò)的圖片。神經(jīng)元將會(huì)被新圖片激活,將該圖片與特定類(lèi)別相匹配。恭喜!您剛剛訓(xùn)練了機(jī)器學(xué)習(xí)視覺(jué)算法。
如果這些解釋聽(tīng)起來(lái)都簡(jiǎn)單到令人不安,那是因?yàn)?,從很多方面而言,它就是這么簡(jiǎn)單。像許多機(jī)器學(xué)習(xí)程序一樣,視覺(jué)算法本質(zhì)上只是模式匹配。這給予了它們一定的優(yōu)勢(shì)(例如,只要你擁有必要的數(shù)據(jù)和計(jì)算能力,就可以直接進(jìn)行訓(xùn)練算法)。但這也給了它們某些弱點(diǎn),比如說(shuō)它們很容易被之前從未見(jiàn)過(guò)的圖像輸入弄糊涂這一事實(shí)。
自研究人員在2010年初發(fā)現(xiàn)了神經(jīng)網(wǎng)絡(luò)在視覺(jué)任務(wù)方面潛力以來(lái),他們一直在鉆研機(jī)制,試圖弄清楚這些算法到底是如何完成任務(wù)的。
有一項(xiàng)名為DeepDream的早期實(shí)驗(yàn),這是2015年發(fā)布的計(jì)算機(jī)視覺(jué)計(jì)劃,意圖將任何圖片變成了自身的幻覺(jué)版本。DeepDream的視覺(jué)效果肯定是有趣的(在某些方面,它們定義了所謂人工智能美學(xué)),但該程序也是一個(gè)像算法一樣的早期嘗試。Olah說(shuō):“在某些方面,這一切都始于DeepDream。”
像這樣的DeepDream圖像都被機(jī)器學(xué)習(xí)算法設(shè)計(jì)得盡可能有趣
DeepDream也即將圖像調(diào)整為盡可能有趣的算法??雌饋?lái)它似乎是在圖像中發(fā)現(xiàn)“隱藏”的圖案,但它更像是有人在著色書(shū)中涂鴉:用眼睛、莖桿、螺紋和鼻子填充每一寸空白——盡可能地激發(fā)算法。
后來(lái)的研究采用了同一基本方法并對(duì)其進(jìn)行了微調(diào):首先看是什么激發(fā)了網(wǎng)絡(luò)中的單個(gè)神經(jīng)元、神經(jīng)元群以及網(wǎng)絡(luò)中不同層的神經(jīng)元組合。如果說(shuō)早期的實(shí)驗(yàn)就像Isaac Newton用鈍針扎自己的眼睛來(lái)理解視覺(jué)一樣太專(zhuān)注,其結(jié)果很偶然,那么最近的研究工作就像Newton用棱鏡分解光線一樣更有目的性。通過(guò)反復(fù)繪制神經(jīng)網(wǎng)絡(luò)每個(gè)部分被激活的視覺(jué)元素,最終得到神經(jīng)網(wǎng)絡(luò)核心的視覺(jué)索引圖集。
縮小或放大激活地圖集
激活地圖集展示算法的內(nèi)部運(yùn)作
激活地圖集實(shí)際上向我們展示了關(guān)于算法的內(nèi)部運(yùn)作的什么內(nèi)容呢?我們可以先看看谷歌和OpenAI的例子,這是為了了解名為GoogLeNet或InceptionV1的著名神經(jīng)網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu)是如何創(chuàng)建的。
例子:https://distill.pub/2019/activation-atlas/
你可以看到網(wǎng)絡(luò)的不同部分怎么對(duì)不同的概念做出反應(yīng),以及這些概念被怎樣地聚集在一起(例如,狗和鳥(niǎo)被完全分開(kāi))。你還可以看到網(wǎng)絡(luò)的不同層如何代表不同類(lèi)型的信息。較低層更為抽象,響應(yīng)基本的幾何形狀,而較高層將這些解析為可識(shí)別的概念。
當(dāng)你深入研究分類(lèi)時(shí),你會(huì)發(fā)現(xiàn)這才是相當(dāng)有趣的地方。谷歌和OpenAI給出的一個(gè)例子是通氣管和戴水肺的潛水員這兩類(lèi)之間的區(qū)別。
在下圖中,你可以看到神經(jīng)網(wǎng)絡(luò)用于識(shí)別標(biāo)簽的各種激活。左邊是與通氣管高度相關(guān)的激活,右邊是與戴水肺的潛水員密切相關(guān)的激活。中間是兩類(lèi)共享的激活,而邊緣部分的激活則差異更加明顯。
與通氣管(左)和戴水肺的潛水員(右)緊密相關(guān)的激活
你一眼就能看出一些明顯的顏色和圖案。頂部看起來(lái)像顏色鮮艷的魚(yú)身上的斑點(diǎn)和條紋,底部則像面具。右邊突出顯示的是一個(gè)奇怪的識(shí)別,很像火車(chē)頭。當(dāng)研究人員發(fā)現(xiàn)這一點(diǎn)時(shí),他們很困惑。是不是關(guān)于火車(chē)頭的視覺(jué)信息對(duì)戴水肺潛水員的識(shí)別很重要?
Carter說(shuō):所以我們測(cè)試了下,我們想如果我們加入一張蒸汽火車(chē)的車(chē)頭的圖片,它會(huì)有助于識(shí)別嗎?意想不到的是,它真的有用。”
三張圖片展示了如何再分類(lèi)同一張圖片。左邊被識(shí)別為通氣管;中間加入火車(chē)頭之后識(shí)別為潛水員;當(dāng)火車(chē)頭的照片足夠大時(shí)被識(shí)別為火車(chē)頭。
該團(tuán)隊(duì)最終找到了原因:這是由于火車(chē)頭的光滑金屬曲線在視覺(jué)上接近于潛水員的空氣罐。所以對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),這是潛水員和通氣管之間的一個(gè)明顯區(qū)別。為了節(jié)省區(qū)分這兩類(lèi)的時(shí)間,它就從其他地方借用了所需的視覺(jué)識(shí)別數(shù)據(jù)。
這個(gè)例子神奇地揭示了神經(jīng)網(wǎng)絡(luò)的工作方式。對(duì)于懷疑論者而言,它展示了神經(jīng)網(wǎng)絡(luò)的局限性。他們會(huì)說(shuō),視覺(jué)算法可能是有效的,但他們學(xué)到的信息實(shí)際上和人類(lèi)理解世界的方式天差地別。這會(huì)讓他們懷疑一些做法。例如,你只是在圖片中故意加入幾個(gè)像素,神經(jīng)網(wǎng)絡(luò)就可能認(rèn)不出這張圖片。
但對(duì)于Carter和Olah這類(lèi)人來(lái)說(shuō),激活地圖集和類(lèi)似的工具所揭示的信息展示了這些算法所達(dá)到的驚人的深度和靈活性。例如,Carter指出,算法為了區(qū)分潛水員和通氣管,它還將不同類(lèi)型的動(dòng)物與這兩類(lèi)做分析。
關(guān)注算法內(nèi)部結(jié)構(gòu)可以讓他們更為準(zhǔn)確有效
“深水中的動(dòng)物,比如海龜,會(huì)被識(shí)別為水肺,水面上的,比如鳥(niǎo),會(huì)被識(shí)別為通氣管,”他說(shuō)。他指出,這是從未讓系統(tǒng)學(xué)習(xí)的信息,但它自己學(xué)習(xí)了這些。 “這有點(diǎn)接近對(duì)世界更深層次的理解。這讓我很興奮。“
Olah同意,“我發(fā)現(xiàn)在高分辨率下看這些圖集令人震撼,我看到了這些網(wǎng)絡(luò)的巨大潛力。”
他們二人希望通過(guò)開(kāi)發(fā)這樣的工具,能有助于推動(dòng)人工智能整個(gè)領(lǐng)域的發(fā)展。通過(guò)了解機(jī)器視覺(jué)系統(tǒng)如何觀看這個(gè)世界,理論上我們可以更加有效地構(gòu)建它們并更細(xì)致地檢查它們的準(zhǔn)確性。
目前工具有限,Olah說(shuō)我們可以給系統(tǒng)拋出測(cè)試數(shù)據(jù)來(lái)試著欺騙他們,但這種方法總是受到已知錯(cuò)誤的限制。 他說(shuō):“但如果我們想投入精力的話,這給了我們一個(gè)揭露未知問(wèn)題的新工具,這感覺(jué)就像每一代工具都能讓我們更加理解這些網(wǎng)絡(luò)的內(nèi)部核心。”
本文來(lái)自微信公眾號(hào)大數(shù)據(jù)文摘 (ID:BigDataDigest),編譯:張秋玥、周家樂(lè)、陸震。