深度學習Keras框架筆記之激活函數詳解


    激活函數也是神經網絡中一個很重的部分。每一層的網絡輸出都要經過激活函數。比較常用的有linear,sigmoid,tanh,softmax等。Keras內置提供了很全的激活函數,包括像LeakyReLU和PReLU這種比較新的激活函數。

     一、激活函數的使用

     常用的方法在Activation層中可以找到。看代碼。 

from keras.layers.core import Activation, Dense  
model.add(Dense(64))  
model.add(Activation('tanh'))  

    等價於:  

model.add(Dense(64, activation='tanh')) #此處’tanh’是一個字符串 

  我們也可以將一個Theano function作為激活函數傳遞給activation,如下:

    

deftanh(x):  
    return theano.tensor.tanh(x)     
model.add(Dense(64, activation=tanh)) #此處tanh是函數  
model.add(Activation(tanh))  

  二、常用的激活函數

  • softmax: 在多分類中常用的激活函數,是基於邏輯回歸的。
  • Softplus:softplus(x)=log(1+e^x),近似生物神經激活函數,最近出現的。
  • Relu:近似生物神經激活函數,最近出現的。
  • tanh:雙曲正切激活函數,也是很常用的。
  • sigmoid:S型曲線激活函數,最常用的。
  • hard_sigmoid:基於S型激活函數。
  • linear:線性激活函數,最簡單的。

      三、復雜的激活函數

        更復雜的激活函數,可以在keras.layers.advanced_activations中找到。就是開始提到的PReLU和LeakyReLU。這兩個函數都是在ReLU的基礎之上進行改進的。從相關實驗來看,這些函數具有更好的准確度,但是訓練時間需要更長,因為計算更復雜。

     Keras框架官方文檔:https://keras.io/activations/

     順便再分享下自己的網站:圓柱模板,歡迎廣大愛好者一起訪問探討!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM