為什麼需要乙個激勵函式

2021-09-11 13:52:10 字數 1086 閱讀 2873

那首先第乙個問題,什麼是激勵函式呢?首先用簡單的語句進行概括,就好比我們的現實總是殘酷的,而我們周圍的生活也是時刻發生這變化的,那其實所謂的激勵函式就是來去解決我們在機器學習中無法用線性方程去解決的問題,那麼這個時候你可能會想,什麼是線性方程呢?

那這個時候,我們其實就可以討論如何在神經網路中描述線性和非線性任務了,在這個時候,其實我們可以把整個神經網路寫成乙個式子y=wx w是我們需要的引數,x是輸入值, y是我們**得到的結果.用這個式子,我們就可以很好地來去描述剛才我們提出的那個線性問題,因為w提出來的是乙個固定的數,但是這樣似乎並不能符合我們想讓這個直線扭動起來成為非線性方程的乙個結果,這個時候,就需要我們這個文章的主人公激勵函式了,這個時候激勵函式就拔刀相助,出來說,讓我來掰彎他吧(y=af(wx)),這裡的af就是所說的激勵函式.激勵函式這時候掏出了自己的掰彎利器,用力套在了原函式上,這樣原函式就被掰彎了.

其實這個激勵函式af()並不是什麼高深的東西,本質上他也是乙個非線性的方程,大概有relu,sigmoid,tanh這樣的非線性方程,將這些掰彎利器強行把原有的資料結果給掰彎了,這樣線性結果y也就有了非線性的特徵.

現在舉個例子:假設現在我使用了relu這個掰彎利器,如果此時wx的結果是1,y還將是1,wx的結果是-1的時候,y的結果這個時候就可能是0,你甚至可以創造自己的激勵函式來去處理自己的資料問題.不過要確保的是這些激勵函式是必須要可以微分的.因為在誤差反向傳遞的時候,只有這些可微分的激勵函式才可以把這些誤差反射回去.

想要恰當的使用這些激勵函式還是有竅門的,比如當你的神經層不是很多的時候,比如只有兩三次四五層的時候.這個時候使用任意的激勵函式去掰彎這個時候都是可行的,都不會有很大的影響,但是當你的神經網路層數很多的時候,就不要隨便使用激勵函式了,就必須要謹慎的思考和考慮.因為這個時候就會涉及到梯度**,梯度消失的情況.等將來有機會我們可以好好聊聊梯度**,梯度消失的問題.

那麼這個時候你就會想問,在很多的例子中,我們使用的最多的激勵函式是那些?最好用的激勵函式是那些?在我自身總結和結合前人的教訓中可以得出經驗.在少層的神經網路中,我們可以嘗試使用很多種不同組合的激勵函式.在卷積神經網路的卷積層中,推薦的激勵函式是relu.在迴圈神經網路中,推薦的是relu或者是tanh.這個以後具體怎麼選,在我認真學習總結後會寫出來分享給大家.

為什麼引入非線性激勵函式

bat機器學習面試1000題系列 第1 305題 csdn部落格 為什麼引入非線性激勵函式?深度學習 dl基礎 中 線性激勵函式下,多層網路與一層網路相當 比如,兩層的網路f w1 f w2x w1w2x wx。第二,非線性變換是深度學習有效的原因之一。原因在於 非線性相當於對空間進行變換,變換完成...

MySQL為什麼需要乙個主鍵

主鍵 表中每一行都應該有可以唯一標識自己的一列 或一組列 乙個顧客可以使用顧客編號列,而訂單可以使用訂單id,雇員可以使用雇員id 或 雇員社會保險號。主鍵 primary key 一列 或一組列 其值能夠唯一區分表中的每個行。唯一標識表中每行的這個列 或這組列 稱為主鍵。沒有主鍵,更新或刪除表中特...

Vue元件中data為什麼需要是乙個函式

關於vue元件中元件內部資料繫結通過data 進行 data不是乙個物件型別,需要是乙個函式型別,如果傳入非函式型別會報錯 乙個小例子 對於obj型別,如果在 內部返回或者引用外部的obj,由於引用的是位址,會指向同乙個物件,所以如果obj定義在for迴圈外部最終結果,均為 即指向同乙個位址 let...