摘要:最近, 深度學(xué)習(xí)三杰獲得了計(jì)算機(jī)界最重要的圖靈獎(jiǎng), 它們的貢獻(xiàn)都集中在對(duì)深度學(xué)習(xí)的根據(jù)神經(jīng)網(wǎng)絡(luò)的理論突破。今天我們看到的所有和人工智能有關(guān)的偉大成就, 從阿法狗到自動(dòng)駕駛, 從海量人臉識(shí)別到對(duì)話機(jī)器人, 都可以歸功于人工神經(jīng)網(wǎng)絡(luò)的迅速崛起。那么對(duì)于不了解神經(jīng)網(wǎng)絡(luò)的同學(xué)如何入門? 神經(jīng)網(wǎng)絡(luò)的技術(shù)為什么偉大, 又是什么讓它們這么多年才姍姍走來(lái)? 我們一一拆解開(kāi)來(lái)。
一 引入
我們說(shuō)人工智能經(jīng)歷了若干階段, 從規(guī)則主導(dǎo)的計(jì)算模型到統(tǒng)計(jì)機(jī)器學(xué)習(xí)。傳統(tǒng)統(tǒng)計(jì)機(jī)器學(xué)習(xí)不乏極為強(qiáng)大的算法, 從各種高級(jí)的線性回歸,SVM到?jīng)Q策樹(shù)隨機(jī)森林,它們的共同特點(diǎn)是把人類的學(xué)習(xí)過(guò)程直接轉(zhuǎn)化為算法。 但是沿著直接模擬人類學(xué)習(xí)和思維的路線, 我們是否可以走向人工智能的終極大廈呢?
答案是否定的。 基于統(tǒng)計(jì), 模擬人類思維的機(jī)器學(xué)習(xí)模型, 最典型的是決策樹(shù), 而即使決策樹(shù), 最多能夠提取的無(wú)非是一種數(shù)據(jù)特征之間的樹(shù)形邏輯關(guān)系。 但是顯然我們?nèi)说墓δ埽?很多并不是基于這種非常形式化的邏輯。 比如你一看到一個(gè)人, 就記住了他的面孔。 比如你有情感, 在你憤怒和恐懼的時(shí)候擊退敵人。 比如你一不小心產(chǎn)生了靈感, 下了一手妙棋或者畫出一幅名畫。 這些顯然都與決策樹(shù)那種非常機(jī)械的邏輯相差甚遠(yuǎn)。
人類的智慧根據(jù), 是從感知, 到直覺(jué), 到創(chuàng)造力的一系列很難轉(zhuǎn)化為程序的過(guò)程。 那我們?nèi)绾尾拍苷嬲M人類的智能? 我們回到人的組成人的智能本身最重要的材料。 大腦。
如果說(shuō)統(tǒng)計(jì)機(jī)器學(xué)習(xí)的故事是一個(gè)模擬人類思維的過(guò)程, 那么神經(jīng)網(wǎng)絡(luò)的故事就是一個(gè)信息加工和處理的故事, 我們的思維將一步步接近造物, 接近 - “信息”, 這個(gè)一切認(rèn)知和智能的本源。 看它該如何流動(dòng), 才能產(chǎn)生人的思維。
二 神經(jīng)元
生物神經(jīng)元
首先, 神經(jīng)網(wǎng)絡(luò)的靈感來(lái)自生物神經(jīng)網(wǎng)絡(luò)。 那么生物神經(jīng)網(wǎng)絡(luò)是怎么組成的? 神經(jīng)元。 神經(jīng)元的基本結(jié)構(gòu)是樹(shù)突, 胞體和軸突(如上圖)。這樣一個(gè)結(jié)構(gòu),就像因特網(wǎng)上的一臺(tái)電腦,它有一部接受器-樹(shù)突,每一個(gè)樹(shù)突的頂端是一個(gè)叫突出的結(jié)構(gòu),上面布滿各種各樣的傳感器(離子通道),接受外界物理信號(hào),或其它“電腦”給它發(fā)來(lái)的脈沖,一部發(fā)射器,軸突,則以化學(xué)遞質(zhì)的形式放出自身的信號(hào)。只不過(guò)樹(shù)突和軸突是有形的生物組織, 他們象樹(shù)枝,根須一般延伸出去,不停的探知外界的情況并調(diào)整自己。
神經(jīng)元模型
我們把生物神經(jīng)元進(jìn)行數(shù)學(xué)抽象, 就得到人工神經(jīng)元。如何抽取它的靈魂? 簡(jiǎn)單的說(shuō), 每一個(gè)神經(jīng)元扮演的角色就是一個(gè)收集+傳話者。樹(shù)突不停的收集外部的信號(hào),大部分是其它細(xì)胞傳遞進(jìn)來(lái)的信號(hào),也有物理信號(hào), 比如光。 然后把各種各樣的信號(hào)轉(zhuǎn)化成胞體上的電位, 如果胞體電位大于一個(gè)閾值, 它就開(kāi)始向其它細(xì)胞傳遞信號(hào)。 這個(gè)過(guò)程非常像爆發(fā)。 要不是沉默, 要不就瘋狂的對(duì)外喊話。
我們說(shuō), 一個(gè)神經(jīng)細(xì)胞就是一個(gè)最小的認(rèn)知單元, 何為認(rèn)知單元, 就是把一定的數(shù)據(jù)組成起來(lái),對(duì)它做出一個(gè)判斷, 我們可以給它看成一個(gè)具有偏好的探測(cè)器。 聯(lián)系機(jī)器學(xué)習(xí), 就是分類器,不停的對(duì)外界數(shù)據(jù)進(jìn)行處理。為什么要做分類? 因?yàn)檎_的分類, 是認(rèn)知的基礎(chǔ), 也是決策的基礎(chǔ)。 因?yàn)檎J(rèn)識(shí)任何概念, 往往都是離散的分類問(wèn)題, 比如色彩, 物體的形狀等等。因此, 神經(jīng)細(xì)胞做的事情, 就像是模數(shù)轉(zhuǎn)化, 把連續(xù)的信號(hào)轉(zhuǎn)化成離散的樣子。
突觸:生物神經(jīng)元對(duì)話的媒介, 信號(hào)在這里實(shí)現(xiàn)轉(zhuǎn)化
如果說(shuō)把神經(jīng)元看成這樣一個(gè)信息轉(zhuǎn)化的函數(shù), 那么生物神經(jīng)元的這副樣子,使它能夠極好的調(diào)節(jié)這個(gè)函數(shù)。 信號(hào)的收集者樹(shù)突, 可以向外界生長(zhǎng)決定探測(cè)哪些信號(hào), 然后通過(guò)一個(gè)叫離子通道的東西收集信號(hào),每個(gè)樹(shù)突上這種通道的數(shù)量不一樣。 有的多一點(diǎn), 有的少一點(diǎn), 而且是可以調(diào)控的。 這個(gè)調(diào)控的東西, 就是對(duì)外界信號(hào)的敏感度。 這樣的結(jié)構(gòu), 可以說(shuō)得到了最大的對(duì)外界信息的選擇性。
什么是外界信號(hào)? 這里我們用上次課將的一個(gè)東西替代, 特征, 如果把一切看作樹(shù), 神經(jīng)元在不停觀測(cè)外界, 每個(gè)樹(shù)突都在收集某個(gè)特征。而這個(gè)離子通道的數(shù)量, 就是線性回歸里面的那個(gè)權(quán)重。
它在干什么事情呢? 收集特征, 作為決策證據(jù)! 當(dāng)某些信息積累到一定地步, 它就可以做決策了, 如果把這個(gè)功能進(jìn)一步簡(jiǎn)化, 我們就可以把這個(gè)決策過(guò)程描述成以單純的閾值函數(shù), 要么就干, 否則就不干。 就這么簡(jiǎn)單的。
從生物神經(jīng)元到數(shù)學(xué)神經(jīng)元
神經(jīng)細(xì)胞與晶體管和計(jì)算機(jī)的根本區(qū)別在于可塑性。或者更準(zhǔn)確的說(shuō)具有學(xué)習(xí)能力。從機(jī)器學(xué)習(xí)的角度看, 它實(shí)現(xiàn)的是一個(gè)可以學(xué)習(xí)的分類器,就和我們上次課講的一樣, 具有自己調(diào)整權(quán)重的能力, 也就是調(diào)整這個(gè)w1和w2.
我們這個(gè)簡(jiǎn)化出來(lái)的模型,正是所有人工神經(jīng)網(wǎng)絡(luò)的祖母-感知機(jī)。從名字可以看出,人們?cè)O(shè)計(jì)這個(gè)模型的最初目的就是像讓它像真實(shí)的生物神經(jīng)元一樣,做出感知和判斷。并且從數(shù)據(jù)中學(xué)習(xí)。
感知機(jī)算是最早的把連接主義引入機(jī)器學(xué)習(xí)的嘗試。它直接模擬Warren McCulloch 和 Walter Pitts 在1943 提出而來(lái)神經(jīng)元的模型, 它的創(chuàng)始人 Rosenblatt 事實(shí)上制造了一臺(tái)硬件裝置的跟神經(jīng)元器件裝置。
把數(shù)學(xué)神經(jīng)元變成機(jī)器
你要是想理解這個(gè)過(guò)程。最好的方法是幾何法。你仔細(xì)觀察, 這個(gè)感知機(jī)的方程, 如果只有兩個(gè)特征的時(shí)候, 描述的就是一個(gè)x1和x2坐標(biāo)的平面, 中間有一條直線w1x1+w2x2=0,直線的左邊是一類, 右邊是二類 。感知機(jī)的學(xué)習(xí)過(guò)程就是調(diào)整這條分類直線的位置,我們測(cè)量錯(cuò)分點(diǎn)到這條線的距離之和,調(diào)整線的位置, 直到兩個(gè)類的點(diǎn)乖乖分布到直線兩邊,我們就實(shí)現(xiàn)了分類過(guò)程。
一個(gè)神經(jīng)元相當(dāng)于一個(gè)分類器
這其實(shí)就是一個(gè)神經(jīng)元的偏好。 比你讓一個(gè)神經(jīng)元幫你確定是否去看電影的例子。它根據(jù)今天的溫度,一個(gè)是電影的長(zhǎng)度來(lái)判斷, 當(dāng)然一開(kāi)始它不了解你, 但是它可以先幫你做做決策, 然后根據(jù)你每次給他的反饋意見(jiàn)它調(diào)整自己,如果你注重溫度,它就加大溫度的權(quán)重,總之找到你看重的東西, 這就是感知機(jī)訓(xùn)練的方法白話版, 如果你給他肯定意見(jiàn),他就不做改變, 你不滿意, 他就變一變。
最初的感知機(jī)采用閾值函數(shù)作為神經(jīng)元的決策(激活)函數(shù)。后來(lái)這個(gè)函數(shù)逐步被調(diào)整為sigmoid函數(shù)。表現(xiàn)上看, 這個(gè)函數(shù)把閾值函數(shù)進(jìn)行了軟化, 事實(shí)上, 它使得我們不是僅僅能夠表達(dá)非黑即白的邏輯, 而是一個(gè)連續(xù)變化的概率。 而這個(gè)函數(shù)的擴(kuò)展softmax則可以幫助我們實(shí)現(xiàn)多個(gè)分類的選擇。
sigmoid 函數(shù)
我們說(shuō), 這一類模型開(kāi)始被人們寄托重大希望, 不久卻落空。原因在于, 它真是太簡(jiǎn)單了。 在幾何上, 無(wú)論怎么變它都只是一個(gè)線性的模型。 而事實(shí)上, 這個(gè)世界卻是非線性的。
三 神經(jīng)網(wǎng)絡(luò)降伏非線性
什么是非線性, 我們舉一個(gè)經(jīng)典的機(jī)器學(xué)習(xí)的房?jī)r(jià)的例子,首先這是一個(gè)經(jīng)典的線性問(wèn)題。 我們通常用線性模型描述房?jī)r(jià)的問(wèn)題。 把各個(gè)影響因子線性的累加起來(lái)。比如我們把問(wèn)題簡(jiǎn)化為臥室數(shù)量, 面積 ,地段, 最后求成交價(jià)。 我們用線性模型求解價(jià)格。 然而, 著一定不是真實(shí)的情況, 這背后的關(guān)鍵假設(shè)是,我們的臥室數(shù)量,面積, 地段都會(huì)獨(dú)立的影響房?jī)r(jià), 這就好像說(shuō), 如果你有幾個(gè)不同的因素, 某個(gè)要素變化, 不影響其它要素最終決定房?jī)r(jià)的方式,我們具體來(lái)說(shuō), 還是房屋單價(jià)只受地段, 距離地鐵遠(yuǎn)近,臥室數(shù)量三個(gè)要素影響,假定三者的權(quán)重是w1,w2, w3. 如果你去改變地段,那么w2,和w3必須是不變的。 就拿海淀和朝陽(yáng)來(lái)說(shuō),對(duì)這兩個(gè)區(qū), w2 和w3 是一致的。 事實(shí)上呢? 顯然這三個(gè)要素互相制約,或許海淀的人都做地鐵, 朝陽(yáng)的有車的比較多, 它們對(duì)距離地鐵遠(yuǎn)近的敏感就不同, 或者說(shuō)海淀的單身漢比較多, 朝陽(yáng)的成家的比較多, 朝陽(yáng)的就更喜歡臥室多的大戶型。 如何表現(xiàn)這種特征之間的相互依賴關(guān)系呢? 一個(gè)天然的解決方法,就是:網(wǎng)絡(luò)模型
看看人類可能是怎么處理這些信息的,人對(duì)于這種復(fù)雜的信息,往往采用的是陪審團(tuán)模式,我們可能有好幾個(gè)房?jī)r(jià)專家, 就自己了解的方向去提供意見(jiàn), 最后我們?cè)俑鶕?jù)每個(gè)人的情況綜合出一個(gè)結(jié)果。雖然這個(gè)時(shí)候我們失去了簡(jiǎn)單的線性, 但是通過(guò)對(duì)不同意見(jiàn)單元的歸納, 和集中的過(guò)程, 就可以模擬更復(fù)雜的問(wèn)題。
再看看怎么把它變成數(shù)學(xué)處理房?jī)r(jià)問(wèn)題。 首先把他表示成公式, 他其實(shí)是說(shuō)的是
系數(shù)變成了和x有關(guān)的,仔細(xì)想一下,這不就是增加了一個(gè)新的層次嗎,我們需要再原始特征x1和x2的基礎(chǔ)上,增加一個(gè)新的處理層次,讓不同的特征區(qū)域,享受不同的權(quán)重。 就好比我們有好幾位房?jī)r(jià)評(píng)估師,每一位都是針對(duì)某種情況下房?jī)r(jià)的專家,最后有一個(gè)人, 根據(jù)專家的特長(zhǎng)給出最終的綜合結(jié)果。這與我們的靈感是相符的。
我們把他表示成圖示方法。 首先, 每個(gè)專家都仿佛是一個(gè)小的線性模型, 它們具有唯一的一組權(quán)重, 顯示它們?cè)偎煜さ膮^(qū)域的權(quán)威。
圖片改編自網(wǎng)絡(luò)博文Machine Learning is Fun! by Adam Geitgey
然后,我們把它們匯總起來(lái), 得到下面這個(gè)圖, 這個(gè)圖和之前我們講解線性回歸的圖是一樣的, 但是我們?cè)黾恿艘粋€(gè)中間的層次,這就是剛剛說(shuō)的陪審團(tuán), 哪些中間的位置, 事實(shí)上就是表達(dá)了特征之間復(fù)雜的互相影響。而最終我們把它們的意見(jiàn)綜合起來(lái), 就是最終的結(jié)果。
你換個(gè)角度思考, 那些中間的綠色圓圈, 也就是說(shuō)每個(gè)專家,不就是神經(jīng)元嗎? 而那個(gè)黃色圓圈, 是最終決策的神經(jīng)元。 這樣的一個(gè)組織, 而不是單個(gè)神經(jīng)元, 就是神經(jīng)網(wǎng)絡(luò)的雛形。
當(dāng)然, 房?jī)r(jià)的問(wèn)題是個(gè)回歸問(wèn)題, 而這個(gè)世界的大部分機(jī)器學(xué)習(xí)問(wèn)題是分類, 每個(gè)神經(jīng)元也是一個(gè)小小的分類器, 所以我們把每個(gè)神經(jīng)元的角色變成線性分類器,再套用剛剛陪審團(tuán)的邏輯, 看看我們得到了什么:每個(gè)線性分類器, 剛剛講過(guò)都是一個(gè)小的特征檢測(cè)器, 具有自己的偏好,這個(gè)偏好剛好用一個(gè)直線表示, 左邊是yes,右邊是no, 那么多個(gè)神經(jīng)元表達(dá)的是什么呢? 很多條這樣yes or no的直線! 最終的結(jié)果是什么呢? 我們得到一個(gè)被一條條直線割的四分五裂的結(jié)構(gòu), 既混亂又沒(méi)用! 這就好比每個(gè)信息收集者按照自己的偏好得到一個(gè)結(jié)論。幸好我們有一組頭頂?shù)纳窠?jīng)元, 它就是最終的大法官, 它把每個(gè)人劃分的方法, 做一個(gè)匯總。 大法官并不需要什么特殊的手段做匯總, 它所做到的,無(wú)非是邏輯運(yùn)算, 所謂的“與”, “或”, “非”, 這個(gè)合并方法,可以得到一個(gè)非常復(fù)雜的判決結(jié)果。 你可以把大法官的工作看成是篩選, 我們要再空間里篩選出一個(gè)我們最終需要的形狀來(lái), 這有點(diǎn)像是小孩子玩的折紙游戲,每一次都這一條直線, 最終會(huì)得到一個(gè)邊界非常復(fù)雜的圖形。 我們說(shuō), 這就是一個(gè)一層的神經(jīng)網(wǎng)絡(luò)所能干的事情。 它可以做出一個(gè)復(fù)雜的選擇, 每個(gè)神經(jīng)元都代表著對(duì)特征的一個(gè)組合方法,最后決策神經(jīng)元把這些重組后的特征已經(jīng)刻畫了不同特征之間的關(guān)系, 就可以干掉認(rèn)識(shí)現(xiàn)實(shí)世界復(fù)雜特性-非線性的能力, 特征之間的關(guān)系很復(fù)雜, 我也可以學(xué)出來(lái)。
所謂神經(jīng)網(wǎng)絡(luò)的近似定理, 是說(shuō)一個(gè)前饋神經(jīng)網(wǎng)絡(luò)如果具有線性輸出層和至少一層具有任何一種‘‘?dāng)D壓’’ 性質(zhì)的激活函數(shù)(例如logistic sigmoid激活函數(shù))的隱藏層,只要給予網(wǎng)絡(luò)足夠數(shù)量的隱藏單元,它可以以任意的精度來(lái)近似任何從一個(gè)有限維空間到另一個(gè)有限維空間的Borel 可測(cè)函數(shù)。 這是關(guān)于神經(jīng)網(wǎng)絡(luò)最經(jīng)典的理論了,簡(jiǎn)稱萬(wàn)能函數(shù)逼近器。
另外的一種理解是,神經(jīng)網(wǎng)絡(luò)具有生成非常復(fù)雜的規(guī)則的能力, 如果你可以讓神經(jīng)網(wǎng)絡(luò)很好的學(xué)習(xí), 他就可以自發(fā)的去做那些與或非, 和邏輯運(yùn)算,不用你自己寫程序就解決非線性問(wèn)題。
四 關(guān)于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)
是什么阻止了神經(jīng)網(wǎng)絡(luò)從出現(xiàn)之后很快的發(fā)展, 事實(shí)上是它們非常不好學(xué)習(xí)。
我們說(shuō)神經(jīng)網(wǎng)絡(luò)能夠成為一種機(jī)器學(xué)習(xí)的工具關(guān)鍵在于能夠?qū)W習(xí),那么如何學(xué)習(xí)的呢? 如果說(shuō)單個(gè)神經(jīng)元可以學(xué)習(xí)的它的偏好, 通過(guò)調(diào)整權(quán)重來(lái)調(diào)整自己的偏好。 那么神經(jīng)網(wǎng)絡(luò)所干的事情就是調(diào)整每個(gè)神經(jīng)元和神經(jīng)元之間的聯(lián)系, 通過(guò)調(diào)整這個(gè)連接, 來(lái)學(xué)習(xí)如何處理復(fù)雜的特征。
說(shuō)的簡(jiǎn)單, 這在數(shù)學(xué)上是一個(gè)非常難的問(wèn)題。 我們通常要把一個(gè)機(jī)器學(xué)習(xí)問(wèn)題轉(zhuǎn)化為優(yōu)化問(wèn)題求解。 這里, 神經(jīng)網(wǎng)絡(luò)既然在解決非線性問(wèn)題, 事實(shí)上和它有關(guān)的優(yōu)化又叫做非線性優(yōu)化。
先看生物神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí), 它是通過(guò)一種叫做可塑性的性質(zhì)進(jìn)行調(diào)節(jié)的。 這種調(diào)控的法則十分簡(jiǎn)單。說(shuō)的是神經(jīng)細(xì)胞之間的連接隨著它們的活動(dòng)而變化, 這個(gè)變化的方法是, 如果有兩個(gè)上游的神經(jīng)元同時(shí)給一個(gè)共同的下游神經(jīng)元提供輸入, 那么這個(gè)共同的輸入將導(dǎo)致那個(gè)弱的神經(jīng)元連接的增強(qiáng), 或者說(shuō)權(quán)重的增強(qiáng)。 這個(gè)原理導(dǎo)致的結(jié)果是,我們會(huì)形成對(duì)共同出現(xiàn)的特征的一種相關(guān)性提取。 比如一個(gè)香蕉的特征是黃色和長(zhǎng)形, 一個(gè)猴子經(jīng)常看到香蕉, 那么一個(gè)連接到黃色和長(zhǎng)形這兩種底層特征的細(xì)胞就會(huì)越來(lái)越敏感, 形成一個(gè)對(duì)香蕉敏感的細(xì)胞,我們簡(jiǎn)稱香蕉細(xì)胞。 也就是說(shuō)我們通過(guò)底層特征的“共現(xiàn)” 形成了對(duì)高級(jí)特征的認(rèn)知。 上述過(guò)程被總結(jié)hebbain學(xué)習(xí)的一個(gè)過(guò)程。
從本質(zhì)上說(shuō), 剛剛說(shuō)的過(guò)程是一種無(wú)監(jiān)督學(xué)習(xí),你接受輸入引起神經(jīng)活動(dòng), 它慢慢的調(diào)整。 如果用這樣的方法訓(xùn)練人工神經(jīng)網(wǎng)絡(luò),恐怕需要跑一個(gè)世紀(jì)。 人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練依賴的是監(jiān)督學(xué)習(xí),一種有效的結(jié)果導(dǎo)向的思維,如果我要它判斷香蕉和蘋果, 我就是要一邊給它看圖片, 叫它告訴我是什么 ,然后馬上告訴它對(duì)錯(cuò), 如果錯(cuò)了,就是尋找那個(gè)引起錯(cuò)誤的神經(jīng)連接。 然而這個(gè)過(guò)程在數(shù)學(xué)上特別的難以表達(dá), 因?yàn)橐粋€(gè)復(fù)雜網(wǎng)絡(luò)的判斷, 引起錯(cuò)誤的原因可能是任何中間環(huán)節(jié) ,這就好像調(diào)節(jié)一大堆互相關(guān)聯(lián)在一起的參數(shù),更加可怕的是, 神經(jīng)網(wǎng)絡(luò)往往有很多層, 使得這些參數(shù)的相關(guān)性更加復(fù)雜, 如果你一個(gè)個(gè)去試探, 那個(gè)感覺(jué)就是立即瘋。
最終, 這個(gè)問(wèn)題被BP算法的提出解決。 BP反向傳播算法, 是一種精確的根據(jù)最終實(shí)現(xiàn)的目標(biāo),然后通過(guò)比較當(dāng)下輸出和最終目標(biāo)的差距, 然后一級(jí)反推如何微小的改變各級(jí)連接權(quán)重以減少這種誤差的方法。 這其實(shí)就是梯度下降結(jié)合復(fù)合函數(shù)求導(dǎo)法則的一個(gè)更復(fù)雜的形式。 我們通常把一組剛剛到來(lái)的數(shù)據(jù), 扎成一捆喂給神經(jīng)網(wǎng)絡(luò), 讓它計(jì)算出一個(gè)輸出, 這個(gè)輸出當(dāng)然會(huì)錯(cuò)的很離譜, 然后我們把這個(gè)結(jié)果和我們真正需求的比較得到一個(gè)誤差信號(hào), 這個(gè)誤差信號(hào)會(huì)一級(jí)一級(jí)的改變所有的連接權(quán)重。 每一捆數(shù)據(jù), 被稱為一個(gè)tensor, 都像一個(gè)個(gè)子彈一樣塑造著整個(gè)網(wǎng)絡(luò)。 對(duì)于這個(gè)方法的理解, 最好的辦法是使用一套由tensorflow提供的可視化工具。
當(dāng)然這僅僅是一個(gè)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練的簡(jiǎn)短小節(jié), 當(dāng)你在神經(jīng)網(wǎng)絡(luò)堅(jiān)守的Hinton這樣的大神,事實(shí)上提出過(guò)對(duì)學(xué)習(xí)算法的無(wú)數(shù)改進(jìn)細(xì)節(jié), 才有了它今天的成功。
五 關(guān)于多層神經(jīng)網(wǎng)絡(luò),深有什么好處?
剛剛說(shuō)的方法你可以理解一個(gè)一層的神經(jīng)網(wǎng)絡(luò), 那更多層的神經(jīng)網(wǎng)絡(luò)呢?深層的神經(jīng)網(wǎng)絡(luò)究竟有什么好處?事實(shí)上深度學(xué)習(xí)的深,就是指神經(jīng)網(wǎng)絡(luò)之神,可見(jiàn)這是奧妙的門道。
用一句化說(shuō),一層的神經(jīng)網(wǎng)絡(luò)可以對(duì)特征做一次變換,就如同得到了一組新的特征, 這種特征的變換, 用數(shù)學(xué)家的眼光就是做了一個(gè)坐標(biāo)變換, 兌換到一個(gè)新的空間。
我舉一個(gè)最小的例子讓你理解。 你記得高中學(xué)過(guò)的直角坐標(biāo)系和極坐標(biāo)系吧, 這兩個(gè)坐標(biāo)系之間存在一個(gè)經(jīng)典的坐標(biāo)變換公式。 這就可以看作一個(gè)坐標(biāo)變換。 我們舉一個(gè)例子看,如果要做一個(gè)分類器, 把一些居住在圓形中心的點(diǎn)和它的外周分離開(kāi)來(lái), 那么這個(gè)坐標(biāo)變換就有奇效。
多層網(wǎng)絡(luò), 就代表一個(gè)多次連續(xù)的特征變換,最后會(huì)把數(shù)據(jù)從一種性質(zhì)變到另一個(gè)性質(zhì),從一個(gè)空間拉到另一個(gè)空間。最終總有一個(gè)空間, 這些數(shù)據(jù)呆著最合適。這種行為,簡(jiǎn)稱為表征學(xué)習(xí)(representative learning)。
表征學(xué)習(xí)顧名思義,是要一種特征轉(zhuǎn)化為另外的特征,因?yàn)楹?jiǎn)單的特征一旦發(fā)生關(guān)系就可以構(gòu)成復(fù)雜的特征,剛剛那個(gè)處在領(lǐng)頭的大法官和司令再次變成士兵,給上層的決策者提供信息,隱層神經(jīng)網(wǎng)絡(luò)所作的事情,我們說(shuō)其實(shí)就是對(duì)特征進(jìn)行重組, 然后得到一組新的特征的坐標(biāo)變換, 只不過(guò)這個(gè)變換的形式是可以學(xué)習(xí)的。 我們說(shuō),越限制, 就越自由,為了更好的學(xué)習(xí), 我們會(huì)限制神經(jīng)元對(duì)信息的處理只由兩部分組成, 一個(gè)是用一定的權(quán)重組合上層的特征, 另一個(gè)是通過(guò)某個(gè)樣子的激活函數(shù)把這個(gè)總和變一變。
多層的神經(jīng)網(wǎng)絡(luò), 通過(guò)多次的基變換, 把特征一次次重組,得到越來(lái)越復(fù)雜的新的特征, 這就是深度神經(jīng)網(wǎng)絡(luò)作用的機(jī)制。 某種程度上, 它把這種層級(jí)特征強(qiáng)加給了它要識(shí)別的事物, 但是假定事物本身也是這種按照一層層的方法搭建起來(lái), 那么神經(jīng)網(wǎng)絡(luò)就會(huì)取得奇效。
哪些事物是有這種層級(jí)結(jié)構(gòu)的呢? 我們說(shuō),所有的感知信號(hào)都是, 從視覺(jué), 到聽(tīng)覺(jué),到語(yǔ)言。假定你看著一個(gè)屏幕, 你真正看到的是每個(gè)像素點(diǎn), 而最終你要組合成為一個(gè)可以認(rèn)知的圖象。 假定你聽(tīng)著的是聲音, 你最終需要分辨出一個(gè)個(gè)單詞 ,句式,直到語(yǔ)言。
認(rèn)知科學(xué)里說(shuō),抽象使得不同的事物可以在更深的層次上被聯(lián)系起來(lái), 的就是說(shuō), 不同層次的函數(shù)迭代,產(chǎn)生的新的空間(某種程度也是降維,比如圖形處理中),使得原先的距離概念被打破,具體怎樣被打破。 這正是人腦處理信息的本質(zhì)。 實(shí)驗(yàn)表明,越靠近感官的神經(jīng)元處理的信息就具體, 比如顏色,亮度, 而經(jīng)過(guò)多級(jí)處理,達(dá)到皮層之后, 我們的神經(jīng)元就可以對(duì)比較抽象的實(shí)體,如人名,物體的種類敏感。
當(dāng)然,這只是最形象的一個(gè)描述,關(guān)于增加深度相比增加寬度對(duì)神經(jīng)網(wǎng)絡(luò)功能的好處,是整個(gè)深度學(xué)習(xí)問(wèn)題的焦點(diǎn)問(wèn)題之一。因此引出了幾個(gè)不同的數(shù)學(xué)觀點(diǎn), 有機(jī)會(huì)給大家總結(jié)。
訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)是困吶的,由于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練里有大量的復(fù)雜求導(dǎo)運(yùn)算, 我們是不是函數(shù)要寫死為止? 其實(shí)不是, 我們有一個(gè)強(qiáng)大的框架, 就是tensorflow,讓你的整個(gè)求導(dǎo)過(guò)程十分容易。你只需要寫出你的目標(biāo)函數(shù)cost function,然后簡(jiǎn)簡(jiǎn)單單的調(diào)用tensorflow內(nèi)部的optimisor就可以了。
六 神經(jīng)網(wǎng)絡(luò)動(dòng)物園
神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)這些年的進(jìn)化,已經(jīng)是一個(gè)大家族。 我們來(lái)看幾個(gè)具體的神經(jīng)網(wǎng)絡(luò)
Auto-encoder 自編碼器:
最早成功的一種深度神經(jīng)網(wǎng)絡(luò),自編碼器意如其名, 其實(shí)做的就是對(duì)數(shù)據(jù)進(jìn)行編碼, 或者壓縮。 這種網(wǎng)絡(luò)通常具有的特點(diǎn)是輸出的長(zhǎng)度或者說(shuō)大小遠(yuǎn)小于輸入,但是神奇的是, 這個(gè)輸出卻保留了數(shù)據(jù)種的大部分信息。 你是不是想到了上節(jié)課介紹的PCA了呢? 是的, 這就是一種降維的模型。 這個(gè)模型的實(shí)質(zhì), 也就是一個(gè)復(fù)雜, 或者說(shuō)是非線性的降維操作, 比如說(shuō)你把一張圖象壓成很簡(jiǎn)單的編碼。 由于這種輸入多輸出少的性質(zhì), 自編碼器的形狀形如一個(gè)下夸上窄的漏斗, 數(shù)據(jù)從夸的一面進(jìn)來(lái), 出去的就是壓縮的精華。 自編碼器之所以在神經(jīng)網(wǎng)絡(luò)的進(jìn)化歷史里舉足輕重, 是因?yàn)樗诨卮鹨粋€(gè)很核心的問(wèn)題, 那就是在變化的信息里那些是不變的, 這些不變的東西往往也就是最重要的東西。比如說(shuō)人臉, 你把1萬(wàn)張不同的人臉輸入到網(wǎng)絡(luò)里, 這些人類分屬于十個(gè)人, 那么按說(shuō), 很多照片無(wú)非是一個(gè)人的不同狀態(tài),它的不變性就是這個(gè)人本身。 這個(gè)網(wǎng)絡(luò)能夠把數(shù)據(jù)最終一步步的集中到十個(gè)維度就夠了, 這樣, 最終可能用一個(gè)十位數(shù)的數(shù)字就可以壓縮整個(gè)數(shù)據(jù)集。 而這, 正是神經(jīng)網(wǎng)絡(luò), 甚至是人類理解事物的關(guān)鍵, 那就是找出紛繁變化事物里的不變性, 它對(duì)應(yīng)的正是一個(gè)概念。 抓住了概念, 就抓住了從具象到抽象的過(guò)程, 抓住了知識(shí),抓住了人認(rèn)知的關(guān)鍵所在。 深度學(xué)習(xí)大師Hinton早期的核心工作,正是圍繞自編碼器。
卷積神經(jīng)網(wǎng)絡(luò):
卷積神經(jīng)網(wǎng)絡(luò)就是模擬人類是視覺(jué)的一種深度神經(jīng)網(wǎng)絡(luò)。這個(gè)網(wǎng)絡(luò)的特點(diǎn)是能夠把圖象數(shù)據(jù),像photoshop 里的濾鏡一樣, 被過(guò)濾成某種特征圖,比如紋理圖, 這些低級(jí)的特征圖, 將再次被過(guò)濾, 得到一個(gè)新的特征圖, 這個(gè)特征圖的特點(diǎn)就是更抽象, 還有更多的剛剛講過(guò)的概念性的特征。 比如一個(gè)物體的形狀輪廓。 直到最后一層, 得到對(duì)某類物體概念的認(rèn)知。 這就是人類視覺(jué)知識(shí)形成的過(guò)程。 也是我們下次課的重點(diǎn)。
含時(shí)間的神經(jīng)網(wǎng)絡(luò):
神經(jīng)網(wǎng)絡(luò)不僅能夠描述靜態(tài)的各個(gè)特征之間的關(guān)系, 而且能夠描述特征(這里更好叫因子)之間在時(shí)間上的復(fù)雜相互作用關(guān)系, 一個(gè)神經(jīng)網(wǎng)絡(luò)的做出的含時(shí)間過(guò)程, 最好的例子就是含有證據(jù)積累的決策過(guò)程。 即使是單個(gè)神經(jīng)元, 也可以把不同時(shí)間的信息積累起來(lái)做個(gè)決定, 而動(dòng)態(tài)的神經(jīng)網(wǎng)絡(luò), 就可以更好的把這些證據(jù)總體的匯集起來(lái)。
總的來(lái)說(shuō) , 幾個(gè)神經(jīng)元組成的網(wǎng)絡(luò), 可以像一個(gè)信息的蓄水池一樣, 通過(guò)互相喊話, 把過(guò)去的信息在自己人之間流傳起來(lái), 從而產(chǎn)生類似于人的記憶的效應(yīng), 這些通過(guò)特定方法連接在一起的神經(jīng)元, 就可以形成人的工作記憶或內(nèi)隱記憶, 而同時(shí), 也可以幫我們?cè)O(shè)定出處理和時(shí)間有關(guān)信號(hào)的神經(jīng)網(wǎng)絡(luò)工具, 這就是RNN – LSTM家族, 以及其它的長(zhǎng)時(shí)間記憶網(wǎng)絡(luò)。
在深度時(shí)間序列處理種扮演重要核心角色的LSTM,其創(chuàng)始人schmidhuber卻無(wú)緣此次圖靈獎(jiǎng)。
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4787瀏覽量
101382 -
人工智能
+關(guān)注
關(guān)注
1799文章
47965瀏覽量
241304 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8458瀏覽量
133239
原文標(biāo)題:深度學(xué)習(xí)背后的基礎(chǔ)-神經(jīng)網(wǎng)絡(luò)揭秘
文章出處:【微信號(hào):AItists,微信公眾號(hào):人工智能學(xué)家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
詳解深度學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用

評(píng)論