学习笔记|神经网络激活函数总结

文章参考自https://mp.weixin.qq.com/s/pA9JW75p9J5e5KHe3ifcBQ

感谢,仅用于学习,侵删


不同损失函数作者在mnist数据集上训练的损失如下


sigmoid 函数

定义式

图像

sigmoid函数是一个logistic函数(不管输入是什么输出总在0和1之间)。很多激活函数都是非线性或者线性和非线性函数的组合(很少)


存在问题:

若输入值通常很大,则经过激活函数会遇到梯度消失的问题

如果所有权重都很大,即使乘上学习率,回传的梯度也很大,爆炸性更新权值,会遇到梯度爆炸的问题

梯度爆炸解决方法:梯度裁剪/规范

选取一个梯度阈值,超过阈值进行裁剪或者通过梯度规范化将其缩放到阈值范围内


整流线性单元Relu

表达式

图像

死亡Relu问题:如果在计算梯度值时大多数值都小于0,会得到很多不会更新的权值和偏置

优点:由于稀疏性,空间和时间复杂度低,不涉及高成本的指数运算;避免梯度消失问题

缺点:引入死亡relu问题,大部分分量永远不会更新;不能避免梯度爆炸问题


指数线性单元ELU

定义式:

α为可调参数,一般在0.1到0.3之间

图像:(α=0.2)

其导数:

优点:避免死亡relu问题;能得到负值输出,帮助网络向正确的方向推动权值和偏置的变化

缺点:包含指数运算,时间长;无法避免梯度爆炸问题;神经网络不学习超参数α的值


渗漏型整流线性单元激活函数(Leaky ReLU)

表达式:

图像(α=0.2)

优点:避免死亡relu问题;不包含指数运算

缺点:无法避免梯度爆炸问题;神经网络不学习α值;微分时两部份都是线性的


扩展型指数线性单元激活函数SELU

表达式:

图像

优点:内部归一化的速度比外部归一化快,这意味着网络能更快收敛;不可能出现梯度消失或爆炸问题,见 SELU 论文附录的定理 2 和 3。

缺点:这个激活函数相对较新——需要更多论文比较性地探索其在 CNN 和 RNN 等架构中应用。这里有一篇使用 SELU 的 CNN 论文:https://arxiv.org/pdf/1905.01338.pdf


你可能感兴趣的:(学习笔记|神经网络激活函数总结)