機器學習(吳恩達)之學習筆記2--淺層神經網路
05-04
1.激活函數(Activation function)
- 激活函數的選擇
如果神經網路的輸出是二元分類問題,那麼輸出層的激活函數使用Sigmoid函數
如果不知道該用什麼激活函數,那就先試試ReLU函數
之所以要選擇ReLU函數,而不選擇Sigmoid函數,是因為當Z很大時,Sigmoid的導數趨向於0,會使反向傳播的梯度下降得很慢,甚至為0。相反,當Z很大時,ReLU的導數為1,效果會很好。當Z小於0時,ReLU的導數會等於0,這樣會導致梯度下降失效,但是,事實上,實踐中Z小於0的概率是很小很小。如果總覺得有點不放心,可以使用修改過ReLU函數,即leaky ReLU,這樣當Z小於0時,導數不為0,一般是設置為0.01。但實際上,用得比較多還是ReLu,leaky ReLu不怎麼用。
- 使用非線性激活函數的原因
如果不適用非線性激活函數,那麼神經網路只能構建出線性的網路,或者說是線性的函數,因為每一層隱藏層的線性組合,最終也會是線性,那這樣神經網路就失去意義了。
推薦閱讀:
※機器學習研究人員需要了解的8個神經網路架構(上)
※《麻省理工科技評論》全球十大突破性技術,阿里巴巴正研究其中4項
※知識布局-神經網路-數學原理
※玩轉 TensorFlow Playground
※ML領域的生物進化論,進化策略圖文詳解