首頁>技術>

本文是吳恩達《機器學習》影片筆記第57篇,對應第5周第7個影片。

“Neural Networks Learning:——Putting it together”

前面幾個小節都講了神經網路的一些東東,因為神經網路在機器學習中的地位實在是太重要了,所以需要單獨一節把前面學到的事總結一下。

確定神經網路的結構

神經網路的結構呢,無非就是輸入層、輸出層外加隱藏層,那隱藏層有幾層?每一層有多少個神經元?輸入層、輸出層分別又有多少個單元?

那這些多少,到底該是多少呢?在進行神經網路訓練之前必須回答這些問題。

首先,輸入層的單元數是由你的自變數的維度決定的;

其次,輸出層的單元數又是由要分類的問題最終分成多少個類來決定的。

因此,神經網路結構的選擇問題,實質上就是要確定隱藏層的層數以及各隱藏層的單元數目。

以3個輸入單元、4個輸出單元的神經網路為例,常見的隱藏層的設定如下圖所示。

按分類的效果來說呢,隱藏層的單元數是越多越好的,但是過多的神經元會讓訓練相當的緩慢,因此需要平衡一下,一般將隱藏層的單元數設定為輸入層單元數的2~4倍為宜。而隱藏層的層數呢就以1、2、3層比較常見。

神經網路訓練的一般步驟

Step1:隨機初始化權重;

Step2:實現前向傳播演算法,拿到各個輸入的啟用函式;

Step3:編碼計算代價函式;

Step4:實現反向傳播計算啟用函式的偏導數。

看一下虛擬碼:

程式碼中的m是訓練樣本的個數。

Step5:使用梯度檢驗驗證反向傳播計算偏導數的程式碼是否正確,如果正確就關閉掉梯度檢驗部分的程式碼。

Step6:結合一些更優秀的演算法算出能使代價函式最小的那些引數。

14
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 雲桌面實操:完整步驟帶你學會Vmware虛擬化雲桌面(2)