本文源自中国慕课网曹健老师《人工智能实践:Tensorflow笔记》一课听课笔记,课程地址:https://www.icourse163.org/learn/PKU-1002536002?tid=1452937471#/learn/content?type=detail&id=1229870565&sm=1
上图为一个简化神经元模型,以及其所对应的前向传播公式。可以看到,该模型是一个线性函数,所以即使有多层神经元首尾相接构成深层神经网络,依旧是线性组合,模型的表达力不够。
上图是1943年提出的MP模型,该模型比简化模型多了一个非线性函数,该函数叫做激活函数,它的加入大大提升了模型的表达力。
优秀的激活函数:
非线性:激活函数非线性时,多层神经网络可逼近所有函数
可微性:优化器大多用梯度下降更新参数
单调性:当激活函数是单调的,能保证单层网络的损失函数是凸函数
近似恒等性:f(x)≈x 当参数初始化为随机小值时,神经网络更稳定
激活函数输出值的范围:
激活函数输出为有限值时,基于梯度的优化方法更稳定
激活函数输出为无限值时,建议调小学习率
特点:
(1)易造成梯度消失
(2)输出非0均值,收敛慢
(3)幂运算复杂,训练时间长
特点:
(1)输出是0均值
(2)容易造成梯度消失
(3)幂运算复杂,训练时间长
优点:
(1)解决了梯度消失问题(在正区间)
(2)只需判断输入是否大于0,计算速度快
(3)收敛速度远快于sigmoid和tanh
缺点:
(1)输出非0均值,收敛慢
(2)Dead Relu问题:某些神经元可能永远不被激活,导致相应的参数永远不能被更新。
理论上来讲,Leaky Relu有Relu的所有优点,外加不会有Dead Relu问题,,但在实际操作当中,并没有完全证明Leaky Relu总是好于Relu。
对于初学者的建议:
1、首选relu激活函数
2、学习率设置较小值
3、输入特征标准化,即让输入特征满足以0为均值,1为标准差的正态分布
4、初始参数中心化,即让随机生成的参数满足以0为均值,为标准差的正态分布。
以上内容,如有错误,敬请批评指正!谢谢!