PPO 莫煩 ReLU啟用函式的缺點

2021-10-06 19:03:04 字數 600 閱讀 2196

// morvanzhou 

def_build_anet

(self, name, trainable)

:with tf.variable_scope(name)

: l1 = tf.layers.dense(self.tfs,

100, tf.nn.relu, trainable=trainable)

訓練的時候很」脆弱」,很容易就」die」了,訓練過程該函式不適應較大梯度輸入,因為在引數更新以後,relu的神經元不會再有啟用的功能,導致梯度永遠都是零。

例如,乙個非常大的梯度流過乙個 relu 神經元,更新過引數之後,這個神經元再也不會對任何資料有啟用現象了,那麼這個神經元的梯度就永遠都會是 0.

如果 learning rate 很大,那麼很有可能網路中的 40% 的神經元都」dead」了。

卷積神經網路輸出一直不變

action固定乙個值,或邊界值

換乙個啟用函式就好了,別用relu,可以試一試leaky relu,rrelu,tanh等

tf.layers.batch_normalization() 參考

[1]:

[2]:

ReLU啟用函式

在深度神經網路中,通常使用一種叫修正線性單元 rectified linear unit,relu 作為神經元的啟用函式。relu起源於神經科學的研究 2001年,dayan abott從生物學角度模擬出了腦神經元接受訊號更精確的啟用模型,如下圖 其中橫軸是時間 ms 縱軸是神經元的放電速率 fir...

ReLU啟用函式,Maxout

在使用sig moid sigmoid sigmoi d啟用函式進行梯度下降調參時,往往會出現梯度消失的問題,即無法找到收斂點。神經網路主要的訓練方法是bp演算法,bp演算法的基礎是導數的鏈式法則,也就是多個導數的乘積。而sig moid sigmoid sigmoi d的導數最大為0.25,且大部...

ReLU啟用函式雜談

在實現多層感知機 實現中使用了relu啟用函式 r el u x max x,0 relu x max x,0 relu x ma x x,0 形狀大概是這樣的 這裡根據幾個問題來進行回答解釋 為什麼要使用啟用函式呢?簡單來說啟用函式的作用就是將仿射函式進行非線性化,可以擬合出更多的情況。更詳細的解...