0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一種簡單的,循序的方式講解神經(jīng)網(wǎng)絡(luò)

mK5P_AItists ? 來源:未知 ? 作者:李倩 ? 2018-08-16 18:17 ? 次閱讀

摘要:神經(jīng)網(wǎng)絡(luò)是一門重要的機(jī)器學(xué)習(xí)技術(shù)。它是目前最為火熱的研究方向–深度學(xué)習(xí)的基礎(chǔ)。

神經(jīng)網(wǎng)絡(luò)是一門重要的機(jī)器學(xué)習(xí)技術(shù)。它是目前最為火熱的研究方向–深度學(xué)習(xí)的基礎(chǔ)。學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)不僅可以讓你掌握一門強(qiáng)大的機(jī)器學(xué)習(xí)方法,同時也可以更好地幫助你理解深度學(xué)習(xí)技術(shù)。

本文以一種簡單的,循序的方式講解神經(jīng)網(wǎng)絡(luò)。適合對神經(jīng)網(wǎng)絡(luò)了解不多的同學(xué)。本文對閱讀沒有一定的前提要求,但是懂一些機(jī)器學(xué)習(xí)基礎(chǔ)會更好地幫助理解本文。

神經(jīng)網(wǎng)絡(luò)是一種模擬人腦的神經(jīng)網(wǎng)絡(luò)以期能夠?qū)崿F(xiàn)類人工智能的機(jī)器學(xué)習(xí)技術(shù)。人腦中的神經(jīng)網(wǎng)絡(luò)是一個非常復(fù)雜的組織。成人的大腦中估計(jì)有1000億個神經(jīng)元之多。

那么機(jī)器學(xué)習(xí)中的神經(jīng)網(wǎng)絡(luò)是如何實(shí)現(xiàn)這種模擬的,并且達(dá)到一個驚人的良好效果的?通過本文,你可以了解到這些問題的答案,同時還能知道神經(jīng)網(wǎng)絡(luò)的歷史,以及如何較好地學(xué)習(xí)它。

圖1 人腦神經(jīng)網(wǎng)絡(luò)

由于本文較長,為方便讀者,以下是本文的目錄:

一.前言

二.神經(jīng)元

三.單層神經(jīng)網(wǎng)絡(luò)(感知器)

四.兩層神經(jīng)網(wǎng)絡(luò)(多層感知器)

五.多層神經(jīng)網(wǎng)絡(luò)(深度學(xué)習(xí))

六.回顧

七.展望

八.總結(jié)

九.后記

十.備注

一、前言

讓我們來看一個經(jīng)典的神經(jīng)網(wǎng)絡(luò)。這是一個包含三個層次的神經(jīng)網(wǎng)絡(luò)。紅色的是輸入層,綠色的是輸出層,紫色的是中間層(也叫隱藏層)。輸入層有3個輸入單元,隱藏層有4個單元,輸出層有2個單元。后文中,我們統(tǒng)一使用這種顏色來表達(dá)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。

圖2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖

在開始介紹前,有一些知識可以先記在心里:

設(shè)計(jì)一個神經(jīng)網(wǎng)絡(luò)時,輸入層與輸出層的節(jié)點(diǎn)數(shù)往往是固定的,中間層則可以自由指定;

神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖中的拓?fù)渑c箭頭代表著預(yù)測過程時數(shù)據(jù)的流向,跟訓(xùn)練時的數(shù)據(jù)流有一定的區(qū)別;

結(jié)構(gòu)圖里的關(guān)鍵不是圓圈(代表“神經(jīng)元”),而是連接線(代表“神經(jīng)元”之間的連接)。每個連接線對應(yīng)一個不同的權(quán)重(其值稱為權(quán)值),這是需要訓(xùn)練得到的。

除了從左到右的形式表達(dá)的結(jié)構(gòu)圖,還有一種常見的表達(dá)形式是從下到上來表示一個神經(jīng)網(wǎng)絡(luò)。這時候,輸入層在圖的最下方。輸出層則在圖的最上方,如下圖:

圖3 從下到上的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖

從左到右的表達(dá)形式以Andrew Ng和LeCun的文獻(xiàn)使用較多,Caffe里使用的則是從下到上的表達(dá)。在本文中使用Andrew Ng代表的從左到右的表達(dá)形式。

下面從簡單的神經(jīng)元開始說起,一步一步介紹神經(jīng)網(wǎng)絡(luò)復(fù)雜結(jié)構(gòu)的形成。

二、神經(jīng)元

1.引子

對于神經(jīng)元的研究由來已久,1904年生物學(xué)家就已經(jīng)知曉了神經(jīng)元的組成結(jié)構(gòu)。

一個神經(jīng)元通常具有多個樹突,主要用來接受傳入信息;而軸突只有一條,軸突尾端有許多軸突末梢可以給其他多個神經(jīng)元傳遞信息。軸突末梢跟其他神經(jīng)元的樹突產(chǎn)生連接,從而傳遞信號。這個連接的位置在生物學(xué)上叫做“突觸”。

人腦中的神經(jīng)元形狀可以用下圖做簡單的說明:

圖4 神經(jīng)元

1943年,心理學(xué)家McCulloch和數(shù)學(xué)家Pitts參考了生物神經(jīng)元的結(jié)構(gòu),發(fā)表了抽象的神經(jīng)元模型MP。在下文中,我們會具體介紹神經(jīng)元模型。

圖5 Warren McCulloch

Walter Pitts

2.結(jié)構(gòu)

神經(jīng)元模型是一個包含輸入,輸出與計(jì)算功能的模型。輸入可以類比為神經(jīng)元的樹突,而輸出可以類比為神經(jīng)元的軸突,計(jì)算則可以類比為細(xì)胞核。

下圖是一個典型的神經(jīng)元模型:包含有3個輸入,1個輸出,以及2個計(jì)算功能。

注意中間的箭頭線。這些線稱為“連接”。每個上有一個“權(quán)值”。

圖6 神經(jīng)元模型

連接是神經(jīng)元中最重要的東西。每一個連接上都有一個權(quán)重。

一個神經(jīng)網(wǎng)絡(luò)的訓(xùn)練算法就是讓權(quán)重的值調(diào)整到最佳,以使得整個網(wǎng)絡(luò)的預(yù)測效果最好。

我們使用a來表示輸入,用w來表示權(quán)值。一個表示連接的有向箭頭可以這樣理解:在初端,傳遞的信號大小仍然是a,端中間有加權(quán)參數(shù)w,經(jīng)過這個加權(quán)后的信號會變成a*w,因此在連接的末端,信號的大小就變成了a*w。

在其他繪圖模型里,有向箭頭可能表示的是值的不變傳遞。而在神經(jīng)元模型里,每個有向箭頭表示的是值的加權(quán)傳遞。

圖7 連接(connection)

如果我們將神經(jīng)元圖中的所有變量用符號表示,并且寫出輸出的計(jì)算公式的話,就是下圖。

圖8 神經(jīng)元計(jì)算

可見z是在輸入和權(quán)值的線性加權(quán)和疊加了一個函數(shù)g的值。在MP模型里,函數(shù)g是sgn函數(shù),也就是取符號函數(shù)。這個函數(shù)當(dāng)輸入大于0時,輸出1,否則輸出0。

下面對神經(jīng)元模型的圖進(jìn)行一些擴(kuò)展。首先將sum函數(shù)與sgn函數(shù)合并到一個圓圈里,代表神經(jīng)元的內(nèi)部計(jì)算。其次,把輸入a與輸出z寫到連接線的左上方,便于后面畫復(fù)雜的網(wǎng)絡(luò)。最后說明,一個神經(jīng)元可以引出多個代表輸出的有向箭頭,但值都是一樣的。

神經(jīng)元可以看作一個計(jì)算與存儲單元。計(jì)算是神經(jīng)元對其的輸入進(jìn)行計(jì)算功能。存儲是神經(jīng)元會暫存計(jì)算結(jié)果,并傳遞到下一層。

圖9 神經(jīng)元擴(kuò)展

當(dāng)我們用“神經(jīng)元”組成網(wǎng)絡(luò)以后,描述網(wǎng)絡(luò)中的某個“神經(jīng)元”時,我們更多地會用“單元”(unit)來指代。同時由于神經(jīng)網(wǎng)絡(luò)的表現(xiàn)形式是一個有向圖,有時也會用“節(jié)點(diǎn)”(node)來表達(dá)同樣的意思。

3.效果

神經(jīng)元模型的使用可以這樣理解:

我們有一個數(shù)據(jù),稱之為樣本。樣本有四個屬性,其中三個屬性已知,一個屬性未知。我們需要做的就是通過三個已知屬性預(yù)測未知屬性。

具體辦法就是使用神經(jīng)元的公式進(jìn)行計(jì)算。三個已知屬性的值是a1,a2,a3,未知屬性的值是z。z可以通過公式計(jì)算出來。

這里,已知的屬性稱之為特征,未知的屬性稱之為目標(biāo)。假設(shè)特征與目標(biāo)之間確實(shí)是線性關(guān)系,并且我們已經(jīng)得到表示這個關(guān)系的權(quán)值w1,w2,w3。那么,我們就可以通過神經(jīng)元模型預(yù)測新樣本的目標(biāo)。

4.影響

1943年發(fā)布的MP模型,雖然簡單,但已經(jīng)建立了神經(jīng)網(wǎng)絡(luò)大廈的地基。但是,MP模型中,權(quán)重的值都是預(yù)先設(shè)置的,因此不能學(xué)習(xí)。

