1. 程式人生 > >獨家 | 初學者的問題:在神經網路中應使用多少隱藏層/神經元?(附例項)

獨家 | 初學者的問題:在神經網路中應使用多少隱藏層/神經元?(附例項)

640?wx_fmt=png

作者:Ahmed Gad

翻譯:蔣雨暢

校對:李海明

本文2400字,建議閱讀8分鐘

本文將通過兩個簡單的例子,講解確定所需隱藏層和神經元數量的方法,幫助初學者構建神經網路。

人工神經網路(ANNs)初學者可能會問這樣的問題:

  • 該用多少個隱藏層?

  • 每個隱藏層中有多少個隱藏的神經元?

  • 使用隱藏層/神經元的目的是什麼?

  • 增加隱藏層/神經元的數量總能帶來更好的結果嗎?

很高興我們可以回答這些問題。首先要清楚,如果要解決的問題很複雜,回答這些問題可能會過於複雜。到本文結束時,您至少可以瞭解這些問題的答案,而且能夠在簡單的例子上進行測試。

ANN的靈感來自生物神經網路。在電腦科學中,它被簡化表示為一組層級。而層級分為三類,即輸入,隱藏和輸出類。

確定輸入和輸出層的數量及其神經元的數量是最容易的部分。每一神經網路都有一個輸入和一個輸出層。輸入層中的神經元數量等於正在處理的資料中輸入變數的數量。輸出層中的神經元數量等於與每個輸入相關聯的輸出數量。但挑戰在於確定隱藏層及其神經元的數量。

以下是一些指導,可以幫助瞭解分類問題中每個隱藏層的隱藏層數和神經元數:

  • 根據資料繪製預期的決策邊界,從而將各個類別分開。

  • 將決策邊界表示為一組線。注意這些線的組合必須服從於決策邊界。

  • 所選的線的數量表示第一隱藏層中隱藏神經元的數量。

  • 如要連線由前一層所建立的連線,則需新增一個新的隱藏層。注意,每次新增一個新的隱藏層時,都需要與上一個隱藏層建立連線。

  • 每個新隱藏層中隱藏神經元的數量等於要建立的連線數。

 為便於理解,請看以下例項:

例項一

 
讓我們從一個兩個類的分類問題的簡單示例開始。如圖1所示,每個示例都有兩個輸入和一個表示類標籤的輸出。它與XOR問題非常相似。

640?wx_fmt=png

圖1

第一個問題是是否需要隱藏層。確定是否需要隱藏層的規則如下:

在人工神經網路中,當且僅當資料必須非線性分離時,才需要隱藏層。

如圖2所示,似乎這些類必須是非線性分離的。一條單線不能分離資料。因此,我們必須使用隱藏層以獲得最佳決策邊界。在這種情況下,我們可能仍然不使用隱藏層,但這會影響分類準確性。因此,最好使用隱藏層。

知道需要隱藏層之後,有兩個重要問題需要回答,即:

  • 所需的隱藏層數是多少?

  • 每個隱藏層的隱藏神經元數量是多少?

按照前面的過程,第一步是繪製分割兩個類的決策邊界。如圖2所示,有多個可能的決策邊界正確地分割資料。我們將進一步討論圖2(a)中的那個。

640?wx_fmt=png

圖2

接下來是通過一組線進行表達決策邊界。

使用一組線來表示決策邊界的事實依據是:任何ANN都是使用單層感知器作為構建塊構建的。單層感知器是一個線性分類器,它使用根據以下等式建立的線來分隔不同類:

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

其中 x_i 是 輸入,w_i 是其權重,b 是偏差,y 是輸出。因為新增的每個隱藏神經元都會增加權重數量,且使用更多的隱藏神經元會增加複雜性,因此建議使用最少數量的隱藏神經元來完成任務。

回到我們的例子,說ANN是使用多個感知器網路構建的,就像說網路是使用多條線路構建的。

在這個例子中,決策邊界被一組線代替。線從邊界曲線改變方向的點開始。在這一點上,放置兩條線,每條線在不同的方向上。

如圖3所示,因為邊界曲線只有一個點通過灰色圓圈改變方向,所以只需要兩條線。換句話說,這裡有兩個單層感知器網路,每個感知器產生一條線。

640?wx_fmt=png

圖3

決策邊界只需要兩條線即可表示,這意味著第一個隱藏層將有兩個隱藏的神經元。

