神经网络的输出层有哪些_神经网络算法—总结篇
本文是吳恩達《機器學習》視頻筆記第57篇,對應第5周第7個視頻。
“Neural Networks Learning:——Putting it together”
前面幾個小節都講了神經網絡的一些東東,因為神經網絡在機器學習中的地位實在是太重要了,所以需要單獨一節把前面學到的事總結一下。
確定神經網絡的結構
神經網絡的結構呢,無非就是輸入層、輸出層外加隱藏層,那隱藏層有幾層?每一層有多少個神經元?輸入層、輸出層分別又有多少個單元?
那這些多少,到底該是多少呢?在進行神經網絡訓練之前必須回答這些問題。
首先,輸入層的單元數是由你的自變量的維度決定的;
其次,輸出層的單元數又是由要分類的問題最終分成多少個類來決定的。
因此,神經網絡結構的選擇問題,實質上就是要確定隱藏層的層數以及各隱藏層的單元數目。
以3個輸入單元、4個輸出單元的神經網絡為例,常見的隱藏層的設置如下圖所示。
按分類的效果來說呢,隱藏層的單元數是越多越好的,但是過多的神經元會讓訓練相當的緩慢,因此需要平衡一下,一般將隱藏層的單元數設置為輸入層單元數的2~4倍為宜。而隱藏層的層數呢就以1、2、3層比較常見。
神經網絡訓練的一般步驟
Step1:隨機初始化權重;
Step2:實現前向傳播算法,拿到各個輸入的激活函數;
Step3:編碼計算代價函數;
Step4:實現反向傳播計算激活函數的偏導數。
看一下偽代碼:
代碼中的m是訓練樣本的個數。
Step5:使用梯度檢驗驗證反向傳播計算偏導數的代碼是否正確,如果正確就關閉掉梯度檢驗部分的代碼。
Step6:結合一些更優秀的算法算出能使代價函數最小的那些參數。
總結
以上是生活随笔為你收集整理的神经网络的输出层有哪些_神经网络算法—总结篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用python处理excel 数据分析_
- 下一篇: omwin密立根油滴实验数据处理程序_大