1949年心理學(xué)家Hebb提出了Hebb學(xué)習(xí)率,認(rèn)為人腦神經(jīng)細(xì)胞的突觸(也就是連接)上的強(qiáng)度上可以變化的。于是計(jì)算科學(xué)家們開始考慮用調(diào)整權(quán)值的方法來讓機(jī)器學(xué)習(xí)。這為后面的學(xué)習(xí)算法奠定了基礎(chǔ)。

圖10 Donald Olding Hebb

盡管神經(jīng)元模型與Hebb學(xué)習(xí)律都已誕生,但限于當(dāng)時的計(jì)算機(jī)能力,直到接近10年后,第一個真正意義的神經(jīng)網(wǎng)絡(luò)才誕生。

三、單層神經(jīng)網(wǎng)絡(luò)(感知器)

1.引子

1958年,計(jì)算科學(xué)家Rosenblatt提出了由兩層神經(jīng)元組成的神經(jīng)網(wǎng)絡(luò)。他給它起了一個名字–“感知器”(Perceptron)(有的文獻(xiàn)翻譯成“感知機(jī)”,下文統(tǒng)一用“感知器”來指代)。

感知器是當(dāng)時首個可以學(xué)習(xí)的人工神經(jīng)網(wǎng)絡(luò)。Rosenblatt現(xiàn)場演示了其學(xué)習(xí)識別簡單圖像的過程,在當(dāng)時的社會引起了轟動。

人們認(rèn)為已經(jīng)發(fā)現(xiàn)了智能的奧秘,許多學(xué)者和科研機(jī)構(gòu)紛紛投入到神經(jīng)網(wǎng)絡(luò)的研究中。美國軍方大力資助了神經(jīng)網(wǎng)絡(luò)的研究,并認(rèn)為神經(jīng)網(wǎng)絡(luò)比“原子彈工程”更重要。這段時間直到1969年才結(jié)束,這個時期可以看作神經(jīng)網(wǎng)絡(luò)的第一次高潮。

圖11 Rosenblat與感知器

2.結(jié)構(gòu)

下面來說明感知器模型。

在原來MP模型的“輸入”位置添加神經(jīng)元節(jié)點(diǎn),標(biāo)志其為“輸入單元”。其余不變,于是我們就有了下圖:從本圖開始,我們將權(quán)值w1, w2, w3寫到“連接線”的中間。

圖12 單層神經(jīng)網(wǎng)絡(luò)

在“感知器”中,有兩個層次。分別是輸入層和輸出層。輸入層里的“輸入單元”只負(fù)責(zé)傳輸數(shù)據(jù),不做計(jì)算。輸出層里的“輸出單元”則需要對前面一層的輸入進(jìn)行計(jì)算。

我們把需要計(jì)算的層次稱之為“計(jì)算層”,并把擁有一個計(jì)算層的網(wǎng)絡(luò)稱之為“單層神經(jīng)網(wǎng)絡(luò)”。有一些文獻(xiàn)會按照網(wǎng)絡(luò)擁有的層數(shù)來命名,例如把“感知器”稱為兩層神經(jīng)網(wǎng)絡(luò)。但在本文里,我們根據(jù)計(jì)算層的數(shù)量來命名。

假如我們要預(yù)測的目標(biāo)不再是一個值,而是一個向量,例如[2,3]。那么可以在輸出層再增加一個“輸出單元”。

下圖顯示了帶有兩個輸出單元的單層神經(jīng)網(wǎng)絡(luò),其中輸出單元z1的計(jì)算公式如下圖。

圖13 單層神經(jīng)網(wǎng)絡(luò)(Z1)

可以看到,z1的計(jì)算跟原先的z并沒有區(qū)別。

我們已知一個神經(jīng)元的輸出可以向多個神經(jīng)元傳遞,因此z2的計(jì)算公式如下圖。

圖14 單層神經(jīng)網(wǎng)絡(luò)(Z2)

可以看到,z2的計(jì)算中除了三個新的權(quán)值:w4,w5,w6以外,其他與z1是一樣的。

整個網(wǎng)絡(luò)的輸出如下圖。

圖15 單層神經(jīng)網(wǎng)絡(luò)(Z1和Z2)

目前的表達(dá)公式有一點(diǎn)不讓人滿意的就是:w4,w5,w6是后來加的,很難表現(xiàn)出跟原先的w1,w2,w3的關(guān)系。

因此我們改用二維的下標(biāo),用wx,y來表達(dá)一個權(quán)值。下標(biāo)中的x代表后一層神經(jīng)元的序號,而y代表前一層神經(jīng)元的序號(序號的順序從上到下)。

例如,w1,2代表后一層的第1個神經(jīng)元與前一層的第2個神經(jīng)元的連接的權(quán)值(這種標(biāo)記方式參照了Andrew Ng的課件)。根據(jù)以上方法標(biāo)記,我們有了下圖。

圖16 單層神經(jīng)網(wǎng)絡(luò)(擴(kuò)展)

如果我們仔細(xì)看輸出的計(jì)算公式,會發(fā)現(xiàn)這兩個公式就是線性代數(shù)方程組。因此可以用矩陣乘法來表達(dá)這兩個公式。

例如,輸入的變量是[a1,a2,a3]T(代表由a1,a2,a3組成的列向量),用向量a來表示。方程的左邊是[z1,z2]T,用向量z來表示。

系數(shù)則是矩陣W(2行3列的矩陣,排列形式與公式中的一樣)。

于是,輸出公式可以改寫成:

g(W*a) =z;

這個公式就是神經(jīng)網(wǎng)絡(luò)中從前一層計(jì)算后一層的矩陣運(yùn)算。

3.效果

與神經(jīng)元模型不同,感知器中的權(quán)值是通過訓(xùn)練得到的。因此,根據(jù)以前的知識我們知道,感知器類似一個邏輯回歸模型,可以做線性分類任務(wù)。

我們可以用決策分界來形象的表達(dá)分類的效果。決策分界就是在二維的數(shù)據(jù)平面中劃出一條直線,當(dāng)數(shù)據(jù)的維度是3維的時候,就是劃出一個平面,當(dāng)數(shù)據(jù)的維度是n維時,就是劃出一個n-1維的超平面。

下圖顯示了在二維平面中劃出決策分界的效果,也就是感知器的分類效果。

圖17 單層神經(jīng)網(wǎng)絡(luò)(決策分界)

4.影響

感知器只能做簡單的線性分類任務(wù)。但是當(dāng)時的人們熱情太過于高漲,并沒有人清醒的認(rèn)識到這點(diǎn)。于是,當(dāng)人工智能領(lǐng)域的巨擘Minsky指出這點(diǎn)時,事態(tài)就發(fā)生了變化。

Minsky在1969年出版了一本叫《Perceptron》的書,里面用詳細(xì)的數(shù)學(xué)證明了感知器的弱點(diǎn),尤其是感知器對XOR(異或)這樣的簡單分類任務(wù)都無法解決。

Minsky認(rèn)為,如果將計(jì)算層增加到兩層,計(jì)算量則過大,而且沒有有效的學(xué)習(xí)算法。所以,他認(rèn)為研究更深層的網(wǎng)絡(luò)是沒有價(jià)值的。

圖18 Marvin Minsky

由于Minsky的巨大影響力以及書中呈現(xiàn)的悲觀態(tài)度,讓很多學(xué)者和實(shí)驗(yàn)室紛紛放棄了神經(jīng)網(wǎng)絡(luò)的研究。神經(jīng)網(wǎng)絡(luò)的研究陷入了冰河期。這個時期又被稱為“AI winter”。

接近10年以后,對于兩層神經(jīng)網(wǎng)絡(luò)的研究才帶來神經(jīng)網(wǎng)絡(luò)的復(fù)蘇。

四、兩層神經(jīng)網(wǎng)絡(luò)(多層感知器)

1.引子

兩層神經(jīng)網(wǎng)絡(luò)是本文的重點(diǎn),因?yàn)檎窃谶@時候,神經(jīng)網(wǎng)絡(luò)開始了大范圍的推廣與使用。

Minsky說過單層神經(jīng)網(wǎng)絡(luò)無法解決異或問題。但是當(dāng)增加一個計(jì)算層以后,兩層神經(jīng)網(wǎng)絡(luò)不僅可以解決異或問題,而且具有非常好的非線性分類效果。不過兩層神經(jīng)網(wǎng)絡(luò)的計(jì)算是一個問題,沒有一個較好的解法。

1986年,Rumelhar和Hinton等人提出了反向傳播(Backpropagation,BP)算法,解決了兩層神經(jīng)網(wǎng)絡(luò)所需要的復(fù)雜計(jì)算量問題,從而帶動了業(yè)界使用兩層神經(jīng)網(wǎng)絡(luò)研究的熱潮。目前,大量的教授神經(jīng)網(wǎng)絡(luò)的教材,都是重點(diǎn)介紹兩層(帶一個隱藏層)神經(jīng)網(wǎng)絡(luò)的內(nèi)容。

這時候的Hinton還很年輕,30年以后,正是他重新定義了神經(jīng)網(wǎng)絡(luò),帶來了神經(jīng)網(wǎng)絡(luò)復(fù)蘇的又一春。

圖19 DavidRumelhart

Geoffery Hinton

2.結(jié)構(gòu)

兩層神經(jīng)網(wǎng)絡(luò)除了包含一個輸入層,一個輸出層以外,還增加了一個中間層。此時,中間層和輸出層都是計(jì)算層。我們擴(kuò)展上節(jié)的單層神經(jīng)網(wǎng)絡(luò),在右邊新加一個層次(只含有一個節(jié)點(diǎn))。

現(xiàn)在,我們的權(quán)值矩陣增加到了兩個,我們用上標(biāo)來區(qū)分不同層次之間的變量。

