【八股文-机器学习】激活函数

纵览

图片说明

如果使用线性激活函数(恒等激励函数),那么神经网络仅是将输入线性组合再输出,在这种情况下,深层(多个隐藏层)神经网络与只有一个隐藏层的神经网络没有任何区别,不如去掉多个隐藏层。

线性指一次函数,直线关系,曲线和二次函数属于非线性。非线性指导数不为常数,relu的导数是分段不连续也属于非线性。

sigmoid

图片说明
图片说明
导数图像如下图所示:
当输入值很大或很小时,更新的梯度趋于0,也就是参数几乎不变,也就很可能造成梯度消失的问题。所以一般不用sigmoid做激活函数。
图片说明

relu

图片说明

当使用ReLU 激活函数时,我们不会得到非常小的值(比如前面 sigmoid 函数的 0.0000000438)。相反,它要么是 0,要么是 1。但这又催生出另一个问题:死亡 ReLU 问题。如果在计算梯度时有太多值都低于 0 会怎样呢?我们会得到相当多不会更新的权重和偏置,因为其更新的量为 0。
优点是当我们将 ReLU 函数引入神经网络时,我们也引入了很大的稀疏性。那么稀疏性这个术语究竟是什么意思?稀疏:数量少,通常分散在很大的区域。在神经网络中,这意味着激活的矩阵含有许多 0。这种稀疏性能让我们得到什么?当某个比例(比如 50%)的激活饱和时,我们就称这个神经网络是稀疏的。这能提升时间和空间复杂度方面的效率——常数值(通常)所需空间更少,计算成本也更低。Yoshua Bengio 等人发现 ReLU 这种分量实际上能让神经网络表现更好,而且还有前面提到的时间和空间方面的效率。

elu

图片说明
图片说明
其导数为本身再加一个alpha
图片说明
这里成功避开了死亡 ReLU 问题,同时仍保有 ReLU 激活函数的一些计算速度增益——也就是说,网络中仍还有一些死亡的分量。

leaky relu

图片说明
图片说明
其导数再负数部分是一个常量alpha

  • 类似 ELU,Leaky ReLU 也能避免死亡 ReLU 问题,因为其在计算导数时允许较小的梯度;
  • 由于不包含指数运算,所以计算速度比 ELU 快。
  • 无法避免梯度爆炸问题;
  • 神经网络不学习 α 值;
  • 在微分时,两部分都是线性的;而 ELU 的一部分是线性的,一部分是非线性的。

tanh

图片说明

图片说明
由图像可知,tanh函数是sigmoid函数向下平移和收缩后的结果。
其导数为图片说明

sigmoid导数可以写为图片说明

sigmoid和tanh激活函数有共同的缺点:即在x很大或很小时,梯度几乎为零,因此使用梯度下降优化算法更新网络很慢。

全部评论

相关推荐

飞屋一号:实话实说就行,先争取一下能不能线上,不行就直接放弃,付出与回报不成正比
我的求职进度条
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务