Relu是一个非常优秀的激活哈数,相比较于传统的Sigmoid函数,有三个作用:
1. 防止梯度弥散
2. 稀疏激活性
3. 加快计算
然后可以得到sigmoid的导数以及relu的导数
sigmoid的导数只有在0附近的时候有比较好的激活性,在正负饱和区的梯度都接近于0,所以这会造成梯度弥散,而relu函数在大于0的部分梯度为常数,所以不会产生梯度弥散现象。
relu函数在负半区的导数为0 ,所以一旦神经元激活值进入负半区,那么梯度就会为0,也就是说这个神经元不会经历训练,即所谓的稀疏性。第三,relu函数的导数计算更快,程序实现就是一个if-else语句,而sigmoid函数要进行浮点四则运算