例如ax(y)代表第y層的第x個節(jié)點(diǎn)。z1,z2變成了a1(2),a2(2)。下圖給出了a1(2),a2(2)的計(jì)算公式。

圖20 兩層神經(jīng)網(wǎng)絡(luò)(中間層計(jì)算)

計(jì)算最終輸出z的方式是利用了中間層的a1(2),a2(2)和第二個權(quán)值矩陣計(jì)算得到的,如下圖。

圖21 兩層神經(jīng)網(wǎng)絡(luò)(輸出層計(jì)算)

假設(shè)我們的預(yù)測目標(biāo)是一個向量,那么與前面類似,只需要在“輸出層”再增加節(jié)點(diǎn)即可。

我們使用向量和矩陣來表示層次中的變量。a(1),a(2),z是網(wǎng)絡(luò)中傳輸?shù)南蛄繑?shù)據(jù)。W(1)和W(2)是網(wǎng)絡(luò)的矩陣參數(shù)。如下圖。

圖22 兩層神經(jīng)網(wǎng)絡(luò)(向量形式)

使用矩陣運(yùn)算來表達(dá)整個計(jì)算公式的話如下:

g(W(1)*a(1)) =a(2);

g(W(2)*a(2)) =z;

由此可見,使用矩陣運(yùn)算來表達(dá)是很簡潔的,而且也不會受到節(jié)點(diǎn)數(shù)增多的影響(無論有多少節(jié)點(diǎn)參與運(yùn)算,乘法兩端都只有一個變量)。因此神經(jīng)網(wǎng)絡(luò)的教程中大量使用矩陣運(yùn)算來描述。

需要說明的是,至今為止,我們對神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖的討論中都沒有提到偏置節(jié)點(diǎn)(bias unit)。事實(shí)上,這些節(jié)點(diǎn)是默認(rèn)存在的。它本質(zhì)上是一個只含有存儲功能,且存儲值永遠(yuǎn)為1的單元。在神經(jīng)網(wǎng)絡(luò)的每個層次中,除了輸出層以外,都會含有這樣一個偏置單元。正如線性回歸模型與邏輯回歸模型中的一樣。

偏置單元與后一層的所有節(jié)點(diǎn)都有連接,我們設(shè)這些參數(shù)值為向量b,稱之為偏置。如下圖。

圖23 兩層神經(jīng)網(wǎng)絡(luò)(考慮偏置節(jié)點(diǎn))

可以看出,偏置節(jié)點(diǎn)很好認(rèn),因?yàn)槠錄]有輸入(前一層中沒有箭頭指向它)。有些神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖中會把偏置節(jié)點(diǎn)明顯畫出來,有些不會。一般情況下,我們都不會明確畫出偏置節(jié)點(diǎn)。

在考慮了偏置以后的一個神經(jīng)網(wǎng)絡(luò)的矩陣運(yùn)算如下:

g(W(1)*a(1)+b(1)) =a(2);

g(W(2)*a(2)+b(2)) =z;

需要說明的是,在兩層神經(jīng)網(wǎng)絡(luò)中,我們不再使用sgn函數(shù)作為函數(shù)g,而是使用平滑函數(shù)sigmoid作為函數(shù)g。我們把函數(shù)g也稱作激活函數(shù)(activefunction)。

事實(shí)上,神經(jīng)網(wǎng)絡(luò)的本質(zhì)就是通過參數(shù)與激活函數(shù)來擬合特征與目標(biāo)之間的真實(shí)函數(shù)關(guān)系。初學(xué)者可能認(rèn)為畫神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖是為了在程序中實(shí)現(xiàn)這些圓圈與線,但在一個神經(jīng)網(wǎng)絡(luò)的程序中,既沒有“線”這個對象,也沒有“單元”這個對象。實(shí)現(xiàn)一個神經(jīng)網(wǎng)絡(luò)最需要的是線性代數(shù)庫。

3.效果

與單層神經(jīng)網(wǎng)絡(luò)不同。理論證明,兩層神經(jīng)網(wǎng)絡(luò)可以無限逼近任意連續(xù)函數(shù)。

這是什么意思呢?也就是說,面對復(fù)雜的非線性分類任務(wù),兩層(帶一個隱藏層)神經(jīng)網(wǎng)絡(luò)可以分類的很好。

下面就是一個例子(此兩圖來自colah的博客),紅色的線與藍(lán)色的線代表數(shù)據(jù)。而紅色區(qū)域和藍(lán)色區(qū)域代表由神經(jīng)網(wǎng)絡(luò)劃開的區(qū)域,兩者的分界線就是決策分界。

圖24 兩層神經(jīng)網(wǎng)絡(luò)(決策分界)

可以看到,這個兩層神經(jīng)網(wǎng)絡(luò)的決策分界是非常平滑的曲線,而且分類的很好。

有趣的是,前面已經(jīng)學(xué)到過,單層網(wǎng)絡(luò)只能做線性分類任務(wù)。而兩層神經(jīng)網(wǎng)絡(luò)中的后一層也是線性分類層,應(yīng)該只能做線性分類任務(wù)。為什么兩個線性分類任務(wù)結(jié)合就可以做非線性分類任務(wù)?

我們可以把輸出層的決策分界單獨(dú)拿出來看一下。就是下圖。

圖25 兩層神經(jīng)網(wǎng)絡(luò)(空間變換)

可以看到,輸出層的決策分界仍然是直線。關(guān)鍵就是,從輸入層到隱藏層時,數(shù)據(jù)發(fā)生了空間變換。也就是說,兩層神經(jīng)網(wǎng)絡(luò)中,隱藏層對原始的數(shù)據(jù)進(jìn)行了一個空間變換,使其可以被線性分類,然后輸出層的決策分界劃出了一個線性分類分界線,對其進(jìn)行分類。

這樣就導(dǎo)出了兩層神經(jīng)網(wǎng)絡(luò)可以做非線性分類的關(guān)鍵–隱藏層。聯(lián)想到我們一開始推導(dǎo)出的矩陣公式,我們知道,矩陣和向量相乘,本質(zhì)上就是對向量的坐標(biāo)空間進(jìn)行一個變換。因此,隱藏層的參數(shù)矩陣的作用就是使得數(shù)據(jù)的原始坐標(biāo)空間從線性不可分,轉(zhuǎn)換成了線性可分。

兩層神經(jīng)網(wǎng)絡(luò)通過兩層的線性模型模擬了數(shù)據(jù)內(nèi)真實(shí)的非線性函數(shù)。因此,多層的神經(jīng)網(wǎng)絡(luò)的本質(zhì)就是復(fù)雜函數(shù)擬合。

下面來討論一下隱藏層的節(jié)點(diǎn)數(shù)設(shè)計(jì)。在設(shè)計(jì)一個神經(jīng)網(wǎng)絡(luò)時,輸入層的節(jié)點(diǎn)數(shù)需要與特征的維度匹配,輸出層的節(jié)點(diǎn)數(shù)要與目標(biāo)的維度匹配。而中間層的節(jié)點(diǎn)數(shù),卻是由設(shè)計(jì)者指定的。因此,“自由”把握在設(shè)計(jì)者的手中。但是,節(jié)點(diǎn)數(shù)設(shè)置的多少,卻會影響到整個模型的效果。如何決定這個自由層的節(jié)點(diǎn)數(shù)呢?目前業(yè)界沒有完善的理論來指導(dǎo)這個決策。一般是根據(jù)經(jīng)驗(yàn)來設(shè)置。較好的方法就是預(yù)先設(shè)定幾個可選值,通過切換這幾個值來看整個模型的預(yù)測效果,選擇效果最好的值作為最終選擇。這種方法又叫做GridSearch(網(wǎng)格搜索)。

了解了兩層神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)以后,我們就可以看懂其它類似的結(jié)構(gòu)圖。例如EasyPR字符識別網(wǎng)絡(luò)架構(gòu)(下圖)。

圖26 EasyPR字符識別網(wǎng)絡(luò)

EasyPR使用了字符的圖像去進(jìn)行字符文字的識別。輸入是120維的向量。輸出是要預(yù)測的文字類別,共有65類。根據(jù)實(shí)驗(yàn),我們測試了一些隱藏層數(shù)目,發(fā)現(xiàn)當(dāng)值為40時,整個網(wǎng)絡(luò)在測試集上的效果較好,因此選擇網(wǎng)絡(luò)的最終結(jié)構(gòu)就是120,40,65。

4.訓(xùn)練

下面簡單介紹一下兩層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。

在Rosenblat提出的感知器模型中,模型中的參數(shù)可以被訓(xùn)練,但是使用的方法較為簡單,并沒有使用目前機(jī)器學(xué)習(xí)中通用的方法,這導(dǎo)致其擴(kuò)展性與適用性非常有限。從兩層神經(jīng)網(wǎng)絡(luò)開始,神經(jīng)網(wǎng)絡(luò)的研究人員開始使用機(jī)器學(xué)習(xí)相關(guān)的技術(shù)進(jìn)行神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。例如用大量的數(shù)據(jù)(1000-10000左右),使用算法進(jìn)行優(yōu)化等等,從而使得模型訓(xùn)練可以獲得性能與數(shù)據(jù)利用上的雙重優(yōu)勢。

機(jī)器學(xué)習(xí)模型訓(xùn)練的目的,就是使得參數(shù)盡可能的與真實(shí)的模型逼近。具體做法是這樣的。首先給所有參數(shù)賦上隨機(jī)值。我們使用這些隨機(jī)生成的參數(shù)值,來預(yù)測訓(xùn)練數(shù)據(jù)中的樣本。樣本的預(yù)測目標(biāo)為yp,真實(shí)目標(biāo)為y。那么,定義一個值loss,計(jì)算公式如下。

