为什么要使用激活函数?目前只介绍了sigmoid函数。下面多介绍几个激活函数。
sigmoid
现在已经不使用,除非在输出层进行0~1的概率输出时使用

tanh
几乎在任何场合都比sigmoid好用,因为它和sigmoid图像相同,只是进行了平移,但是使数据在函数输出以0为中心的,这样会使权重更新效率提高。

ReLU
目前最常用的激活函数,基本就是默认使用
-
在输入为正数的时候,不存在梯度饱和问题。
-
计算速度要快很多。ReLU函数只有线性关系,不管是前向传播还是反向传播,都比sigmod和tanh要快很多。(sigmod和tanh要计算指数,计算速度会比较慢)
当然,缺点也是有的:
-
当输入是负数的时候,ReLU是完全不被激活的,这就表明一旦输入到了负数,ReLU就会死掉。这样在前向传播过程中,还不算什么问题,有的区域是敏感的,有的是不敏感的。但是到了反向传播过程中,输入负数,梯度就会完全到0,这个和sigmod函数、tanh函数有一样的问题。
-
我们发现ReLU函数的输出要么是0,要么是正数,这也就是说,ReLU函数也不是以0为中心的函数。
6
非线性激活函数的必要性
如果一直使用线性激活函数,也就是直接把输入给输出,实则是一直在计算线性激活函数,这样对于隐层没有意义。线性的因层一点用也没有。因为两个线性函数的组合本身也还就是线性函数。
当然也有一个例外,当你需要在输出层进行回归的时候,可以使用线性函数,例如房价预测这样的。
一些激活函数的导数



网友评论