1,.為什麼要用啟用函式?
答:如果不用激勵函式,每一層輸出都是上層輸入的線性函式,無論神經網路有多少層,輸出都是輸入的線性組合。
如果使用的話,啟用函式給神經元引入了非線性因素,使得神經網路可以任意逼近任何非線性函式,這樣神經網路就可以應用到眾多的非線性模型中。
2.常用的啟用函式以及它們的優缺點?
答:1)sigmoid函式:目前幾乎被淘汰
sigmoid函式也叫 logistic 函式,用於隱層神經元輸出,取值範圍為(0,1),它可以將乙個實數對映到(0,1)的區間,可以用來做二分類。在特徵相差比較複雜或是相差不是特別大時效果比較好。
缺點:a.飽和時梯度值非常小。由於bp演算法反向傳播的時候後層的梯度是以乘性方式傳遞到前層,因此當層數比較多的時候,傳到前層的梯度就會非常小,網路權值得不到有效的更新,即梯度耗散。如果該層的權值初始化使得f(x) 處於飽和狀態時,網路基本上權值無法更新。
b.啟用函式計算量大,反向傳播求誤差梯度時,求導涉及除法
2)tanh函式:
也稱為雙切正切函式,取值範圍為[-1,1],tanh在特徵相差明顯時的效果會很好,在迴圈過程中會不斷擴大特徵效果。與 sigmoid 的區別是,tanh 是 0 均值的,因此實際應用中 tanh 會比 sigmoid 更好。
缺點:仍然具有飽和的問題
3)relu函式:
alex在2023年提出的一種新的啟用函式。該函式的提出很大程度的解決了bp演算法在優化深層神經網路時的梯度耗散問題
優點:a.x>0 時,梯度恒為1,無梯度耗散問題,收斂快
b.增大了網路的稀疏性。當x<0 時,該層的輸出為0,訓練完成後為0的神經元越多,稀疏性越大,提取出來的特徵就約具有代表性,泛化能力越強。即得到同樣的效果,真正起作用的神經元越少,網路的泛化效能越好
c.運算量小而且用 relu 得到的 sgd 的收斂速度會比 sigmoid/tanh 快很多
缺點:訓練的時候很」脆弱」,很容易就」die」了例如,乙個非常大的梯度流過乙個 relu 神經元,更新過引數之後,這個神經元再也不會對任何資料有啟用現象了,那麼這個神經元的梯度就永遠都會是 0.如果 learning rate 很大,
那麼很有可能網路中的 40% 的神經元都」dead」了
3)leaky relu函式:
改善了relu的死亡特性,但是也同時損失了一部分稀疏性,且增加了乙個超引數,目前來說其好處不太明確
總結:真實使用的時候最常用的還是relu函式,注意學習率的設定以及死亡節點所佔的比例即可,對於輸出層,應當盡量選擇適合因變數分布的啟用函式:
1.對於只有0,1取值的雙值因變數,logistic函式是乙個比較好的選擇;
2.對於有多個取值的離散因變數,比如0到9數字識別,softmax啟用函式是logistic啟用函式的自然衍生;
3.對於有限值域的連續因變數logistic或者tanh啟用函式都可以用,但是需要將因變數的值域伸縮到logistic或tanh對應的值域中
4.如果因變數取值為正,但是沒有上限,那麼指數函式是乙個較好的選擇
5.如果因變數沒有有限值域,或者雖然有限值域但是邊界未知,那麼最好採用線性函式作為啟用函式
更詳細的介紹,可以檢視這篇部落格
啟用函式總結
一 主要作用 啟用函式的主要作用就是加入非線性因素,以解決線性模型表達能力不足的缺陷,在整個神經網路起到至關重要的作用。在神經網路中常用的啟用函式有sigmoid tanh和relu等,下面逐一介紹。二 sigmod函式 1 函式介紹 sigmoid是常用的非線性的啟用函式,數學公式如下 2 函式曲...
啟用函式總結
1.sigmod函式 函式公式和圖表如下圖 在sigmod函式中我們可以看到,其輸出是在 0,1 這個開區間內,這點很有意思,可以聯想到概率,但是嚴格意義上講,不要當成概率。sigmod函式曾經是比較流行的,它可以想象成乙個神經元的放電率,在中間斜率比較大的地方是神經元的敏感區,在兩邊斜率很平緩的地...
啟用函式總結
cnn rnn各種模型啟用函式總結 sigmoid函式是早期非常經典的啟用函式,輸出值在 0,1 之間,當輸入值為非常大負數時,值為0,當輸入值非常大正數時,值為1。sigmoid非常經典,但是現在它以不太受歡迎,原因是它存在乙個幾個比較大的缺陷,後面做詳細討論。tanh函式是sigmoid函式的一...