loss = (yp- y)2

這個值稱之為損失(loss),我們的目標(biāo)就是使對所有訓(xùn)練數(shù)據(jù)的損失和盡可能的小。

如果將先前的神經(jīng)網(wǎng)絡(luò)預(yù)測的矩陣公式帶入到y(tǒng)p中(因?yàn)橛衵=yp),那么我們可以把損失寫為關(guān)于參數(shù)(parameter)的函數(shù),這個函數(shù)稱之為損失函數(shù)(loss function)。下面的問題就是求:如何優(yōu)化參數(shù),能夠讓損失函數(shù)的值最小。

此時這個問題就被轉(zhuǎn)化為一個優(yōu)化問題。一個常用方法就是高等數(shù)學(xué)中的求導(dǎo),但是這里的問題由于參數(shù)不止一個,求導(dǎo)后計(jì)算導(dǎo)數(shù)等于0的運(yùn)算量很大,所以一般來說解決這個優(yōu)化問題使用的是梯度下降算法。梯度下降算法每次計(jì)算參數(shù)在當(dāng)前的梯度,然后讓參數(shù)向著梯度的反方向前進(jìn)一段距離,不斷重復(fù),直到梯度接近零時截止。一般這個時候,所有的參數(shù)恰好達(dá)到使損失函數(shù)達(dá)到一個最低值的狀態(tài)。

在神經(jīng)網(wǎng)絡(luò)模型中,由于結(jié)構(gòu)復(fù)雜,每次計(jì)算梯度的代價(jià)很大。因此還需要使用反向傳播算法。反向傳播算法是利用了神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行的計(jì)算。不一次計(jì)算所有參數(shù)的梯度,而是從后往前。首先計(jì)算輸出層的梯度,然后是第二個參數(shù)矩陣的梯度,接著是中間層的梯度,再然后是第一個參數(shù)矩陣的梯度,最后是輸入層的梯度。計(jì)算結(jié)束以后,所要的兩個參數(shù)矩陣的梯度就都有了。

反向傳播算法可以直觀的理解為下圖。梯度的計(jì)算從后往前,一層層反向傳播。前綴E代表著相對導(dǎo)數(shù)的意思。

圖27 反向傳播算法

反向傳播算法的啟示是數(shù)學(xué)中的鏈?zhǔn)椒▌t。在此需要說明的是,盡管早期神經(jīng)網(wǎng)絡(luò)的研究人員努力從生物學(xué)中得到啟發(fā),但從BP算法開始,研究者們更多地從數(shù)學(xué)上尋求問題的最優(yōu)解。不再盲目模擬人腦網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)研究走向成熟的標(biāo)志。正如科學(xué)家們可以從鳥類的飛行中得到啟發(fā),但沒有必要一定要完全模擬鳥類的飛行方式,也能制造可以飛天的飛機(jī)。

優(yōu)化問題只是訓(xùn)練中的一個部分。機(jī)器學(xué)習(xí)問題之所以稱為學(xué)習(xí)問題,而不是優(yōu)化問題,就是因?yàn)樗粌H要求數(shù)據(jù)在訓(xùn)練集上求得一個較小的誤差,在測試集上也要表現(xiàn)好。因?yàn)槟P妥罱K是要部署到?jīng)]有見過訓(xùn)練數(shù)據(jù)的真實(shí)場景。提升模型在測試集上的預(yù)測效果的主題叫做泛化(generalization),相關(guān)方法被稱作正則化(regularization)。神經(jīng)網(wǎng)絡(luò)中常用的泛化技術(shù)有權(quán)重衰減等。

5.影響

兩層神經(jīng)網(wǎng)絡(luò)在多個地方的應(yīng)用說明了其效用與價(jià)值。10年前困擾神經(jīng)網(wǎng)絡(luò)界的異或問題被輕松解決。神經(jīng)網(wǎng)絡(luò)在這個時候,已經(jīng)可以發(fā)力于語音識別,圖像識別,自動駕駛等多個領(lǐng)域。

歷史總是驚人的相似,神經(jīng)網(wǎng)絡(luò)的學(xué)者們再次登上了《紐約時報(bào)》的專訪。人們認(rèn)為神經(jīng)網(wǎng)絡(luò)可以解決許多問題。就連娛樂界都開始受到了影響,當(dāng)年的《終結(jié)者》電影中的阿諾都趕時髦地說一句:我的CPU是一個神經(jīng)網(wǎng)絡(luò)處理器,一個會學(xué)習(xí)的計(jì)算機(jī)。

但是神經(jīng)網(wǎng)絡(luò)仍然存在若干的問題:盡管使用了BP算法,一次神經(jīng)網(wǎng)絡(luò)的訓(xùn)練仍然耗時太久,而且困擾訓(xùn)練優(yōu)化的一個問題就是局部最優(yōu)解問題,這使得神經(jīng)網(wǎng)絡(luò)的優(yōu)化較為困難。同時,隱藏層的節(jié)點(diǎn)數(shù)需要調(diào)參,這使得使用不太方便,工程和研究人員對此多有抱怨。

90年代中期,由Vapnik等人發(fā)明的SVM(Support Vector Machines,支持向量機(jī))算法誕生,很快就在若干個方面體現(xiàn)出了對比神經(jīng)網(wǎng)絡(luò)的優(yōu)勢:無需調(diào)參;高效;全局最優(yōu)解?;谝陨戏N種理由,SVM迅速打敗了神經(jīng)網(wǎng)絡(luò)算法成為主流。

圖28 Vladimir Vapnik

神經(jīng)網(wǎng)絡(luò)的研究再次陷入了冰河期。當(dāng)時,只要你的論文中包含神經(jīng)網(wǎng)絡(luò)相關(guān)的字眼,非常容易被會議和期刊拒收,研究界那時對神經(jīng)網(wǎng)絡(luò)的不待見可想而知。

五、多層神經(jīng)網(wǎng)絡(luò)(深度學(xué)習(xí))

1.引子

在被人摒棄的10年中,有幾個學(xué)者仍然在堅(jiān)持研究。這其中的棋手就是加拿大多倫多大學(xué)的Geoffery Hinton教授。

2006年,Hinton在《Science》和相關(guān)期刊上發(fā)表了論文,首次提出了“深度信念網(wǎng)絡(luò)”的概念。與傳統(tǒng)的訓(xùn)練方式不同,“深度信念網(wǎng)絡(luò)”有一個“預(yù)訓(xùn)練”(pre-training)的過程,這可以方便的讓神經(jīng)網(wǎng)絡(luò)中的權(quán)值找到一個接近最優(yōu)解的值,之后再使用“微調(diào)”(fine-tuning)技術(shù)來對整個網(wǎng)絡(luò)進(jìn)行優(yōu)化訓(xùn)練。這兩個技術(shù)的運(yùn)用大幅度減少了訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的時間。他給多層神經(jīng)網(wǎng)絡(luò)相關(guān)的學(xué)習(xí)方法賦予了一個新名詞–“深度學(xué)習(xí)”。

很快,深度學(xué)習(xí)在語音識別領(lǐng)域暫露頭角。接著,2012年,深度學(xué)習(xí)技術(shù)又在圖像識別領(lǐng)域大展拳腳。Hinton與他的學(xué)生在ImageNet競賽中,用多層的卷積神經(jīng)網(wǎng)絡(luò)成功地對包含一千類別的一百萬張圖片進(jìn)行了訓(xùn)練,取得了分類錯誤率15%的好成績,這個成績比第二名高了近11個百分點(diǎn),充分證明了多層神經(jīng)網(wǎng)絡(luò)識別效果的優(yōu)越性。

在這之后,關(guān)于深度神經(jīng)網(wǎng)絡(luò)的研究與應(yīng)用不斷涌現(xiàn)。

圖29 Geoffery Hinton

由于篇幅原因,本文不介紹CNN(Conventional Neural Network,卷積神經(jīng)網(wǎng)絡(luò))與RNN(Recurrent Neural Network,遞歸神經(jīng)網(wǎng)絡(luò))的架構(gòu),下面我們只討論普通的多層神經(jīng)網(wǎng)絡(luò)。

2.結(jié)構(gòu)

我們延續(xù)兩層神經(jīng)網(wǎng)絡(luò)的方式來設(shè)計(jì)一個多層神經(jīng)網(wǎng)絡(luò)。

在兩層神經(jīng)網(wǎng)絡(luò)的輸出層后面,繼續(xù)添加層次。原來的輸出層變成中間層,新加的層次成為新的輸出層。所以可以得到下圖。

圖30 多層神經(jīng)網(wǎng)絡(luò)

依照這樣的方式不斷添加,我們可以得到更多層的多層神經(jīng)網(wǎng)絡(luò)。公式推導(dǎo)的話其實(shí)跟兩層神經(jīng)網(wǎng)絡(luò)類似,使用矩陣運(yùn)算的話就僅僅是加一個公式而已。

在已知輸入a(1),參數(shù)W(1),W(2),W(3)的情況下,輸出z的推導(dǎo)公式如下:

g(W(1)*a(1)) =a(2);

g(W(2)*a(2)) =a(3);

g(W(3)*a(3)) =z;

多層神經(jīng)網(wǎng)絡(luò)中,輸出也是按照一層一層的方式來計(jì)算。從最外面的層開始,算出所有單元的值以后,再繼續(xù)計(jì)算更深一層。只有當(dāng)前層所有單元的值都計(jì)算完畢以后,才會算下一層。有點(diǎn)像計(jì)算向前不斷推進(jìn)的感覺。所以這個過程叫做“正向傳播”。

