tft每日頭條

 > 生活

 > 神經網絡神經元個數

神經網絡神經元個數

生活 更新时间:2024-10-18 07:49:49

摘要: 本文講述了人工神經網絡中使用了多少隐藏層,每個隐藏層中包含多少神經元,使用隐藏層和神經元的目的,以及增加隐藏的層數和神經元的數量總是會帶來什麼結果。

人工神經網絡(ANNs)的初學者很可能都會面臨一些問題。其中一些問題包括使用隐藏層的數量是多少?每個隐藏層中包含了多少個神經元?使用隐藏的層和神經元的目的是什麼?增加隐藏的層數和神經元的數量總是會帶來更好的結果嗎?

非常高興地告訴大家,這些問題都是可以回答的。

人工神經網絡的靈感來自于生物學的神經網絡。為了簡單起見,在計算機科學中,它被表示為一系列的網絡層。這些層分為三類:分别是輸入層、隐藏層和輸出層。

了解輸入層和輸出層的數量和它們的神經元的數量是比較容易的。每個人工神經網絡都有一個單獨的輸入層和輸出層。輸入層中的神經元數量等于正在處理的數據中的輸入變量的數量。在輸出層中的神經元的數量等于與每個輸入相關聯的輸出的數量。但是,真正的挑戰是如何知道隐藏層和它們所包含的神經元的數量。

這裡有一些可以依照的準則,用于知道分類問題中隐藏層的數量和每個隐藏層中所包含的神經元的數量:

· 基于數據,畫出一個期望的決策邊界用來分離多個類;

· 将決策邊界表示為一組直線。注意,這樣的直線組合必須服從于決策邊界;

· 所選直線的數量等于在第一個隐藏層中的隐藏神經元的數量;

· 為了連接由前一層所創建的直線,添加了一個新的隐藏層。需要注意的是,當每次需要在前一個隐藏層中創建直線之間的連接時,都要添加一個新的隐藏層;

· 每個新的隐藏層中隐藏神經元的數量等于要建立的連接的數量;

為了把事情弄的更清楚,讓我們用之前的方法和原則來舉幾個例子。

示例 1

讓我們從下圖中簡單的分類問題開始,每個樣本都有兩個輸入,和一個用于表示類标簽的輸出,這與XOR問題十分相似。

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)1

圖1

第一個要回答的問題是隐藏層是否是必需的。為了解答這個問題,需要遵循的規則如下:

在人工神經網絡中,僅僅當數據必須被非線性分離的時候,隐藏層才是必需的。

請看圖2,看起來類必須是非線性分離的,一條線是完不成的。因此,我們必須使用隐藏層,以獲得最佳的決策邊界。在這種情形下,我們可能仍然不使用隐藏層,但這将影響分類的精确度。所以,最好還是使用隐藏層。

理解我們需要隐藏層的原因,首先需要回答以下兩個重要的問題:

1、所需要隐藏層的數量是多少?

2、每個隐藏層中所包含的隐藏神經元的數量是多少?

接着前面的過程,第一步是畫出分割兩個類的決策邊界。至少有一個可能的決策邊界會正确地分離數據,如圖所示:

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)2

圖2

使用一組直線來表示決策邊界,這種想法來自于使用單層感知器作為構造塊來構造任何人工神經網絡的方式。單層的感知器是一個線性分類器,它根據以下等式所創建的直線方程來分離多個類:

y = w_1*x_1 w_2*x_2 ⋯ w_i*x_i b

其中x_i表示輸入,w_i表示它的權重,b表示偏差,y表示輸出。因為每個添加的隐藏神經元将增加權重的數量,所以建議使用最少的隐藏神經元來完成任務,另外,使用比實際需要更多的隐藏神經元也會增加更多的複雜性。

回到我們的例子,人工神經網絡是用多個感知器網絡構建的,與使用多條直線構建的網絡是一樣的。

