神經網絡中的激活函數

激活函數是神經網絡的重要的組成部分,但是什麼是激活函數呢,有什麼作用呢?

激活函數的來源

線性函數是很簡單的函數,也正是因爲它的簡單,它不能很好的概括一些複雜的問題,如何才能把線性的函數變成非線性的呢?這時候激活函數出場了,說“我來掰彎你”,複雜問題解決了。

激活函數

在這裏插入圖片描述
激活函數套在原來的函數上,用力一扭,原來的線性函數被扭彎了。

這個AF(activation function)也不是什麼觸不可及的東西,它本質就是另外一個非線性函數。比如說relu,sigmoid,tanh等。將這些掰彎利器嵌套在原有的結果之上,活生生把原有的線性結果給扭曲了。是的輸出結果y也有了非線性的特徵。舉個例子,比如使用了relu這個掰彎利器,如果此時線性函數的結果是1,y還是1,不過線性函數爲-1的時候,y不再是-1,而會是0。

你甚至可以創造自己的激活函數來處理自己的問題,不過要確保的是這些激活函數必須是可以微分的,因爲在backpropagation誤差反向傳遞的時候,只有這些可微分的激活函數才能把誤差傳遞回去。

常用選擇

在這裏插入圖片描述

要恰當使用這些激活函數,還是有竅門的。比如當你的神經網絡層只有2-3層,不是很多的時候,對於隱藏層,使用任意的激活函數,隨便掰彎是可以的,不會有特別大的影響。不過當你使用特別多層的神經網絡,在掰彎的時候,萬萬不能隨意選擇利器。因爲這會涉及到梯度爆炸,梯度消失的問題。

在具體的例子中,我們默認首選的激活函數是什麼。在少量層的結構中,我們可以嘗試很多不同的激活函數。在cnn的卷積層中,推薦的激活函數是relu。在rnn中,推薦的是tanh或者是relu。

發佈了240 篇原創文章 · 獲贊 26 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章