下面討論一下多層神經(jīng)網(wǎng)絡(luò)中的參數(shù)。

首先我們看第一張圖,可以看出W(1)中有6個參數(shù),W(2)中有4個參數(shù),W(3)中有6個參數(shù),所以整個神經(jīng)網(wǎng)絡(luò)中的參數(shù)有16個(這里我們不考慮偏置節(jié)點(diǎn),下同)。

圖31 多層神經(jīng)網(wǎng)絡(luò)(較少參數(shù))

假設(shè)我們將中間層的節(jié)點(diǎn)數(shù)做一下調(diào)整。第一個中間層改為3個單元,第二個中間層改為4個單元。

經(jīng)過調(diào)整以后,整個網(wǎng)絡(luò)的參數(shù)變成了33個。

圖32 多層神經(jīng)網(wǎng)絡(luò)(較多參數(shù))

雖然層數(shù)保持不變,但是第二個神經(jīng)網(wǎng)絡(luò)的參數(shù)數(shù)量卻是第一個神經(jīng)網(wǎng)絡(luò)的接近兩倍之多,從而帶來了更好的表示(represention)能力。表示能力是多層神經(jīng)網(wǎng)絡(luò)的一個重要性質(zhì),下面會做介紹。

在參數(shù)一致的情況下,我們也可以獲得一個“更深”的網(wǎng)絡(luò)。

圖33 多層神經(jīng)網(wǎng)絡(luò)(更深的層次)

上圖的網(wǎng)絡(luò)中,雖然參數(shù)數(shù)量仍然是33,但卻有4個中間層,是原來層數(shù)的接近兩倍。這意味著一樣的參數(shù)數(shù)量,可以用更深的層次去表達(dá)。

3.效果

與兩層層神經(jīng)網(wǎng)絡(luò)不同。多層神經(jīng)網(wǎng)絡(luò)中的層數(shù)增加了很多。

增加更多的層次有什么好處?更深入的表示特征,以及更強(qiáng)的函數(shù)模擬能力。

更深入的表示特征可以這樣理解,隨著網(wǎng)絡(luò)的層數(shù)增加,每一層對于前一層次的抽象表示更深入。在神經(jīng)網(wǎng)絡(luò)中,每一層神經(jīng)元學(xué)習(xí)到的是前一層神經(jīng)元值的更抽象的表示。例如第一個隱藏層學(xué)習(xí)到的是“邊緣”的特征,第二個隱藏層學(xué)習(xí)到的是由“邊緣”組成的“形狀”的特征,第三個隱藏層學(xué)習(xí)到的是由“形狀”組成的“圖案”的特征,最后的隱藏層學(xué)習(xí)到的是由“圖案”組成的“目標(biāo)”的特征。通過抽取更抽象的特征來對事物進(jìn)行區(qū)分,從而獲得更好的區(qū)分與分類能力。

關(guān)于逐層特征學(xué)習(xí)的例子,可以參考下圖。

圖34 多層神經(jīng)網(wǎng)絡(luò)(特征學(xué)習(xí))

更強(qiáng)的函數(shù)模擬能力是由于隨著層數(shù)的增加,整個網(wǎng)絡(luò)的參數(shù)就越多。而神經(jīng)網(wǎng)絡(luò)其實(shí)本質(zhì)就是模擬特征與目標(biāo)之間的真實(shí)關(guān)系函數(shù)的方法,更多的參數(shù)意味著其模擬的函數(shù)可以更加的復(fù)雜,可以有更多的容量(capcity)去擬合真正的關(guān)系。

通過研究發(fā)現(xiàn),在參數(shù)數(shù)量一樣的情況下,更深的網(wǎng)絡(luò)往往具有比淺層的網(wǎng)絡(luò)更好的識別效率。這點(diǎn)也在ImageNet的多次大賽中得到了證實(shí)。從2012年起,每年獲得ImageNet冠軍的深度神經(jīng)網(wǎng)絡(luò)的層數(shù)逐年增加,2015年最好的方法GoogleNet是一個多達(dá)22層的神經(jīng)網(wǎng)絡(luò)。

最新一屆的ImageNet大賽上,目前拿到最好成績的MSRA團(tuán)隊(duì)的方法使用的更是一個深達(dá)152層的網(wǎng)絡(luò)!關(guān)于這個方法更多的信息有興趣的可以查閱ImageNet網(wǎng)站。

4.訓(xùn)練

在單層神經(jīng)網(wǎng)絡(luò)時,我們使用的激活函數(shù)是sgn函數(shù)。到了兩層神經(jīng)網(wǎng)絡(luò)時,我們使用的最多的是sigmoid函數(shù)。而到了多層神經(jīng)網(wǎng)絡(luò)時,通過一系列的研究發(fā)現(xiàn),ReLU函數(shù)在訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)時,更容易收斂,并且預(yù)測性能更好。因此,目前在深度學(xué)習(xí)中,最流行的非線性函數(shù)是ReLU函數(shù)。ReLU函數(shù)不是傳統(tǒng)的非線性函數(shù),而是分段線性函數(shù)。其表達(dá)式非常簡單,就是y=max(x,0)。簡而言之,在x大于0,輸出就是輸入,而在x小于0時,輸出就保持為0。這種函數(shù)的設(shè)計(jì)啟發(fā)來自于生物神經(jīng)元對于激勵的線性響應(yīng),以及當(dāng)?shù)陀谀硞€閾值后就不再響應(yīng)的模擬。

在多層神經(jīng)網(wǎng)絡(luò)中,訓(xùn)練的主題仍然是優(yōu)化和泛化。當(dāng)使用足夠強(qiáng)的計(jì)算芯片(例如GPU圖形加速卡)時,梯度下降算法以及反向傳播算法在多層神經(jīng)網(wǎng)絡(luò)中的訓(xùn)練中仍然工作的很好。目前學(xué)術(shù)界主要的研究既在于開發(fā)新的算法,也在于對這兩個算法進(jìn)行不斷的優(yōu)化,例如,增加了一種帶動量因子(momentum)的梯度下降算法。

在深度學(xué)習(xí)中,泛化技術(shù)變的比以往更加的重要。這主要是因?yàn)樯窠?jīng)網(wǎng)絡(luò)的層數(shù)增加了,參數(shù)也增加了,表示能力大幅度增強(qiáng),很容易出現(xiàn)過擬合現(xiàn)象。因此正則化技術(shù)就顯得十分重要。目前,Dropout技術(shù),以及數(shù)據(jù)擴(kuò)容(Data-Augmentation)技術(shù)是目前使用的最多的正則化技術(shù)。

5.影響

目前,深度神經(jīng)網(wǎng)絡(luò)在人工智能界占據(jù)統(tǒng)治地位。但凡有關(guān)人工智能的產(chǎn)業(yè)報(bào)道,必然離不開深度學(xué)習(xí)。神經(jīng)網(wǎng)絡(luò)界當(dāng)下的四位引領(lǐng)者除了前文所說的Ng,Hinton以外,還有CNN的發(fā)明人Yann Lecun,以及《Deep Learning》的作者Bengio。

前段時間一直對人工智能持謹(jǐn)慎態(tài)度的馬斯克,搞了一個OpenAI項(xiàng)目,邀請Bengio作為高級顧問。馬斯克認(rèn)為,人工智能技術(shù)不應(yīng)該掌握在大公司如Google,F(xiàn)acebook的手里,更應(yīng)該作為一種開放技術(shù),讓所有人都可以參與研究。馬斯克的這種精神值得讓人敬佩。

圖35 Yann LeCun

Yoshua Bengio

多層神經(jīng)網(wǎng)絡(luò)的研究仍在進(jìn)行中?,F(xiàn)在最為火熱的研究技術(shù)包括RNN,LSTM等,研究方向則是圖像理解方面。圖像理解技術(shù)是給計(jì)算機(jī)一幅圖片,讓它用語言來表達(dá)這幅圖片的意思。ImageNet競賽也在不斷召開,有更多的方法涌現(xiàn)出來,刷新以往的正確率。

六、回顧

1.影響

我們回顧一下神經(jīng)網(wǎng)絡(luò)發(fā)展的歷程。神經(jīng)網(wǎng)絡(luò)的發(fā)展歷史曲折蕩漾,既有被人捧上天的時刻,也有摔落在街頭無人問津的時段,中間經(jīng)歷了數(shù)次大起大落。

從單層神經(jīng)網(wǎng)絡(luò)(感知器)開始,到包含一個隱藏層的兩層神經(jīng)網(wǎng)絡(luò),再到多層的深度神經(jīng)網(wǎng)絡(luò),一共有三次興起過程。詳見下圖。

圖36 三起三落的神經(jīng)網(wǎng)絡(luò)

上圖中的頂點(diǎn)與谷底可以看作神經(jīng)網(wǎng)絡(luò)發(fā)展的高峰與低谷。圖中的橫軸是時間,以年為單位??v軸是一個神經(jīng)網(wǎng)絡(luò)影響力的示意表示。如果把1949年Hebb模型提出到1958年的感知機(jī)誕生這個10年視為落下(沒有興起)的話,那么神經(jīng)網(wǎng)絡(luò)算是經(jīng)歷了“三起三落”這樣一個過程,跟“小平”同志類似。俗話說,天將降大任于斯人也,必先苦其心志,勞其筋骨。經(jīng)歷過如此多波折的神經(jīng)網(wǎng)絡(luò)能夠在現(xiàn)階段取得成功也可以被看做是磨礪的積累吧。

