人工神经网络之激活函数 -RELU函数
生活随笔
收集整理的這篇文章主要介紹了
人工神经网络之激活函数 -RELU函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一句話概括:不用simgoid和tanh作為激活函數,而用ReLU作為激活函數的原因是:加速收斂。
因為sigmoid和tanh都是飽和(saturating)的。何為飽和?個人理解是把這兩者的函數曲線和導數曲線plot出來就知道了:他們的導數都是倒過來的碗狀,也就是,越接近目標,對應的導數越小。而ReLu的導數對于大于0的部分恒為1。于是ReLU確實可以在BP的時候能夠將梯度很好地傳到較前面的網絡。
ReLU(線性糾正函數)取代sigmoid函數去激活神經元。
定義為:
代碼:
x=-10:0.001:10; relu=max(0,x); %分段函數的表示方法如下 %y=sqrt(x).*(x>=0&x<4)+2*(x>=4&x<6)+(5-x/2).*(x>=6&x<8)+1*(x>=8); reluDer=0.*(x<0)+1.*(x>=0); figure; plot(x,relu,‘r‘,x,reluDer,‘b--‘); title(‘Relu函數max(0,x)(實線)及其導數0,1(虛線)‘); legend(‘Relu原函數‘,‘Relu導數‘); set(gcf,‘NumberTitle‘,‘off‘); set(gcf,‘Name‘,‘Relu函數(實線)及其導數(虛線)‘);輸出:
? ? ?可見,ReLU 在x<0 時硬飽和。由于 x>0時導數為 1,所以,ReLU 能夠在x>0時保持梯度不衰減,從而緩解梯度消失問題。但隨著訓練的推進,部分輸入會落入硬飽和區,導致對應權重無法更新。這種現象被稱為“神經元死亡”。
? ? ?ReLU還經常被“詬病”的一個問題是輸出具有偏移現象[7],即輸出均值恒大于零。偏移現象和 神經元死亡會共同影響網絡的收斂性。
總結
以上是生活随笔為你收集整理的人工神经网络之激活函数 -RELU函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工神经网络之激活函数总结
- 下一篇: 人工神经网络之激活函数 -softmax