摘要:本文講述了人工神經(jīng)網(wǎng)絡(luò)中使用了多少隱藏層,每個(gè)隱藏層中包含多少神經(jīng)元,使用隱藏層和神經(jīng)元的目的,以及增加隱藏的層數(shù)和神經(jīng)元的數(shù)量總是會(huì)帶來(lái)什么結(jié)果。
人工神經(jīng)網(wǎng)絡(luò)(ANNs)的初學(xué)者很可能都會(huì)面臨一些問(wèn)題。其中一些問(wèn)題包括使用隱藏層的數(shù)量是多少?每個(gè)隱藏層中包含了多少個(gè)神經(jīng)元?使用隱藏的層和神經(jīng)元的目的是什么?增加隱藏的層數(shù)和神經(jīng)元的數(shù)量總是會(huì)帶來(lái)更好的結(jié)果嗎?
非常高興地告訴大家,這些問(wèn)題都是可以回答的。
人工神經(jīng)網(wǎng)絡(luò)的靈感來(lái)自于生物學(xué)的神經(jīng)網(wǎng)絡(luò)。為了簡(jiǎn)單起見(jiàn),在計(jì)算機(jī)科學(xué)中,它被表示為一系列的網(wǎng)絡(luò)層。這些層分為三類(lèi):分別是輸入層、隱藏層和輸出層。
了解輸入層和輸出層的數(shù)量和它們的神經(jīng)元的數(shù)量是比較容易的。每個(gè)人工神經(jīng)網(wǎng)絡(luò)都有一個(gè)單獨(dú)的輸入層和輸出層。輸入層中的神經(jīng)元數(shù)量等于正在處理的數(shù)據(jù)中的輸入變量的數(shù)量。在輸出層中的神經(jīng)元的數(shù)量等于與每個(gè)輸入相關(guān)聯(lián)的輸出的數(shù)量。但是,真正的挑戰(zhàn)是如何知道隱藏層和它們所包含的神經(jīng)元的數(shù)量。
這里有一些可以依照的準(zhǔn)則,用于知道分類(lèi)問(wèn)題中隱藏層的數(shù)量和每個(gè)隱藏層中所包含的神經(jīng)元的數(shù)量:
??基于數(shù)據(jù),畫(huà)出一個(gè)期望的決策邊界用來(lái)分離多個(gè)類(lèi);
??將決策邊界表示為一組直線。注意,這樣的直線組合必須服從于決策邊界;
??所選直線的數(shù)量等于在第一個(gè)隱藏層中的隱藏神經(jīng)元的數(shù)量;
??為了連接由前一層所創(chuàng)建的直線,添加了一個(gè)新的隱藏層。需要注意的是,當(dāng)每次需要在前一個(gè)隱藏層中創(chuàng)建直線之間的連接時(shí),都要添加一個(gè)新的隱藏層;
??每個(gè)新的隱藏層中隱藏神經(jīng)元的數(shù)量等于要建立的連接的數(shù)量;
為了把事情弄的更清楚,讓我們用之前的方法和原則來(lái)舉幾個(gè)例子。
示例?1
讓我們從下圖中簡(jiǎn)單的分類(lèi)問(wèn)題開(kāi)始,每個(gè)樣本都有兩個(gè)輸入,和一個(gè)用于表示類(lèi)標(biāo)簽的輸出,這與XOR問(wèn)題十分相似。

圖1
第一個(gè)要回答的問(wèn)題是隱藏層是否是必需的。為了解答這個(gè)問(wèn)題,需要遵循的規(guī)則如下:
在人工神經(jīng)網(wǎng)絡(luò)中,僅僅當(dāng)數(shù)據(jù)必須被非線性分離的時(shí)候,隱藏層才是必需的。
請(qǐng)看圖2,看起來(lái)類(lèi)必須是非線性分離的,一條線是完不成的。因此,我們必須使用隱藏層,以獲得最佳的決策邊界。在這種情形下,我們可能仍然不使用隱藏層,但這將影響分類(lèi)的精確度。所以,最好還是使用隱藏層。
理解我們需要隱藏層的原因,首先需要回答以下兩個(gè)重要的問(wèn)題:
1、所需要隱藏層的數(shù)量是多少?
2、每個(gè)隱藏層中所包含的隱藏神經(jīng)元的數(shù)量是多少?
接著前面的過(guò)程,第一步是畫(huà)出分割兩個(gè)類(lèi)的決策邊界。至少有一個(gè)可能的決策邊界會(huì)正確地分離數(shù)據(jù),如圖所示:

圖2
使用一組直線來(lái)表示決策邊界,這種想法來(lái)自于使用單層感知器作為構(gòu)造塊來(lái)構(gòu)造任何人工神經(jīng)網(wǎng)絡(luò)的方式。單層的感知器是一個(gè)線性分類(lèi)器,它根據(jù)以下等式所創(chuàng)建的直線方程來(lái)分離多個(gè)類(lèi):
y = w_1*x_1 + w_2*x_2+?+ w_i*x_i + b
其中x_i表示輸入,w_i表示它的權(quán)重,b表示偏差,y表示輸出。因?yàn)槊總€(gè)添加的隱藏神經(jīng)元將增加權(quán)重的數(shù)量,所以建議使用最少的隱藏神經(jīng)元來(lái)完成任務(wù),另外,使用比實(shí)際需要更多的隱藏神經(jīng)元也會(huì)增加更多的復(fù)雜性。
回到我們的例子,人工神經(jīng)網(wǎng)絡(luò)是用多個(gè)感知器網(wǎng)絡(luò)構(gòu)建的,與使用多條直線構(gòu)建的網(wǎng)絡(luò)是一樣的。
在這個(gè)例子中,決策邊界被一組直線所代替。這些直線從邊界曲線改變方向的點(diǎn)開(kāi)始,在這些點(diǎn)上,各有兩條直線經(jīng)過(guò),每條直線在不同的方向上。
因?yàn)橹挥性谝粋€(gè)點(diǎn)上,邊界曲線改變了方向,下圖所示的灰色圓圈,那么只需要兩條直線,換句話說(shuō),有兩個(gè)單層感知器網(wǎng)絡(luò),每個(gè)感知器僅僅產(chǎn)生一條直線。