到目前為止,我們有一個隱藏層,其包括有兩個隱藏的神經元,每個隱藏的神經元可以被視為線性分類器,如圖3中的線所示。這裡將有兩類輸出,其中一類來自每一個分類器(即隱藏的神經元)。然而我們希望構建一個只能輸出類標的分類器。因此,兩個隱藏神經元的輸出將合併為一個輸出。換句話說,這兩條線將由另一個神經元連線。結果如圖4所示。

幸運的是,我們不需要新增另一個帶有單個神經元的隱藏層來完成這項工作。輸出層神經元將完成任務。其可將先前生成的兩條線進行融合,使網路最終只有一個輸出。

640?wx_fmt=png

圖4

知道隱藏層及其神經元的數量後,網路架構現已完成,如圖5所示。

640?wx_fmt=png

圖5
 

例項二

 
另一個分類的例子如圖6所示。與之前的例子類似,有兩個分類,其中每個樣本有兩個輸入和一個輸出。區別在於決策邊界。此示例的邊界比前一個示例更復雜。

640?wx_fmt=png

圖6
 

根據最開始的指示,第一步是繪製決策邊界。前述中使用的決策邊界如圖7(a)所示。

下一步是將決策邊界分成一組線,每條線都可構建為像ANN感知器那樣的模型。在繪製線之前,應該標記邊界變化方向的點,如圖7(b)所示。

640?wx_fmt=jpeg

圖7
 

問題是需要多少條線?頂點和底點中的每一個將具有與它們相關聯的兩條線,總共4條線。中間點有兩條線從其他點共享。要建立的線如圖8所示。

因為第一個隱藏層將具有等於線數的隱藏層神經元,所以第一個隱藏層將具有4個神經元。換句話說,有4個分類器,每個分類器由單層感知器建立。目前,網路將生成4個輸出,每個分類器一個。接下來是將這些分類器連線在一起,以使網路僅生成單個輸出。換句話說,線條將通過其他隱藏層連線在一起來生成單獨一條曲線。

640?wx_fmt=png

圖8

模型設計者可以選擇網路佈局。一種可行的網路架構是構建具有兩個隱藏神經元的第二隱藏層。第一個隱藏的神經元將連線前兩條線,最後一個隱藏的神經元將連線最後兩條線。第二個隱藏層的結果如圖9所示。

640?wx_fmt=png

圖9

到目前為止,這裡有兩條分開的曲線。因此,網路有兩個輸出。接下來是將這些曲線連線在一起從整個網路中獲得單個輸出。在這種情況下,輸出層神經元可用於進行最終連線而非新增新的隱藏層。最終結果如圖10所示。

640?wx_fmt=png

圖10

網路設計完成後,完整的網路架構如圖11所示。

640?wx_fmt=png

圖11

更多詳細資訊:

深度學習簡介+使用人工神經網路求解XOR

  • SlideShare:

https://www.slideshare.net/AhmedGadFCIT/brief-introduction-to-deep-learning-solving-xor-using-anns

  • YouTube:

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 

譯者簡介

640?wx_fmt=png

蔣雨暢,香港理工大學大三在讀,主修地理資訊,輔修電腦科學,目前在研究學習通過資料科學等方法探索城市與人類活動的關係。希望能認識更多對資料科學感興趣的朋友,瞭解更多前沿知識,開拓自己的眼界。

翻譯組招募資訊

工作內容:需要一顆細緻的心,將選取好的外文文章翻譯成流暢的中文。如果你是資料科學/統計學/計算機類的留學生,或在海外從事相關工作,或對自己外語水平有信心的朋友歡迎加入翻譯小組。

你能得到:定期的翻譯培訓提高志願者的翻譯水平,提高對於資料科學前沿的認知,海外的朋友可以和國內技術應用發展保持聯絡,THU資料派產學研的背景為志願者帶來好的發展機遇。

其他福利:來自於名企的資料科學工作者,北大清華以及海外等名校學生他們都將成為你在翻譯小組的夥伴。

點選文末“閱讀原文”加入資料派團隊~

轉載須知

如需轉載,請在開篇顯著位置註明作者和出處(轉自:資料派ID:datapi),並在文章結尾放置資料派醒目二維碼。有原創標識文章,請傳送【文章名稱-待授權公眾號名稱及ID】至聯絡郵箱,申請白名單授權並按要求編輯。

釋出後請將連結反饋至聯絡郵箱(見下方)。未經許可的轉載以及改編者,我們將依法追究其法律責任。


640?wx_fmt=png640?wx_fmt=jpeg

點選“閱讀原文”擁抱組織