歷史最大的好處是可以給現(xiàn)在做參考。科學(xué)的研究呈現(xiàn)螺旋形上升的過程,不可能一帆風(fēng)順。同時,這也給現(xiàn)在過分熱衷深度學(xué)習(xí)與人工智能的人敲響警鐘,因?yàn)檫@不是第一次人們因?yàn)樯窠?jīng)網(wǎng)絡(luò)而瘋狂了。1958年到1969年,以及1985年到1995,這兩個十年間人們對于神經(jīng)網(wǎng)絡(luò)以及人工智能的期待并不現(xiàn)在低,可結(jié)果如何大家也能看的很清楚。

因此,冷靜才是對待目前深度學(xué)習(xí)熱潮的最好辦法。如果因?yàn)樯疃葘W(xué)習(xí)火熱,或者可以有“錢景”就一窩蜂的涌入,那么最終的受害人只能是自己。神經(jīng)網(wǎng)絡(luò)界已經(jīng)兩次有被人們捧上天了的境況,相信也對于捧得越高,摔得越慘這句話深有體會。因此,神經(jīng)網(wǎng)絡(luò)界的學(xué)者也必須給這股熱潮澆上一盆水,不要讓媒體以及投資家們過分的高看這門技術(shù)。很有可能,三十年河?xùn)|,三十年河西,在幾年后,神經(jīng)網(wǎng)絡(luò)就再次陷入谷底。根據(jù)上圖的歷史曲線圖,這是很有可能的。

2.效果

下面說一下神經(jīng)網(wǎng)絡(luò)為什么能這么火熱?簡而言之,就是其學(xué)習(xí)效果的強(qiáng)大。隨著神經(jīng)網(wǎng)絡(luò)的發(fā)展,其表示性能越來越強(qiáng)。

從單層神經(jīng)網(wǎng)絡(luò),到兩層神經(jīng)網(wǎng)絡(luò),再到多層神經(jīng)網(wǎng)絡(luò),下圖說明了,隨著網(wǎng)絡(luò)層數(shù)的增加,以及激活函數(shù)的調(diào)整,神經(jīng)網(wǎng)絡(luò)所能擬合的決策分界平面的能力。

圖37 表示能力不斷增強(qiáng)

可以看出,隨著層數(shù)增加,其非線性分界擬合能力不斷增強(qiáng)。圖中的分界線并不代表真實(shí)訓(xùn)練出的效果,更多的是示意效果。

神經(jīng)網(wǎng)絡(luò)的研究與應(yīng)用之所以能夠不斷地火熱發(fā)展下去,與其強(qiáng)大的函數(shù)擬合能力是分不開關(guān)系的。

3.外因

當(dāng)然,光有強(qiáng)大的內(nèi)在能力,并不一定能成功。一個成功的技術(shù)與方法,不僅需要內(nèi)因的作用,還需要時勢與環(huán)境的配合。神經(jīng)網(wǎng)絡(luò)的發(fā)展背后的外在原因可以被總結(jié)為:更強(qiáng)的計(jì)算性能,更多的數(shù)據(jù),以及更好的訓(xùn)練方法。只有滿足這些條件時,神經(jīng)網(wǎng)絡(luò)的函數(shù)擬合能力才能得已體現(xiàn),見下圖。

圖38 發(fā)展的外在原因

之所以在單層神經(jīng)網(wǎng)絡(luò)年代,Rosenblat無法制作一個雙層分類器,就在于當(dāng)時的計(jì)算性能不足,Minsky也以此來打壓神經(jīng)網(wǎng)絡(luò)。但是Minsky沒有料到,僅僅10年以后,計(jì)算機(jī)CPU的快速發(fā)展已經(jīng)使得我們可以做兩層神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,并且還有快速的學(xué)習(xí)算法BP。

但是在兩層神經(jīng)網(wǎng)絡(luò)快速流行的年代。更高層的神經(jīng)網(wǎng)絡(luò)由于計(jì)算性能的問題,以及一些計(jì)算方法的問題,其優(yōu)勢無法得到體現(xiàn)。直到2012年,研究人員發(fā)現(xiàn),用于高性能計(jì)算的圖形加速卡(GPU)可以極佳地匹配神經(jīng)網(wǎng)絡(luò)訓(xùn)練所需要的要求:高并行性,高存儲,沒有太多的控制需求,配合預(yù)訓(xùn)練等算法,神經(jīng)網(wǎng)絡(luò)才得以大放光彩。

互聯(lián)網(wǎng)時代,大量的數(shù)據(jù)被收集整理,更好的訓(xùn)練方法不斷被發(fā)現(xiàn)。所有這一切都滿足了多層神經(jīng)網(wǎng)絡(luò)發(fā)揮能力的條件。

“時勢造英雄”,正如Hinton在2006年的論文里說道的

“…providedthatcomputerswerefastenough,datasetswerebigenough,andtheinitialweightswerecloseenoughtoagoodsolution.Allthreeconditionsarenowsatisfied.”,

外在條件的滿足也是神經(jīng)網(wǎng)絡(luò)從神經(jīng)元得以發(fā)展到目前的深度神經(jīng)網(wǎng)絡(luò)的重要因素。

除此以外,一門技術(shù)的發(fā)揚(yáng)沒有“伯樂”也是不行的。在神經(jīng)網(wǎng)絡(luò)漫長的歷史中,正是由于許多研究人員的鍥而不舍,不斷鉆研,才能有了現(xiàn)在的成就。前期的Rosenblat,Rumelhart沒有見證到神經(jīng)網(wǎng)絡(luò)如今的流行與地位。但是在那個時代,他們?yōu)樯窠?jīng)網(wǎng)絡(luò)的發(fā)展所打下的基礎(chǔ),卻會永遠(yuǎn)流傳下去,不會退色。

七、展望

1.量子計(jì)算

回到我們對神經(jīng)網(wǎng)絡(luò)歷史的討論,根據(jù)歷史趨勢圖來看,神經(jīng)網(wǎng)絡(luò)以及深度學(xué)習(xí)會不會像以往一樣再次陷入谷底?作者認(rèn)為,這個過程可能取決于量子計(jì)算機(jī)的發(fā)展。

根據(jù)一些最近的研究發(fā)現(xiàn),人腦內(nèi)部進(jìn)行的計(jì)算可能是類似于量子計(jì)算形態(tài)的東西。而且目前已知的最大神經(jīng)網(wǎng)絡(luò)跟人腦的神經(jīng)元數(shù)量相比,仍然顯得非常小,僅不及1%左右。所以未來真正想實(shí)現(xiàn)人腦神經(jīng)網(wǎng)絡(luò)的模擬,可能需要借助量子計(jì)算的強(qiáng)大計(jì)算能力。

各大研究組也已經(jīng)認(rèn)識到了量子計(jì)算的重要性。谷歌就在開展量子計(jì)算機(jī)D-wave的研究,希望用量子計(jì)算來進(jìn)行機(jī)器學(xué)習(xí),并且在前段時間有了突破性的進(jìn)展。國內(nèi)方面,阿里和中科院合作成立了量子計(jì)算實(shí)驗(yàn)室,意圖進(jìn)行量子計(jì)算的研究。

如果量子計(jì)算發(fā)展不力,仍然需要數(shù)十年才能使我們的計(jì)算能力得以突飛猛進(jìn)的發(fā)展,那么缺少了強(qiáng)大計(jì)算能力的神經(jīng)網(wǎng)絡(luò)可能會無法一帆風(fēng)順的發(fā)展下去。這種情況可以類比為80-90年時期神經(jīng)網(wǎng)絡(luò)因?yàn)橛?jì)算能力的限制而被低估與忽視。假設(shè)量子計(jì)算機(jī)真的能夠與神經(jīng)網(wǎng)絡(luò)結(jié)合,并且助力真正的人工智能技術(shù)的誕生,而且量子計(jì)算機(jī)發(fā)展需要10年的話,那么神經(jīng)網(wǎng)絡(luò)可能還有10年的發(fā)展期。直到那時期以后,神經(jīng)網(wǎng)絡(luò)才能真正接近實(shí)現(xiàn)AI這一目標(biāo)。

圖39 量子計(jì)算

2.人工智能

最后,作者想簡單地談?wù)剬δ壳叭斯ぶ悄艿目捶ākm然現(xiàn)在人工智能非?;馃幔蔷嚯x真正的人工智能還有很大的距離。就拿計(jì)算機(jī)視覺方向來說,面對稍微復(fù)雜一些的場景,以及易于混淆的圖像,計(jì)算機(jī)就可能難以識別。因此,這個方向還有很多的工作要做。

就普通人看來,這么辛苦的做各種實(shí)驗(yàn),以及投入大量的人力就是為了實(shí)現(xiàn)一些不及孩童能力的視覺能力,未免有些不值。但是這只是第一步。雖然計(jì)算機(jī)需要很大的運(yùn)算量才能完成一個普通人簡單能完成的識圖工作,但計(jì)算機(jī)最大的優(yōu)勢在于并行化與批量推廣能力。使用計(jì)算機(jī)以后,我們可以很輕易地將以前需要人眼去判斷的工作交給計(jì)算機(jī)做,而且?guī)缀鯖]有任何的推廣成本。這就具有很大的價(jià)值。正如火車剛誕生的時候,有人嘲笑它又笨又重,速度還沒有馬快。但是很快規(guī)模化推廣的火車就替代了馬車的使用。人工智能也是如此。這也是為什么目前世界上各著名公司以及政府都對此熱衷的原因。

目前看來,神經(jīng)網(wǎng)絡(luò)要想實(shí)現(xiàn)人工智能還有很多的路要走,但方向至少是正確的,下面就要看后來者的不斷努力了。

圖40 人工智能

八、總結(jié)

