機器學習(吳恩達)之學習筆記2--淺層神經網路

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領域的生物進化論,進化策略圖文詳解

TAG:機器學習 | 神經網路 |