激活函数
博主微信公众号(左)、Python+智能大数据+AI学习交流群(右):欢迎关注和加群,大家一起学习交流,共同进步!
一、模型
1、简化模型
这张图是上一章节中实现鸢尾花分类时用到的神经元模型和它对应的前向传播公式。
从公式可以看出,这是一个线性函数。
对于线性函数,即使有多层神经元首尾相接,构成深层神经网络,依旧是线性组合,模型的表达力不够。
2、MP模型
这张图1943年提出的MP模型,比简化模型多了一个非线性函数。这个非线性函数,叫做激活函数。
它的加入大大提升了模型的表达力。也正是由于非线性激活函数的加入,使得多层神经网络,不再是输入x的线性组合。神经网络可以随层数的增加提升表达力了。
二、优秀的激活函数
1、非线性:激活函数非线性时,多层神经网络可逼近所有函数。
激活函数应该是非线性的,因为只有当激活函数是非线性时,才不会被单层网络替代,使多层网络有了意义。
2、可微性:优化器大多用梯度下降更新参数。
激活函数应该是可微的,因为优化器大都依据梯度下降更新参数。如果激活函数不可微,就无法更新参数了。
3、单调性:当激活函数是单调的,能保证单层网络的损失函数是凸函数。
激活函数应该是单调的,这样可以保证单层网络的损失函数是个凸函数,更容易收敛。
4、近似恒等性:当参数初始化为随机小值时,神经网络更稳定。
激活函数最好是近似恒等的,满足。激活函数的输出值约等于激活函数的输入值,这样的激活函数更稳定。
三、激活函数输出值的范围
1、激活函数输出为有限值时,基于梯度的优化方法更稳定。
如果激活函数的输出是有限值,权重对特征的影响会更显著,用梯度下降方法更新参数会更稳定。
2、激活函数输出为无限值时,建议调小学习率。
如果激活函数的输出是