圖3
只需要兩條直線來(lái)表示決策邊界,這告訴我們第一個(gè)隱藏層將有兩個(gè)隱藏神經(jīng)元。
到目前為止,我們有一個(gè)帶有兩個(gè)隱藏神經(jīng)元的隱藏層。每個(gè)隱藏神經(jīng)元可看作一個(gè)線性分類(lèi)器,如上圖所示,表示為一條直線。一個(gè)隱藏層將會(huì)有兩個(gè)輸出,每個(gè)輸出都來(lái)自于一個(gè)分類(lèi)器(即隱藏的神經(jīng)元)。但是,我們要建立一個(gè)單一的分類(lèi)器,并且?guī)в幸粋€(gè)表示類(lèi)標(biāo)簽的輸出,而不是兩個(gè)分類(lèi)器。結(jié)果是,兩個(gè)隱藏神經(jīng)元的輸出被合并成了一個(gè)輸出。換句話說(shuō),這兩條直線將被另一個(gè)神經(jīng)元連接起來(lái),結(jié)果如下圖所示。

圖4
幸運(yùn)的是,我們不需要用單一神經(jīng)元來(lái)添加另一個(gè)隱藏層來(lái)完成這項(xiàng)工作,而是輸出層神經(jīng)元做這項(xiàng)工作。這樣的神經(jīng)元將合并先前生成的兩條直線,使得只有一條直線來(lái)自人工神經(jīng)網(wǎng)絡(luò)的輸出。
在知道隱藏層以及它們的神經(jīng)元的數(shù)量之后,網(wǎng)絡(luò)體系結(jié)構(gòu)現(xiàn)在就已經(jīng)完整了,如下圖所示:

圖5
示例?2
另一個(gè)分類(lèi)的示例如圖6所示,它類(lèi)似于前一個(gè)示例,其中有兩個(gè)類(lèi),并且每個(gè)樣本包括兩個(gè)輸入和一個(gè)輸出。這兩個(gè)示例的區(qū)別就在于決策邊界,示例2的邊界比之前的示例要更復(fù)雜一些。

圖6
根據(jù)指導(dǎo)原則,第一步是畫(huà)出決策邊界,在我們討論中所使用的決策邊界如圖7(a)所示。
下一步是將決策邊界分割成一組直線,其中每一條直線將在人工神經(jīng)網(wǎng)絡(luò)中被模擬成感知器。在畫(huà)出這些直線之前,在決策邊界改變方向所在的那些點(diǎn)應(yīng)該被標(biāo)記為圖7(b)所示的那樣。

圖7
那么究竟我們需要多少直線呢?每個(gè)在頂部和底部的點(diǎn)都有兩條直線經(jīng)過(guò),這樣一共就有四條。中間的點(diǎn)會(huì)有兩條從其它的點(diǎn)共享的兩條直線,要?jiǎng)?chuàng)建的直線如圖8所示:

圖8
因?yàn)榈谝粋€(gè)隱藏層將具有與直線數(shù)量相等的隱藏層神經(jīng)元,那么它有四個(gè)神經(jīng)元。換句話說(shuō),它包含四個(gè)分類(lèi)器,每一個(gè)分類(lèi)器都是由單層感知器創(chuàng)建的。目前,人工神經(jīng)網(wǎng)絡(luò)將會(huì)產(chǎn)生四個(gè)輸出,每個(gè)輸出都會(huì)來(lái)自于一個(gè)分類(lèi)器。下一步是將這些分類(lèi)器連接在一起,這是為了讓網(wǎng)絡(luò)僅產(chǎn)生單一的輸出。換句話說(shuō),這些直線會(huì)被其它隱藏層連接在一起,以形成一條單獨(dú)的曲線。
由模型設(shè)計(jì)者來(lái)選擇網(wǎng)絡(luò)的布局。一個(gè)可用的網(wǎng)絡(luò)結(jié)構(gòu)是構(gòu)造一個(gè)具有兩個(gè)隱藏神經(jīng)元的第二隱藏層。第一個(gè)隱藏神經(jīng)元將連接前兩條直線,最后一個(gè)隱藏神經(jīng)元會(huì)連接最后兩條直線,這就是第二隱藏層,結(jié)果如圖9所示。

圖9
對(duì)此,將有兩條分離的曲線,所以會(huì)有兩個(gè)來(lái)自網(wǎng)絡(luò)的輸出。下一步是將這樣的曲線鏈接在一起,目的是為了從整個(gè)人工神經(jīng)網(wǎng)絡(luò)中僅得到一個(gè)輸出。在這種情況下,輸出層神經(jīng)元可以被用來(lái)做最后的連接,而不是添加一個(gè)新的隱藏層。最后的結(jié)果如圖10所示。

圖10
在網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)完成之后,完整的網(wǎng)絡(luò)體系結(jié)構(gòu)如圖11所示。

圖11
本文作者:【方向】
作者:阿里云云棲社區(qū)
鏈接:http://www.itdecent.cn/p/91138ced2939
來(lái)源:簡(jiǎn)書(shū)
簡(jiǎn)書(shū)著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。