激活函数
因为线性的卷积运算,无法形成复杂的空间表示,故很难提取出高语义的信息,因此需要加入非线性的映射,称为激活函数,可以逼近任意的非线性函数,以提升整个神经网络的表达能力.
常用的激活函数
- Sigmoid 函数
σ(x)=1+e−x1
\sigma(x) 的导数计算
σ(x)′=(1+e−x1)′=1−1+e−x1=1−σ(x)
目的是将一个实数输入转化到 0~1 之间的输出,具体的说也是将越大的负数转化到越靠近 0, 将越大的正数转化到越靠近 1. 即 0 端对应抑制状态,1 端对应激活状态. 中间部分梯度大.
缺点:
(1) Sigmoid 函数会造成梯度消失. 靠近 0 和 1 两端时,梯度几乎变为 0,
(2) Sigmoid 输出不是以 0 为均值, 这会导致经过 SIgmoid 激活函数之后的输出,作为最后一层网络的输入时候是非 0 均值,这个时候如果输入进入下一层神经元时全是正的,这就导梯度全是正的, 更新参数时永远是整的。
- ReLU 函数
为了缓解梯度消失现象,修正线性单元,引入 ReLU 函数,
$$
ReLU(x) = max(0, x) = \left{
$$
ReLU(x)=max(0,x)={0x==ifx<0ifx≥0
ReLU 函数在 小于 0 的部分,值与梯度皆为 0,而在大于 0 的部分中导数保持为 1,避免 SIgmoid 函数的梯度消失问题.
还有很多激活函数这不一一介绍。
Ming Xu 发布了6 篇原创文章 · 获赞 0 · 访问量 218 私信 关注