揭開黑盒一角!谷歌聯合OpenAI釋出“神經元顯微鏡”,視覺化神經網路執行機制
大資料文摘出品
編譯:張秋玥、周家樂、陸震
神經網路到底是如何運作的?
雖然機器視覺系統在越來越多的領域得到應用,從醫療保健到自動駕駛汽車,但是要真的理解機器的眼睛到底是如何“看到”事物,為什麼它將甲歸類為行人,但將乙歸類為路標,仍然是一個迷。
今日,谷歌與OpenAI釋出新研究,希望透過繪製這些系統用於理解世界的視覺資料,來進一步開啟人工智慧視覺領域的黑匣子。
此項研究被稱為“啟用地圖集”(Activation Atlases),是一種神經元互動方式的最新視覺化技術。
論文:
程式碼:
Demo:
app.html
該研究一經發布,就在全網引發熱議。它能夠像“顯微鏡”一樣,幫助研究人員分析各種演算法的工作原理。
不僅能夠揭示它們識別的抽象形狀、顏色與圖案,還能夠揭示它們如何將這些元素結合起來以識別特定的物體、動物與場景。
如果將之前的研究比作在演算法的視覺字母表中顯示單個字母,那麼啟用地圖集則提供了整個字典,它能夠顯示字母是如何組合在一起製作實際詞彙的。
視覺分類網路的啟用圖集,揭示了許多完全被識別出的特徵,如電子裝置、建築、食物、動物耳朵、植物和水樣背景等等
啟用地圖集建立在特徵視覺化的基礎上,是一種研究神經網路隱藏層究竟可以表示什麼的技術。特徵視覺化的早期工作主要集中在單個神經元上。透過收集數以萬計的神經元相互作用和視覺化的樣例,啟用地圖集將關注點從單個神經元轉移到視覺化這些神經元所共同代表的空間。
OpenAI的部落格介紹稱:啟用地圖集比預期的效果更好,似乎有力地表明神經網路的啟用層對人類而言是有意義的。這能讓我們更加樂觀地認為,視覺模型能取得非常好的可解釋性。
從不同的訓練樣例中收集一百萬個啟用向量,將它們安排在二維空間中,使相似的啟用向量緊密地結合在一起。然後,在每個單元的平均值上施加一個網格並使用特徵視覺化。
谷歌的Shan Carter是這項工作的首席研究員。Carter說:“拿'鯊魚'這一影像類別為例,其中會有很多啟用因素,比如'牙齒'和'水'。
這項工作並不一定是一項巨大科學突破,但它確實是更廣泛的特徵視覺化這一研究領域中向前邁出的重要一步。佐治亞理工學院的博士生Ramprasaath Selvaraju(未參與這項工作)認為這項研究“非常令人著迷”,它結合了許多現有的想法來創造一項”非常有用“的新工具。
因為通常情況下,如果要部署一個關鍵的軟體,程式設計師可以透過檢查程式碼的所有執行路徑,甚至進行形式化驗證來確保安全。但是目前而言如果用到了神經網路,我們進行這種檢查的能力將會受到很大的限制。
有了啟用地圖集,人類就可以發現那些存在於神經網路中而未曾被預料到的問題。例如,神經網路可能會依賴虛假相關性對影像進行分類,或者因為重複利用了不同類別間共有的某個特徵而導致奇怪的錯誤。人類甚至可以利用這種理解來“攻擊”模型,修改影像來欺騙它。
部分依賴麵條的存在來區分炒鍋和煎鍋。加入麵條會有45%的可能欺騙模型。
在未來,這樣的研究將有很多用途,比如幫助我們建立更高效和先進的演算法,還能夠透過讓研究人員進入模型的內部來提高其安全性並消除偏誤。“由於神經網路固有的複雜性,它們缺乏可解釋性,”Selvaraju在採訪中說。但是在未來,當這種網路經常被用於駕駛汽車以及引導機器人時,可解釋性將非常重要。
OpenAI的Chris Olah也參與了這個專案,他說,“感覺有點像創造一個顯微鏡。至少,這就是我們所追求的目標。“
啟用地圖集允許研究人員將視覺資料演算法用於理解世界
啟用地圖集的工作原理
要了解啟用地圖集和其他功能視覺化工具的工作原理,首先需要了解一下AI系統如何識別物件。
實現這一目標的基本方法是使用神經網路:一種與人類大腦大致相似的計算結構(雖然它在複雜性方面落後了無數倍)。在每個神經網路內部有像網狀物一樣連線的人造神經元層。像大腦中的細胞一樣,這些細胞會響應刺激——這一過程被稱為啟用。重要的是,它們不僅僅能夠被開啟或關閉; 它們有一定的取值範圍,能夠為每次啟用賦予特定值或“權重”。
要將一個神經網路變為真正有用的東西,你必須提供大量的訓練資料。在視覺演算法的情況下,這將意味著數十萬甚至數百萬被標記為特定類別的影像。在谷歌和OpenAI的研究人員為這項工作測試的神經網路的情況下,這些類別非常廣泛:從羊毛到溫莎領帶,從安全帶到加熱器。
神經網路使用互相連線的人工神經元層來處理資料。不同的神經元反映影像的不同部分。
當我們使用這些資料訓練網路時,神經網路中的不同神經元會響應對應的影像。此規律會連線到影像的標籤,這種聯絡允許網路“學習”事物的樣子。一旦經過訓練,你就可以向網路顯示它以前從未見過的圖片。神經元將會被新圖片啟用,將該圖片與特定類別相匹配。恭喜!您剛剛訓練了機器學習視覺演算法。
如果這些解釋聽起來都簡單到令人不安,那是因為,從很多方面而言,它就是這麼簡單。像許多機器學習程式一樣,視覺演算法本質上只是模式匹配。這給予了它們一定的優勢(例如,只要你擁有必要的資料和計算能力,就可以直接進行訓練演算法)。但這也給了它們某些弱點,比如說它們很容易被之前從未見過的影像輸入弄糊塗這一事實。
自研究人員在2010年初發現了神經網路在視覺任務方面潛力以來,他們一直在鑽研機制,試圖弄清楚這些演算法到底是如何完成任務的。
有一項名為DeepDream的早期實驗,這是2015年釋出的計算機視覺計劃,意圖將任何圖片變成了自身的幻覺版本。DeepDream的視覺效果肯定是有趣的(在某些方面,它們定義了所謂人工智慧美學),但該程式也是一個像演算法一樣的早期嘗試。Olah說:“在某些方面,這一切都始於DeepDream。”
像這樣的DeepDream影像都被機器學習演算法設計得儘可能有趣
DeepDream也即將影像調整為儘可能有趣的演算法。看起來它似乎是在影像中發現“隱藏”的圖案,但它更像是有人在著色書中塗鴉:用眼睛、莖杆、螺紋和鼻子填充每一寸空白——儘可能地激發演算法。
後來的研究採用了同一基本方法並對其進行了微調:首先看是什麼激發了網路中的單個神經元、神經元群以及網路中不同層的神經元組合。如果說早期的實驗就像Isaac Newton用鈍針扎自己的眼睛來理解視覺一樣太專注,其結果很偶然,那麼最近的研究工作就像Newton用稜鏡分解光線一樣更有目的性。透過反覆繪製神經網路每個部分被啟用的視覺元素,最終得到神經網路核心的視覺索引圖集。
縮小或放大啟用地圖集
啟用地圖集展示演算法的內部運作
啟用地圖集實際上向我們展示了關於演算法的內部運作的什麼內容呢?我們可以先看看谷歌和OpenAI的例子,這是為了瞭解名為GoogLeNet或InceptionV1的著名神經網路的內部結構是如何建立的。
例子:
你可以看到網路的不同部分怎麼對不同的概念做出反應,以及這些概念被怎樣地聚集在一起(例如,狗和鳥被完全分開)。你還可以看到網路的不同層如何代表不同型別的資訊。較低層更為抽象,響應基本的幾何形狀,而較高層將這些解析為可識別的概念。
當你深入研究分類時,你會發現這才是相當有趣的地方。谷歌和OpenAI給出的一個例子是通氣管和戴水肺的潛水員這兩類之間的區別。
在下圖中,你可以看到神經網路用於識別標籤的各種啟用。左邊是與通氣管高度相關的啟用,右邊是與戴水肺的潛水員密切相關的啟用。中間是兩類共享的啟用,而邊緣部分的啟用則差異更加明顯。
與通氣管(左)和戴水肺的潛水員(右)緊密相關的啟用
你一眼就能看出一些明顯的顏色和圖案。頂部看起來像顏色鮮豔的魚身上的斑點和條紋,底部則像面具。右邊突出顯示的是一個奇怪的識別,很像火車頭。當研究人員發現這一點時,他們很困惑。是不是關於火車頭的視覺資訊對戴水肺潛水員的識別很重要?
Carter說:所以我們測試了下,我們想如果我們加入一張蒸汽火車的車頭的圖片,它會有助於識別嗎?意想不到的是,它真的有用。”
三張圖片展示瞭如何再分類同一張圖片。左邊被識別為通氣管;中間加入火車頭之後識別為潛水員;當火車頭的照片足夠大時被識別為火車頭。
該團隊最終找到了原因:這是由於火車頭的光滑金屬曲線在視覺上接近於潛水員的空氣罐。所以對於神經網路來說,這是潛水員和通氣管之間的一個明顯區別。為了節省區分這兩類的時間,它就從其他地方借用了所需的視覺識別資料。
這個例子神奇地揭示了神經網路的工作方式。對於懷疑論者而言,它展示了神經網路的侷限性。他們會說,視覺演算法可能是有效的,但他們學到的資訊實際上和人類理解世界的方式天差地別。這會讓他們懷疑一些做法。例如,你只是在圖片中故意加入幾個畫素,神經網路就可能認不出這張圖片。
但對於Carter和Olah這類人來說,啟用地圖集和類似的工具所揭示的資訊展示了這些演算法所達到的驚人的深度和靈活性。例如,Carter指出,演算法為了區分潛水員和通氣管,它還將不同型別的動物與這兩類做分析。
關注演算法內部結構可以讓他們更為準確有效
“深水中的動物,比如海龜,會被識別為水肺,水面上的,比如鳥,會被識別為通氣管,”他說。他指出,這是從未讓系統學習的資訊,但它自己學習了這些。 “這有點接近對世界更深層次的理解。這讓我很興奮。“
Olah同意,“我發現在高解析度下看這些圖集令人震撼,我看到了這些網路的巨大潛力。”
他們二人希望透過開發這樣的工具,能有助於推動人工智慧整個領域的發展。透過了解機器視覺系統如何觀看這個世界,理論上我們可以更加有效地構建它們並更細緻地檢查它們的準確性。
目前工具有限,Olah說我們可以給系統丟擲測試資料來試著欺騙他們,但這種方法總是受到已知錯誤的限制。 他說:“但如果我們想投入精力的話,這給了我們一個揭露未知問題的新工具,這感覺就像每一代工具都能讓我們更加理解這些網路的內部核心。”
相關報導:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562039/viewspace-2638160/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 神經網路原理的視覺化神經網路視覺化
- 卷積神經網路中的視覺化方法卷積神經網路視覺化
- 卷積神經網路表徵視覺化研究綜述卷積神經網路視覺化
- MIT將生物學機制引入神經網路,新模型或揭開抑制神經元功能MIT神經網路模型
- 神經網路篇——從程式碼出發理解BP神經網路神經網路
- 神經網路:numpy實現神經網路框架神經網路框架
- 神經網路神經網路
- 利用Python實現卷積神經網路的視覺化Python卷積神經網路視覺化
- 從資訊理論的角度理解與視覺化神經網路視覺化神經網路
- 神經網路初始化神經網路
- 神經網路(二):感知機神經網路
- 聊聊從腦神經到神經網路神經網路
- 僅用一行程式碼就能視覺化人工神經網路(ANNs)!行程視覺化神經網路
- LSTM神經網路神經網路
- 8、神經網路神經網路
- BP神經網路神經網路
- 模糊神經網路神經網路
- 如何優化深度神經網路?優化神經網路
- NeurIPS 2018提前看:視覺化神經網路泛化能力視覺化神經網路
- 圖神經網路GNN 庫,液體神經網路LNN/LFM神經網路GNN
- 求助!!!!Django+Celery非同步執行神經網路時出錯Django非同步神經網路
- CICC科普欄目|神經網路淺講:從神經元到深度學習神經網路深度學習
- 神經網路中間層輸出神經網路
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 【神經網路篇】--RNN遞迴神經網路初始與詳解神經網路RNN遞迴
- 使用`phy`進行神經網路資料讀取及視覺化之開發環境準備神經網路視覺化開發環境
- TensorFlow神經網路優化策略神經網路優化
- 卷積神經網路卷積神經網路
- 迴圈神經網路神經網路
- 人工神經網路(ANN)神經網路
- 生成型神經網路神經網路
- 機器學習整理(神經網路)機器學習神經網路
- 神經網路入門神經網路
- ImageNet冠軍帶你入門計算機視覺:卷積神經網路計算機視覺卷積神經網路
- 為什麼說BP神經網路就是人工神經網路的一種?神經網路
- 簡述脈衝神經網路SNN:下一代神經網路神經網路
- 深度神經網路(DNN)的正則化神經網路DNN
- 神經網路進化能否改變機器學習?神經網路機器學習