《老鸟python 系列》视频上线了,全网稀缺资源,涵盖python人工智能教程,爬虫教程,web教程,数据分析教程以及界面库和服务器教程,以及各个方向的主流实用项目,手把手带你从零开始进阶高手之路!点击 链接 查看详情

激活函数

阅读:1325614971    分享到

激活函数是用来加入非线性因素的,因为线性模型的表达能力不够。引入非线性激活函数,可使深层神经网络的表达能力更加强大。

激活函数的特点

优秀的激活函数应满足:

1.非线性: 激活函数非线性时,多层神经网络可逼近所有函数。

2.可微性: 优化器大多用梯度下降更新参数。

3.单调性: 当激活函数是单调的,能保证单层网络的损失函数是凸函数。

4.近似恒等性:f(x)≈x当参数初始化为随机小值时,神经网络更稳定

激活函数输出值的范围:

1.激活函数输出为有限值时,基于梯度的优化方法更稳定。

2.激活函数输出为无限值时,建议调小学习率。

激活函数总之就是我们的神经网络前向传播结果的一个函数,该函数可以很好的调整前向传播结果,使其在梯度下降过程中更平滑更友好。

常见的激活函数有:sigmoid、tanh、ReLU、Leaky ReLU、PReLU、RReLU、ELU、softplus、softsign、softmax等,下面介绍几个典型的激活函数。

sigmoid 激活函数

在 tensorflow 中,tf.nn.sigmoid 实现了sigmoid 激活函数的计算。

sigmoid 函数的优点:

1.输出映射在(0, 1)之间,单调连续,输出范围有限,优化稳定,可用作输出层。

2.求导容易。

sigmoid 函数的缺点:

1.易造成梯度消失。

2.输出非0均值,收敛慢。

3.幂运算复杂,训练时间长。

sigmoid 函数可应用在训练过程中。然而,当处理分类问题作出输出时,sigmoid 却无能为力。简单地说,sigmoid 函数只能处理两个类,不适用于多分类问题。而 softmax 可以有效解决这个问题,并且 softmax 函数大都运用在神经网路中的最后一层网络中,使得值得区间在(0,1)之间,而不是二分类的。

tanh 激活函数

tensorflow 的 tf.nn.tanh 实现了tanh 激活函数的计算。

tanh函数优点:

1.比sigmoid函数收敛速度更快。

2.相比sigmoid函数,其输出以0为中心。

tanh 函数缺点:

1.易造成梯度消失。

2.幂运算复杂,训练时间长。

relu 激活函数

tensorflow 的 tf.nn. relu 实现了relu 激活函数的计算。

relu 函数优点:

1.解决了梯度消失问题(在正区间)。

2.只需判断输入是否大于0,计算速度快。

3.收敛速度远快于sigmoid和tanh。

4.因为sigmoid和tanh涉及很多expensive的操作。

5.提供了神经网络的稀疏表达能力。

relu 函数缺点:

1.输出非0均值,收敛慢。

2.Dead ReLU问题。

3.某些神经元可能永远不会被激活。

4.导致相应的参数永远不能被更新。

leaky relu 激活函数

tensorflow 的 tf.nn.leaky_relu 实现了leaky relu 激活函数的计算。

理论上来讲,Leaky ReLU 有 ReLU 的所有优点,外加不会有 Dead ReLU 问题,但是在实际操作当 中,并没有完全证明 Leaky ReLU 总是好于 ReLU。

如何选择激活函数

对于初学者的建议:

1.首选 ReLU 激活函数。

2.学习率设置较小值。

3.输入特征标准化,即让输入特征满足以 0 为均值,1 为标准差的正态分布。

4.初始化问题:初始参数中心化,即让随机生成的参数满足以 0 为均值。 2 当前层输入特征个数 当前层输入特征个数为标准差的正态分布。

本节重要知识点

会使用 sigmoid 激活函数。

会使用 tanh 激活函数。

会使用 relu 激活函数。

知道如何选择激活函数。


如果以上内容对您有帮助,请老板用微信扫一下赞赏码,赞赏后加微信号 birdpython 领取免费视频。


登录后评论