在這個例子中,決策邊界被一組直線所代替。這些直線從邊界曲線改變方向的點開始,在這些點上,各有兩條直線經過,每條直線在不同的方向上。

因為隻有在一個點上,邊界曲線改變了方向,下圖所示的灰色圓圈,那麼隻需要兩條直線,換句話說,有兩個單層感知器網絡,每個感知器僅僅産生一條直線。

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)3

圖3

隻需要兩條直線來表示決策邊界,這告訴我們第一個隐藏層将有兩個隐藏神經元。

到目前為止,我們有一個帶有兩個隐藏神經元的隐藏層。每個隐藏神經元可看作一個線性分類器,如上圖所示,表示為一條直線。一個隐藏層将會有兩個輸出,每個輸出都來自于一個分類器(即隐藏的神經元)。但是,我們要建立一個單一的分類器,并且帶有一個表示類标簽的輸出,而不是兩個分類器。結果是,兩個隐藏神經元的輸出被合并成了一個輸出。換句話說,這兩條直線将被另一個神經元連接起來,結果如下圖所示。

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)4

圖4

幸運的是,我們不需要用單一神經元來添加另一個隐藏層來完成這項工作,而是輸出層神經元做這項工作。這樣的神經元将合并先前生成的兩條直線,使得隻有一條直線來自人工神經網絡的輸出。

在知道隐藏層以及它們的神經元的數量之後,網絡體系結構現在就已經完整了,如下圖所示:

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)5

圖5

示例 2

另一個分類的示例如圖6所示,它類似于前一個示例,其中有兩個類,并且每個樣本包括兩個輸入和一個輸出。這兩個示例的區别就在于決策邊界,示例2的邊界比之前的示例要更複雜一些。

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)6

圖6

根據指導原則,第一步是畫出決策邊界,在我們讨論中所使用的決策邊界如圖7(a)所示。

下一步是将決策邊界分割成一組直線,其中每一條直線将在人工神經網絡中被模拟成感知器。在畫出這些直線之前,在決策邊界改變方向所在的那些點應該被标記為圖7(b)所示的那樣。

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)7

圖7

那麼究竟我們需要多少直線呢?每個在頂部和底部的點都有兩條直線經過,這樣一共就有四條。中間的點會有兩條從其它的點共享的兩條直線,要創建的直線如圖8所示:

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)8

圖8

因為第一個隐藏層将具有與直線數量相等的隐藏層神經元,那麼它有四個神經元。換句話說,它包含四個分類器,每一個分類器都是由單層感知器創建的。目前,人工神經網絡将會産生四個輸出,每個輸出都會來自于一個分類器。下一步是将這些分類器連接在一起,這是為了讓網絡僅産生單一的輸出。換句話說,這些直線會被其它隐藏層連接在一起,以形成一條單獨的曲線。

由模型設計者來選擇網絡的布局。一個可用的網絡結構是構造一個具有兩個隐藏神經元的第二隐藏層。第一個隐藏神經元将連接前兩條直線,最後一個隐藏神經元會連接最後兩條直線,這就是第二隐藏層,結果如圖9所示。

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)9

圖9

對此,将有兩條分離的曲線,所以會有兩個來自網絡的輸出。下一步是将這樣的曲線鍊接在一起,目的是為了從整個人工神經網絡中僅得到一個輸出。在這種情況下,輸出層神經元可以被用來做最後的連接,而不是添加一個新的隐藏層。最後的結果如圖10所示。

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)10

圖10

在網絡結構設計完成之後,完整的網絡體系結構如圖11所示。

神經網絡神經元個數(人工神經網絡中究竟使用多少隐藏層和神經元)11

圖11

阿裡雲雲栖社區組織翻譯。

文章原标題《Beginners Ask “How Many Hidden Layers/Neurons to Use in Artificial Neural Networks?”》

作者:Ahmed Gad, KDnuggets Contributor

譯者:奧特曼,審校:袁虎。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved