本文約2400字,建議閱讀8分鐘。
本文將通過兩個簡單的例子,講解確定所需隱藏層和神經元數量的方法,幫助初學者構建神經網絡。
人工神經網絡(ANNs)初學者可能會問這樣的問題:
該用多少個隱藏層?
每個隱藏層中有多少個隱藏的神經元?
使用隱藏層/神經元的目的是什麼?
增加隱藏層/神經元的數量總能帶來更好的結果嗎?
很高興我們可以回答這些問題。首先要清楚,如果要解決的問題很複雜,回答這些問題可能會過於複雜。到本文結束時,您至少可以了解這些問題的答案,而且能夠在簡單的例子上進行測試。
ANN的靈感來自生物神經網絡。在計算機科學中,它被簡化表示為一組層級。而層級分為三類,即輸入,隱藏和輸出類。
確定輸入和輸出層的數量及其神經元的數量是最容易的部分。每一神經網絡都有一個輸入和一個輸出層。輸入層中的神經元數量等於正在處理的數據中輸入變量的數量。輸出層中的神經元數量等於與每個輸入相關聯的輸出數量。但挑戰在於確定隱藏層及其神經元的數量。
以下是一些指導,可以幫助了解分類問題中每個隱藏層的隱藏層數和神經元數:
根據數據繪製預期的決策邊界,從而將各個類別分開。
將決策邊界表示為一組線。注意這些線的組合必須服從於決策邊界。
所選的線的數量表示第一隱藏層中隱藏神經元的數量。
如要連接由前一層所創建的連線,則需添加一個新的隱藏層。注意,每次添加一個新的隱藏層時,都需要與上一個隱藏層創建連接。
每個新隱藏層中隱藏神經元的數量等於要建立的連接數。
為便於理解,請看以下實例:
實例一
讓我們從一個兩個類的分類問題的簡單示例開始。如圖1所示,每個示例都有兩個輸入和一個表示類標籤的輸出。它與XOR問題非常相似。
圖1
第一個問題是是否需要隱藏層。確定是否需要隱藏層的規則如下:
在人工神經網絡中,若且唯若數據必須非線性分離時,才需要隱藏層。
如圖2所示,似乎這些類必須是非線性分離的。一條單線不能分離數據。因此,我們必須使用隱藏層以獲得最佳決策邊界。在這種情況下,我們可能仍然不使用隱藏層,但這會影響分類準確性。因此,最好使用隱藏層。
知道需要隱藏層之後,有兩個重要問題需要回答,即:
所需的隱藏層數是多少?
每個隱藏層的隱藏神經元數量是多少?
按照前面的過程,第一步是繪製分割兩個類的決策邊界。如圖2所示,有多個可能的決策邊界正確地分割數據。我們將進一步討論圖2(a)中的那個。
圖2
接下來是通過一組線進行表達決策邊界。
使用一組線來表示決策邊界的事實依據是:任何ANN都是使用單層感知器作為構建塊構建的。單層感知器是一個線性分類器,它使用根據以下等式創建的線來分隔不同類:
y = w_1 * x_1 + w_2 * x_2 +⋯+ w_i * x_i + b
其中 x_i 是 輸入,w_i 是其權重,b 是偏差,y 是輸出。因為添加的每個隱藏神經元都會增加權重數量,且使用更多的隱藏神經元會增加複雜性,因此建議使用最少數量的隱藏神經元來完成任務。
回到我們的例子,說ANN是使用多個感知器網絡構建的,就像說網絡是使用多條線路構建的。
在這個例子中,決策邊界被一組線代替。線從邊界曲線改變方向的點開始。在這一點上,放置兩條線,每條線在不同的方向上。
如圖3所示,因為邊界曲線只有一個點通過灰色圓圈改變方向,所以只需要兩條線。換句話說,這裡有兩個單層感知器網絡,每個感知器產生一條線。
圖3
決策邊界只需要兩條線即可表示,這意味著第一個隱藏層將有兩個隱藏的神經元。
到目前為止,我們有一個隱藏層,其包括有兩個隱藏的神經元,每個隱藏的神經元可以被視為線性分類器,如圖3中的線所示。這裡將有兩類輸出,其中一類來自每一個分類器(即隱藏的神經元)。然而我們希望構建一個只能輸出類標的分類器。因此,兩個隱藏神經元的輸出將合併為一個輸出。換句話說,這兩條線將由另一個神經元連接。結果如圖4所示。
幸運的是,我們不需要添加另一個帶有單個神經元的隱藏層來完成這項工作。輸出層神經元將完成任務。其可將先前生成的兩條線進行融合,使網絡最終只有一個輸出。
圖4
知道隱藏層及其神經元的數量後,網絡架構現已完成,如圖5所示。
圖5
實例二
另一個分類的例子如圖6所示。與之前的例子類似,有兩個分類,其中每個樣本有兩個輸入和一個輸出。區別在於決策邊界。此示例的邊界比前一個示例更複雜。
圖6
根據最開始的指示,第一步是繪製決策邊界。前述中使用的決策邊界如圖7(a)所示。
下一步是將決策邊界分成一組線,每條線都可構建為像ANN感知器那樣的模型。在繪製線之前,應該標記邊界變化方向的點,如圖7(b)所示。
圖7
問題是需要多少條線?頂點和底點中的每一個將具有與它們相關聯的兩條線,總共4條線。中間點有兩條線從其他點共享。要創建的線如圖8所示。
因為第一個隱藏層將具有等於線數的隱藏層神經元,所以第一個隱藏層將具有4個神經元。換句話說,有4個分類器,每個分類器由單層感知器創建。目前,網絡將生成4個輸出,每個分類器一個。接下來是將這些分類器連接在一起,以使網絡僅生成單個輸出。換句話說,線條將通過其他隱藏層連接在一起來生成單獨一條曲線。
圖8
模型設計者可以選擇網絡布局。一種可行的網絡架構是構建具有兩個隱藏神經元的第二隱藏層。第一個隱藏的神經元將連接前兩條線,最後一個隱藏的神經元將連接最後兩條線。第二個隱藏層的結果如圖9所示。
圖9
到目前為止,這裡有兩條分開的曲線。因此,網絡有兩個輸出。接下來是將這些曲線連接在一起從整個網絡中獲得單個輸出。在這種情況下,輸出層神經元可用於進行最終連接而非添加新的隱藏層。最終結果如圖10所示。
圖10
網絡設計完成後,完整的網絡架構如圖11所示。
圖11
更多詳細信息:
深度學習簡介+使用人工神經網絡求解XOR
https://www.slideshare.net/AhmedGadFCIT/brief-introduction-to-deep-learning-solving-xor-using-anns
https://www.youtube.com/watch?v = EjWDFt-2n9k
作者簡介:
Ahmed Gad於2015年7月在埃及Menoufia大學計算機與信息學院(FCI)獲得了信息技術優秀學位的理學士學位。由於他在學院裡排名第一,他在2015年被推薦為一所埃及研究機構的教學助理,然後於2016年在學院裡擔任教學助理和研究員。他目前的研究興趣包括深度學習,機器學習,人工智慧,數位訊號處理和計算機視覺。
原文標題:
Beginners Ask 「How Many Hidden Layers/Neurons to Use in Artificial Neural Networks?
原文連結:
https://www.kdnuggets.com/2018/07/beginners-ask-how-many-hidden-layers-neurons-neural-networks.html
蔣雨暢,香港理工大學大三在讀,主修地理信息,輔修計算機科學,目前在研究學習通過數據科學等方法探索城市與人類活動的關係。希望能認識更多對數據科學感興趣的朋友,了解更多前沿知識,開拓自己的眼界。
工作內容:需要一顆細緻的心,將選取好的外文文章翻譯成流暢的中文。如果你是數據科學/統計學/計算機類的留學生,或在海外從事相關工作,或對自己外語水平有信心的朋友歡迎加入翻譯小組。
你能得到:定期的翻譯培訓提高志願者的翻譯水平,提高對於數據科學前沿的認知,海外的朋友可以和國內技術應用發展保持聯繫,THU數據派產學研的背景為志願者帶來好的發展機遇。
其他福利:來自於名企的數據科學工作者,北大清華以及海外等名校學生他們都將成為你在翻譯小組的夥伴。
點擊文末「閱讀原文」加入數據派團隊~
轉載須知
如需轉載,請在開篇顯著位置註明作者和出處(轉自:數據派ID:datapi),並在文章結尾放置數據派醒目二維碼。有原創標識文章,請發送【文章名稱-待授權公眾號名稱及ID】至聯繫郵箱,申請白名單授權並按要求編輯。
發布後請將連結反饋至聯繫郵箱(見下方)。未經許可的轉載以及改編者,我們將依法追究其法律責任。
點擊「閱讀原文」擁抱組織