本文回顧了神經(jīng)網(wǎng)絡(luò)的發(fā)展歷史,從神經(jīng)元開始,歷經(jīng)單層神經(jīng)網(wǎng)絡(luò),兩層神經(jīng)網(wǎng)絡(luò),直到多層神經(jīng)網(wǎng)絡(luò)。在歷史介紹中穿插講解神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),分類效果以及訓(xùn)練方法等。本文說明了神經(jīng)網(wǎng)絡(luò)內(nèi)部實(shí)際上就是矩陣計(jì)算,在程序中的實(shí)現(xiàn)沒有“點(diǎn)”和“線”的對象。本文說明了神經(jīng)網(wǎng)絡(luò)強(qiáng)大預(yù)測能力的根本,就是多層的神經(jīng)網(wǎng)絡(luò)可以無限逼近真實(shí)的對應(yīng)函數(shù),從而模擬數(shù)據(jù)之間的真實(shí)關(guān)系。除此之外,本文回顧了神經(jīng)網(wǎng)絡(luò)發(fā)展的歷程,分析了神經(jīng)網(wǎng)絡(luò)發(fā)展的外在原因,包括計(jì)算能力的增強(qiáng),數(shù)據(jù)的增多,以及方法的創(chuàng)新等。最后,本文對神經(jīng)網(wǎng)絡(luò)的未來進(jìn)行了展望,包括量子計(jì)算與神經(jīng)網(wǎng)絡(luò)結(jié)合的可能性,以及探討未來人工智能發(fā)展的前景與價(jià)值。

九、后記

本篇文章可以視為作者一年來對神經(jīng)網(wǎng)絡(luò)的理解與總結(jié),包括實(shí)驗(yàn)的體會,書籍的閱讀,以及思考的火花等。神經(jīng)網(wǎng)絡(luò)雖然重要,但學(xué)習(xí)并不容易。這主要是由于其結(jié)構(gòu)圖較為難懂,以及歷史發(fā)展的原因,導(dǎo)致概念容易混淆,一些介紹的博客與網(wǎng)站內(nèi)容新舊不齊。本篇文章著眼于這些問題,沒有太多的數(shù)學(xué)推導(dǎo),意圖以一種簡單的,直觀的方式對神經(jīng)網(wǎng)絡(luò)進(jìn)行講解。在2015年最后一天終于寫完。希望本文可以對各位有所幫助。

作者很感謝能夠閱讀到這里的讀者。如果看完覺得好的話,還請輕輕點(diǎn)一下贊,你們的鼓勵就是作者繼續(xù)行文的動力。本文的備注部分是一些對神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的建議,供補(bǔ)充閱讀與參考。

目前為止,EasyPR的1.4版已經(jīng)將神經(jīng)網(wǎng)絡(luò)(ANN)訓(xùn)練的模塊加以開放,開發(fā)者們可以使用這個模塊來進(jìn)行自己的字符模型的訓(xùn)練。有興趣的可以下載

十、備注

神經(jīng)網(wǎng)絡(luò)雖然很重要,但是對于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),卻并不容易。這些學(xué)習(xí)困難主要來自以下三個方面:概念,類別,教程。下面簡單說明這三點(diǎn)。

1.概念

對于一門技術(shù)的學(xué)習(xí)而言,首先最重要的是弄清概念。只有將概念理解清楚,才能順暢的進(jìn)行后面的學(xué)習(xí)。由于神經(jīng)網(wǎng)絡(luò)漫長的發(fā)展歷史,經(jīng)常會有一些概念容易混淆,讓人學(xué)習(xí)中產(chǎn)生困惑。這里面包括歷史的術(shù)語,不一致的說法,以及被遺忘的研究等。

歷史的術(shù)語

這個的代表就是多層感知器(MLP)這個術(shù)語。起初看文獻(xiàn)時很難理解的一個問題就是,為什么神經(jīng)網(wǎng)絡(luò)又有另一個名稱:MLP。其實(shí)MLP(Multi-Layer Perceptron)的名稱起源于50-60年代的感知器(Perceptron)。由于我們在感知器之上又增加了一個計(jì)算層,因此稱為多層感知器。值得注意的是,雖然叫“多層”,MLP一般都指的是兩層(帶一個隱藏層的)神經(jīng)網(wǎng)絡(luò)。

MLP這個術(shù)語屬于歷史遺留的產(chǎn)物?,F(xiàn)在我們一般就說神經(jīng)網(wǎng)絡(luò),以及深度神經(jīng)網(wǎng)絡(luò)。前者代表帶一個隱藏層的兩層神經(jīng)網(wǎng)絡(luò),也是EasyPR目前使用的識別網(wǎng)絡(luò),后者指深度學(xué)習(xí)的網(wǎng)絡(luò)。

不一致的說法

這個最明顯的代表就是損失函數(shù)lossfunction,這個還有兩個說法是跟它完全一致的意思,分別是殘差函數(shù)errorfunction,以及代價(jià)函數(shù)costfunction。lossfunction是目前深度學(xué)習(xí)里用的較多的一種說法,caffe里也是這么叫的。costfunction則是Ng在coursera教學(xué)視頻里用到的統(tǒng)一說法。這三者都是同一個意思,都是優(yōu)化問題所需要求解的方程。雖然在使用的時候不做規(guī)定,但是在聽到各種講解時要心里明白。

再來就是權(quán)重weight和參數(shù)parameter的說法,神經(jīng)網(wǎng)絡(luò)界由于以前的慣例,一般會將訓(xùn)練得到的參數(shù)稱之為權(quán)重,而不像其他機(jī)器學(xué)習(xí)方法就稱之為參數(shù)。這個需要記住就好。不過在目前的使用慣例中,也有這樣一種規(guī)定。那就是非偏置節(jié)點(diǎn)連接上的值稱之為權(quán)重,而偏置節(jié)點(diǎn)上的值稱之為偏置,兩者統(tǒng)一起來稱之為參數(shù)。

另外一個同義詞就是激活函數(shù)active function和轉(zhuǎn)移函數(shù)transfer function了。同樣,他們代表一個意思,都是疊加的非線性函數(shù)的說法。

被遺忘的研究

由于神經(jīng)網(wǎng)絡(luò)發(fā)展歷史已經(jīng)有70年的漫長歷史,因此在研究過程中,必然有一些研究分支屬于被遺忘階段。這里面包括各種不同的網(wǎng)絡(luò),例如SOM(Self-Organizing Map,自組織特征映射網(wǎng)絡(luò)),SNN(Synergetic Neural Network,協(xié)同神經(jīng)網(wǎng)絡(luò)),ART(Adaptive Resonance Theory,自適應(yīng)共振理論網(wǎng)絡(luò))等等。所以看歷史文獻(xiàn)時會看到許多沒見過的概念與名詞。

有些歷史網(wǎng)絡(luò)甚至?xí)匦鲁蔀樾碌难芯繜狳c(diǎn),例如RNN與LSTM就是80年代左右開始的研究,目前已經(jīng)是深度學(xué)習(xí)研究中的重要一門技術(shù),在語音與文字識別中有很好的效果。

對于這些易于混淆以及弄錯的概念,務(wù)必需要多方參考文獻(xiàn),理清上下文,這樣才不會在學(xué)習(xí)與閱讀過程中迷糊。

2.類別

下面談一下關(guān)于神經(jīng)網(wǎng)絡(luò)中的不同類別。

其實(shí)本文的名字“神經(jīng)網(wǎng)絡(luò)淺講”并不合適,因?yàn)楸疚牟⒉皇侵v的是“神經(jīng)網(wǎng)絡(luò)”的內(nèi)容,而是其中的一個子類,也是目前最常說的前饋神經(jīng)網(wǎng)絡(luò)。根據(jù)下圖的分類可以看出。

圖41 神經(jīng)網(wǎng)絡(luò)的類別

神經(jīng)網(wǎng)絡(luò)其實(shí)是一個非常寬泛的稱呼,它包括兩類,一類是用計(jì)算機(jī)的方式去模擬人腦,這就是我們常說的ANN(人工神經(jīng)網(wǎng)絡(luò)),另一類是研究生物學(xué)上的神經(jīng)網(wǎng)絡(luò),又叫生物神經(jīng)網(wǎng)絡(luò)。對于我們計(jì)算機(jī)人士而言,肯定是研究前者。

在人工神經(jīng)網(wǎng)絡(luò)之中,又分為前饋神經(jīng)網(wǎng)絡(luò)和反饋神經(jīng)網(wǎng)絡(luò)這兩種。那么它們兩者的區(qū)別是什么呢?這個其實(shí)在于它們的結(jié)構(gòu)圖。我們可以把結(jié)構(gòu)圖看作是一個有向圖。其中神經(jīng)元代表頂點(diǎn),連接代表有向邊。對于前饋神經(jīng)網(wǎng)絡(luò)中,這個有向圖是沒有回路的。你可以仔細(xì)觀察本文中出現(xiàn)的所有神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖,確認(rèn)一下。而對于反饋神經(jīng)網(wǎng)絡(luò)中,結(jié)構(gòu)圖的有向圖是有回路的。反饋神經(jīng)網(wǎng)絡(luò)也是一類重要的神經(jīng)網(wǎng)絡(luò)。其中Hopfield網(wǎng)絡(luò)就是反饋神經(jīng)網(wǎng)絡(luò)。深度學(xué)習(xí)中的RNN也屬于一種反饋神經(jīng)網(wǎng)絡(luò)。

具體到前饋神經(jīng)網(wǎng)絡(luò)中,就有了本文中所分別描述的三個網(wǎng)絡(luò):單層神經(jīng)網(wǎng)絡(luò),雙層神經(jīng)網(wǎng)絡(luò),以及多層神經(jīng)網(wǎng)絡(luò)。深度學(xué)習(xí)中的CNN屬于一種特殊的多層神經(jīng)網(wǎng)絡(luò)。另外,在一些Blog中和文獻(xiàn)中看到的BP神經(jīng)網(wǎng)絡(luò)是什么?其實(shí)它們就是使用了反向傳播BP算法的兩層前饋神經(jīng)網(wǎng)絡(luò)。也是最普遍的一種兩層神經(jīng)網(wǎng)絡(luò)。

通過以上分析可以看出,神經(jīng)網(wǎng)絡(luò)這種說法其實(shí)是非常廣義的,具體在文章中說的是什么網(wǎng)絡(luò),需要根據(jù)文中的內(nèi)容加以區(qū)分。

3.教程

如何更好的學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),認(rèn)真的學(xué)習(xí)一門課程或者看一本著作都是很有必要的。

說到網(wǎng)絡(luò)教程的話,這里必須說一下Ng的機(jī)器學(xué)習(xí)課程。對于一個初學(xué)者而言,Ng的課程視頻是非常有幫助的。Ng一共開設(shè)過兩門機(jī)器學(xué)習(xí)公開課程:一個是2003年在Standford開設(shè)的,面向全球的學(xué)生,這個視頻現(xiàn)在可以在網(wǎng)易公開課上找到;另一個是2010年專門為Coursera上的用戶開設(shè)的,需要登陸Coursera上才能學(xué)習(xí)。

但是,需要注意點(diǎn)是,這兩個課程對待神經(jīng)網(wǎng)絡(luò)的態(tài)度有點(diǎn)不同。早些的課程一共有20節(jié)課,Ng花了若干節(jié)課去專門講SVM以及SVM的推導(dǎo),而當(dāng)時的神經(jīng)網(wǎng)絡(luò),僅僅放了幾段視頻,花了大概不到20分鐘(一節(jié)課60分鐘左右)。而到了后來的課程時,總共10節(jié)的課程中,Ng給了完整的兩節(jié)給神經(jīng)網(wǎng)絡(luò),詳細(xì)介紹了神經(jīng)網(wǎng)絡(luò)的反向傳播算法。同時給SVM只有一節(jié)課,并且沒有再講SVM的推導(dǎo)過程。下面兩張圖分別是Ng介紹神經(jīng)網(wǎng)絡(luò)的開篇,可以大致看出一些端倪。

圖42 Ng與神經(jīng)網(wǎng)絡(luò)

為什么Ng對待神經(jīng)網(wǎng)絡(luò)的反應(yīng)前后相差那么大?事實(shí)上就是深度學(xué)習(xí)的原因。Ng實(shí)踐了深度學(xué)習(xí)的效果,認(rèn)識到深度學(xué)習(xí)的基礎(chǔ)–神經(jīng)網(wǎng)絡(luò)的重要性。這就是他在后面重點(diǎn)介紹神經(jīng)網(wǎng)絡(luò)的原因??傊?,對于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)而言,我更推薦Coursera上的。因?yàn)樵谀莻€時候,Ng才是真正的把神經(jīng)網(wǎng)絡(luò)作為一門重要的機(jī)器學(xué)習(xí)方法去傳授。你可以從他上課的態(tài)度中感受到他的重視,以及他希望你能學(xué)好的期望。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:CICC科普欄目|神經(jīng)網(wǎng)絡(luò)淺講:從神經(jīng)元到深度學(xué)習(xí)

文章出處:【微信號:AItists,微信公眾號:人工智能學(xué)家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    人工神經(jīng)網(wǎng)絡(luò)原理及下載

    人工神經(jīng)網(wǎng)絡(luò)是根據(jù)人的認(rèn)識過程而開發(fā)出的一種算法。假如我們現(xiàn)在只有些輸入和相應(yīng)的輸出,而對如何由輸入得到輸出的機(jī)理并不清楚,那么我們可以把輸入與輸出之間的未知過程看成是個“
    發(fā)表于 06-19 14:40

    【PYNQ-Z2試用體驗(yàn)】神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識

    能在外界信息的基礎(chǔ)上改變內(nèi)部結(jié)構(gòu),是一種自適應(yīng)系統(tǒng),通俗的講就是具備學(xué)習(xí)功能?,F(xiàn)代神經(jīng)網(wǎng)絡(luò)一種非線性統(tǒng)計(jì)性數(shù)據(jù)建模工具。簡單來說,就是給定輸入,
    發(fā)表于 03-03 22:10

    【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)

    一種常用的無監(jiān)督學(xué)習(xí)策略,在使用改策略時,網(wǎng)絡(luò)的輸出神經(jīng)元相互競爭,每時刻只有個競爭獲勝的神經(jīng)
    發(fā)表于 07-21 04:30

    人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)方法有哪些?

    人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)是一種類似生物神經(jīng)網(wǎng)絡(luò)的信息處理結(jié)構(gòu),它的提出是為了解決些非線性,非平穩(wěn),復(fù)雜的實(shí)際問題。那有哪些辦法能實(shí)現(xiàn)
    發(fā)表于 08-01 08:06

    簡單神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)

    簡單神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 09-11 11:57

    如何構(gòu)建神經(jīng)網(wǎng)絡(luò)

    原文鏈接:http://tecdat.cn/?p=5725 神經(jīng)網(wǎng)絡(luò)一種基于現(xiàn)有數(shù)據(jù)創(chuàng)建預(yù)測的計(jì)算系統(tǒng)。如何構(gòu)建神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)包括:輸入層:根據(jù)現(xiàn)有數(shù)據(jù)獲取輸入的層隱藏層:使用反
    發(fā)表于 07-12 08:02

    分享一種400×25×2的三層BP神經(jīng)網(wǎng)絡(luò)

    本文首先簡單的選取了少量的樣本并進(jìn)行樣本歸化,這樣就得到了可供訓(xùn)練的訓(xùn)練集和測試集。然后訓(xùn)練了400×25×2的三層BP神經(jīng)網(wǎng)絡(luò),最后對最初步的模型進(jìn)行了誤差分析并找到了一種效果顯著
    發(fā)表于 07-12 06:49

    matlab實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò) 精選資料分享

    習(xí)神經(jīng)神經(jīng)網(wǎng)絡(luò),對于神經(jīng)網(wǎng)絡(luò)的實(shí)現(xiàn)是如何直沒有具體實(shí)現(xiàn)下:現(xiàn)看到
    發(fā)表于 08-18 07:25

    一種基于高效采樣算法的時序圖神經(jīng)網(wǎng)絡(luò)系統(tǒng)介紹

    圖數(shù)據(jù)是一種非結(jié)構(gòu)化的數(shù)據(jù),但能夠蘊(yùn)含很多結(jié)構(gòu)化數(shù)據(jù)中無法蘊(yùn)含的信息。圖數(shù)據(jù)無處不在,世界上大部分?jǐn)?shù)據(jù)都能夠用圖數(shù)據(jù)來表達(dá)。為了高效的提取圖特征,圖神經(jīng)網(wǎng)絡(luò)一種非常重要的圖特征提取方式
    發(fā)表于 09-28 10:34

    一種基于人工神經(jīng)網(wǎng)絡(luò)的秘密共享方案

    本文首先分析了人工神經(jīng)網(wǎng)絡(luò)和秘密共享的相通之處,闡明了用人工神經(jīng)網(wǎng)絡(luò)來實(shí)現(xiàn)秘密共享是可能的;其次給出了一種基于人工神經(jīng)網(wǎng)絡(luò)的秘密共享的門限方案,詳細(xì)介紹了
    發(fā)表于 08-15 09:54 ?15次下載

    一種新型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu):膠囊網(wǎng)絡(luò)

    膠囊網(wǎng)絡(luò)是 Geoffrey Hinton 提出的一種新型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),為了解決卷積神經(jīng)網(wǎng)絡(luò)(ConvNets)的些缺點(diǎn),提出了膠囊
    的頭像 發(fā)表于 02-02 09:25 ?5692次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)層級結(jié)構(gòu) 卷積神經(jīng)網(wǎng)絡(luò)的卷積層講解

    卷積神經(jīng)網(wǎng)絡(luò)層級結(jié)構(gòu) 卷積神經(jīng)網(wǎng)絡(luò)的卷積層講解 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種基于深
    的頭像 發(fā)表于 08-21 16:49 ?6874次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)的優(yōu)缺點(diǎn) 卷積神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)的區(qū)別

    深度神經(jīng)網(wǎng)絡(luò)一種基于神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)算法,其主要特點(diǎn)是由多層神經(jīng)元構(gòu)成,可以根據(jù)數(shù)據(jù)自動調(diào)整神經(jīng)元之間的權(quán)重,從而實(shí)現(xiàn)對大規(guī)模數(shù)據(jù)進(jìn)行預(yù)
    發(fā)表于 08-21 17:07 ?3628次閱讀

    遞歸神經(jīng)網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)

    。 遞歸神經(jīng)網(wǎng)絡(luò)的概念 遞歸神經(jīng)網(wǎng)絡(luò)一種具有短期記憶功能的神經(jīng)網(wǎng)絡(luò),它能夠處理序列數(shù)據(jù),如時間序列、文本、語音等。與傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)不同
    的頭像 發(fā)表于 07-04 14:54 ?461次閱讀

    人工神經(jīng)網(wǎng)絡(luò)模型是一種什么模型

    人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡稱ANNs)是一種受生物神經(jīng)網(wǎng)絡(luò)啟發(fā)而產(chǎn)生的數(shù)學(xué)模型,用于模擬人腦處理信息的方式。它由大量的節(jié)點(diǎn)(或稱為
    的頭像 發(fā)表于 07-04 16:57 ?450次閱讀