深度學(xué)習(xí)是一種處理和解讀數(shù)據(jù)的方式,我們需要更深入的理解機(jī)器的運(yùn)作才能更更好的控制和應(yīng)用它為我們服務(wù),接下來將要詳細(xì)討論深度學(xué)習(xí)得以實(shí)現(xiàn)如此優(yōu)異表現(xiàn)的原因。為了簡化討論的過程,本文將利用Tensorlow及其API為例來進(jìn)行討論,從認(rèn)知論的程度來理解深度學(xué)習(xí)背后的魅力。
神經(jīng)網(wǎng)絡(luò)表現(xiàn)出的縮減效應(yīng)
對于深度學(xué)習(xí)的理解有各種不同的觀點(diǎn)和層次順序。我們首先用下面的網(wǎng)絡(luò)結(jié)構(gòu)作為例子:
上圖描述了一張圖像經(jīng)過一個深度學(xué)習(xí)網(wǎng)絡(luò)的傳播過程,我們在這里先進(jìn)行一個小小的變換,將最左端看做是底部,而最右端看做是整個網(wǎng)絡(luò)的頂部。這樣我們就可以利用自底向上的方法來對網(wǎng)絡(luò)進(jìn)行分析。
上圖中我們會看到隨著信息向網(wǎng)絡(luò)頂層傳播,數(shù)據(jù)和復(fù)雜度在明顯的下降。我們能不能假設(shè)這一過程是一種認(rèn)知的濃縮呢?它是不是將不重要的部分剔除了,如何做到的呢?深度學(xué)習(xí)模型通過什么方式來判斷哪些是顯著的特征而哪些不是呢?
對于純粹的數(shù)據(jù)縮減來說主要是通過壓縮或者隨機(jī)刪除的機(jī)制來實(shí)現(xiàn)的,但這對于深度學(xué)習(xí)來說卻不是一個好辦法。我們需要的是提出那些不顯著的部分并在最后留下那些顯著的數(shù)據(jù)和特征。但很多人對于基于重要性的縮減方法沒有正確的認(rèn)識并利用了無損壓縮算法來進(jìn)行評估。
下面讓我們用一個實(shí)際的例子來自底向上的理解深度學(xué)習(xí)網(wǎng)絡(luò)到底進(jìn)行了什么樣的工作。假設(shè)我們要建立一個人臉檢測系統(tǒng),我們先構(gòu)建一個可以理解圖像的神經(jīng)網(wǎng)絡(luò)并利用很多帶標(biāo)簽的照片對它進(jìn)行監(jiān)督訓(xùn)練并將網(wǎng)絡(luò)植入到系統(tǒng)中去,當(dāng)我們再輸入一張包含人臉的照片時系統(tǒng)就能迅速的找出圖像中人臉的位置。就這一過程而言,輸入數(shù)據(jù)是RGB彩色照片上的像素值,并在網(wǎng)絡(luò)中進(jìn)行了各種計(jì)算隨后輸出結(jié)果。我們可以看到網(wǎng)絡(luò)的輸出要比輸入少很多,這意味著在處理過程中很多信息被丟棄了。從輸入或者低級的抽象進(jìn)行一定程度的縮減并傳遞到下一層進(jìn)行操作。
圖片在神經(jīng)網(wǎng)絡(luò)中傳輸?shù)墓适吕?,前面階段神經(jīng)網(wǎng)絡(luò)只能操作一些臨近的像素并檢測出簡單的直線和曲線信息、以及不同的顏色。所以他們描述的主要是基于線條和顏色的基本信息。
而上面的層則會進(jìn)行更為復(fù)雜的處理,他們可能會“看到”某些邊緣與先前看到過的邊緣很類似屬于某一類物體。它們也許會說“這和之前看到的草很類似呀”。甚至沒有標(biāo)簽信號的時候,這種高層次的信號也能形成某一種表達(dá)向前傳播。
在更上一層,神經(jīng)網(wǎng)絡(luò)可能會看到更多的草“哇,這么多草葉子,這里一定是草地了”,那么草地的信號會被繼續(xù)向前傳播;
最后頂部的操作會綜合這些結(jié)果“我們是人臉檢測器,并不關(guān)心草地,忘了它們吧”。最后將不顯著的草地的信息丟棄。
將不是人臉的數(shù)據(jù)剔除后剩下的是什么呢?
在你知道網(wǎng)絡(luò)的表達(dá)是什么之前是不能丟棄其中的信息的。具體來說就像上面的例子中低層級的草葉檢測器不能丟棄草一樣,因?yàn)樗鼈冞€不知道更高級的顯著性特征草地-不是草地/人臉-不是人臉的線索。
我們能做的僅僅是在理解和抽象的層面上進(jìn)行操作。每一個層級接收低下傳上來的描述、丟棄它認(rèn)為不相關(guān)的部分并將它們自己對于信息的表示向上傳遞,直到到達(dá)真正知道網(wǎng)絡(luò)所要搜尋的目標(biāo)的層。
而這也是深度學(xué)習(xí)之所以深的原因。
這并不是一個新穎的觀點(diǎn),早在1959年Oliver Selfridge就提出了類似的觀點(diǎn)稱為喧囂,但長期被人工智能界忽略了,但它卻提前60年預(yù)言了信息自下向上傳遞的層狀架構(gòu),這就是今天廣泛使用的深度神經(jīng)網(wǎng)絡(luò)。
那么在具體的程序中是否有支持縮減的操作呢?讓我們來看看tensorflow中的算子。
我們先來看看池化操作,tensorflow中有超過50個池化操作算子,下圖是2*2的最大池化操作:
它將鄰近的四個像素中最大值傳遞給下一個層級??拷斎攵说乃膫€值可能是相互鄰近的像素值,但更多通過池化則只選出了其中最重要的一個,可以看做是拋棄了75%不重要的部分,僅僅留下最高的一個值。
在像素層面可能是最亮的值,在上面草葉的例子中就會表示“這里至少有一片葉子”。對于丟棄信息的解讀是需要根據(jù)網(wǎng)絡(luò)層的實(shí)際情況來進(jìn)行的,事實(shí)上神經(jīng)網(wǎng)絡(luò)層代表了不同的縮減或者稱之為抽象。
現(xiàn)在我們應(yīng)該對深度神經(jīng)網(wǎng)絡(luò)中最為重要的觀點(diǎn)有了一定的感受了:縮減需要在不同層次的抽象上進(jìn)行。在決定哪些需要保留哪些需要丟棄只能在對應(yīng)的抽象層次上進(jìn)行。我們不能在僅僅看到深淺不一的綠色就決定丟棄草地的抽象,因?yàn)檫@個層次還沒有草地的信號被表達(dá)出來。這也對應(yīng)著一個簡單的道理,對于行為的決策只有在對學(xué)習(xí)產(chǎn)生積極貢獻(xiàn)的時候才能做出,不可靠或無用的決策將會通過一些機(jī)制被忽略。
接下來我們來觀察tensorflow中的卷積操作,手冊中是這樣介紹卷積操作的:
雖然她被稱為卷積操作,但實(shí)際上應(yīng)該嚴(yán)格的成為互相關(guān)操作。(編者注:卷積和互相關(guān)不同在核是否翻轉(zhuǎn),如果核對稱則相同)
不同的核用于發(fā)現(xiàn)不同的互相關(guān)和共現(xiàn)關(guān)系。共現(xiàn)關(guān)系能對圖像中不同位置的模式進(jìn)行學(xué)習(xí)。就像Hinton舉的一個例子嘴總是在鼻子的下面,這種空間關(guān)系是深度網(wǎng)絡(luò)能夠從學(xué)習(xí)過程中發(fā)現(xiàn)模式并與標(biāo)簽對應(yīng)起來。這使得圖像理解器可以為圖像中鼻子的位置打上鼻子的標(biāo)簽。此外系統(tǒng)還能夠?qū)W習(xí)到物體間相對后面和下面的概念。
傳播到深度網(wǎng)絡(luò)高層次的信息描述的正是這些關(guān)系,而不相關(guān)的信息則被視為不顯著的并被丟棄。在上面的示意圖中, 丟棄操作是由卷積+ReLU后面的最大池化層完成的。需要說明的ReLU是一種用于丟棄負(fù)值的函數(shù),同時它還為深度學(xué)習(xí)引入了重要的非線性但這不是此次分析的重點(diǎn)。
由卷積ReLU和池化層組成的模塊在深度學(xué)習(xí)中十分普遍,因?yàn)檫@三者的結(jié)合形成了十分可靠的減約過程。他們常常被打包在一起作為深度學(xué)習(xí)的單元被整合到計(jì)算圖中去,并用各自不同的方式抽取出數(shù)據(jù)中顯著的特征。
最后再強(qiáng)調(diào)一遍,這就是深度學(xué)習(xí)為何深的原因,因?yàn)槟阒荒茉谀隳芾斫獬橄蟊磉_(dá)相關(guān)性的不同層處進(jìn)行縮減,拋棄不相關(guān)的信息,而淺層的網(wǎng)絡(luò)并沒有理解這些表達(dá)的能力。
深度學(xué)習(xí)科學(xué)嗎?
深度學(xué)習(xí)一般使用線性代數(shù)來進(jìn)行數(shù)學(xué)描述,但我們還不能通過這些數(shù)學(xué)公式解釋出深度網(wǎng)絡(luò)可以形成各種復(fù)雜的理解能力。
讓我們先來考慮一下卷積操作,卷積層能夠發(fā)現(xiàn)相關(guān)性。例如很多片草葉出現(xiàn)的時候意味著一片草地。模型在訓(xùn)練過程中不斷去發(fā)現(xiàn)內(nèi)在的相關(guān)性,一旦發(fā)現(xiàn)后就會對網(wǎng)絡(luò)權(quán)重進(jìn)行調(diào)整進(jìn)行正確的縮減,以增加模式被再次發(fā)現(xiàn)的概率。但在本質(zhì)上所有的相關(guān)性都會被遺忘隨后在下一次訓(xùn)練中重新發(fā)現(xiàn),深度學(xué)習(xí)向上傳輸?shù)男盘柡拖蛳聜鬏數(shù)奶荻仁歉鶕?jù)誤差的信號來調(diào)整權(quán)重的,也可以說系統(tǒng)是從錯誤中學(xué)習(xí)的。在這一層次上,這種自下而上自頂向下的方式將會在每張圖像上重復(fù)很多次。
這種上上下下的方式造就了對于圖像的理解能力,也有人在文本上應(yīng)用同樣的方法獲得成功。其中的過程就和自然學(xué)習(xí)一樣,將生物的神經(jīng)元和軟件中的“神經(jīng)元”聯(lián)系了起來。
無論是深度學(xué)習(xí)算法家族還是自然學(xué)習(xí),都在科學(xué)上有重要的意義,他們跳過了因果聯(lián)系的推導(dǎo)過程,而從相關(guān)性中去發(fā)掘聯(lián)系。這在經(jīng)典科學(xué)理論中是不成立的,要么是優(yōu)美的公式要么就什么也不是。很多深度學(xué)習(xí)程序僅僅包含少量的線索來實(shí)現(xiàn)一般的結(jié)果,有時候增加層數(shù)并不管用,這樣的問題在深度學(xué)習(xí)的日常中并不罕見。沒有先驗(yàn)?zāi)P蜎]有信息,對于模型的可靠性、正確性或者系統(tǒng)的整體性能我們只有通過不斷地的驗(yàn)證才能完成。
但你可能會問為什么我們還要使用這種不能保證給出正確答案的系統(tǒng)呢?因?yàn)槲覀儎e無選擇了。我們在可靠的縮減方法失效的時候僅僅只能使用系統(tǒng)全局的方法,在任務(wù)需要理解能力需要自動縮減內(nèi)容和復(fù)雜度的時候只有這樣的方法。
難道真沒有其他的選擇了嗎?有?。∥覀冎車鷰资畠|人類就已經(jīng)掌握了這種復(fù)雜的技能。因?yàn)槿藗兩钤谪S富多彩的世界里。所以你可以使用理論上未被證明但效果十分顯著的方法,一種建立在深度學(xué)習(xí)之上的全局理解機(jī)器來理解世界。這樣的機(jī)器不能被證明是正確的因?yàn)樗谕ǔ5挠?jì)算機(jī)不同,它主要的工作是縮減信息,這是一種從前只在動物里擁有的能力——一種全局性(Holistic skill)的能力。
在AI認(rèn)識論中有一個十分有力的結(jié)果:我們將會再次遇到曾經(jīng)遇見的事物。這種縮減和抽象的能力將會成為人工智能領(lǐng)域必不可少的功能。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103663 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5561瀏覽量
122805
原文標(biāo)題:自底向上看深度學(xué)習(xí)網(wǎng)絡(luò)的工作原理
文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
2017全國深度學(xué)習(xí)技術(shù)應(yīng)用大會
了解AI人工智能背后的科學(xué)?
深度學(xué)習(xí)與數(shù)據(jù)挖掘的關(guān)系
【NanoPi K1 Plus試用體驗(yàn)】搭建深度學(xué)習(xí)框架
深度學(xué)習(xí)是什么
深度學(xué)習(xí)介紹
什么是深度學(xué)習(xí)?使用FPGA進(jìn)行深度學(xué)習(xí)的好處?
如何理解深度學(xué)習(xí)?深度學(xué)習(xí)的理論探索分析
WebVR:如何利用WebVR API進(jìn)行VR渲染
深度學(xué)習(xí)處理器系統(tǒng)的設(shè)計(jì)實(shí)例介紹
深度學(xué)習(xí):四種利用少量標(biāo)注數(shù)據(jù)進(jìn)行命名實(shí)體識別的方法

評論