人工神經(jīng)網(wǎng)絡(luò)中究竟使用多少隱藏層和神經(jīng)元

摘要:本文講述了人工神經(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)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容