激活函数(Activation Function)


本文介绍了什么是激活函数,然后通过一个线性变换的例子引出为什么要使用激活函数,接着详细探讨了激活函数的几个性质,最后提出了激活函数为什么需要非线性函数及什么时候能用线性激活函数两个问题。

1、什么是激活函数

激活函数(Activation Function)通过计算加权和并加上偏置来确定神经元是否应该被激活,它们将输入信号转换为输出的可微运算。大多数激活函数都是非线性的

在这里插入图片描述

2、为什么要使用激活函数

参考视频

[5分钟深度学习] #03 激活函数

引例

给定一个线性变换,我们可以把x的值映射到一条直线上,输出结果就是 y 1 = w 1 x + b 1 {y_1}={w_1}x+{b_1} y1=w1x+b1(如图1所示)。如果 y 1 {y_1} y1 再经过一个线性变换得到 y 2 {y_2} y2 (如图2所示),那么 x {x} x y 2 {y_2} y2 是什么关系呢?

答案很简单,也是一条直线(如图3所示)。也就是说,无论使用多少线性变换,或者把它们叠加成神经网络(如图4所示),最终只能解决线性的问题

那么应该怎么修改,能让它们解决非线性的问题呢?

答案也很简单,就是在线性单元后面增加一个非线性函数 f {f} f (如图5所示)就可以了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

1、使用激活函数主要是在神经网络的隐藏层和输出层引入非线性因素,从而使得模型能够学习并表示复杂的数据模式。
2、如果没有激活函数,无论神经网络有多少层,最终都只能表示为线性变换的组合,神经网络将无法学习和模拟其他复杂类型的数据,如图像、视频、音频、语言等,这大大限制了模型处理非线性问题的能力。

3、激活函数的性质

1、非线性

激活函数的非线性特性是神经网络能够学习复杂模式的关键。没有非线性,无论神经网络有多少层,最终的计算仍然是一个线性变换。非线性激活函数使网络能够表示和学习数据的非线性特征。

2、可微性

激活函数必须是可微的,以便可以使用基于梯度的优化算法(如反向传播)来更新网络的权重。可微性确保了损失函数关于权重的梯度可以通过链式法则来计算。

3、单调性

激活函数的单调性是指函数值随自变量增加而单调不减的性质。在神经网络中,激活函数的单调性对于保证信息传递的方向性以及避免梯度消失问题具有重要意义。

当激活函数是单调的时候,单层网络能够保证是凸函数。
这是因为单调性保证了函数值随着输入的增加而增加或减少,不会出现逆转的情况。在单层神经网络的情况下,如果激活函数是单调的,那么网络的输出将是输入的单调变换。由于输入通常是凸集(例如,实数集合),经过单调变换后,输出仍然是凸集,因此整个网络的输出空间也是凸的。
凸性在优化问题中非常重要,因为它保证了全局最优解的存在性和唯一性。在机器学习中,凸损失函数的存在简化了模型的优化过程,使得找到全局最优解成为可能。

凸函数则是指在凸集上的函数,对于任意两点,函数在这两点连线上的值不大于这两点函数值的平均值。凸函数的几何直观是,函数图像位于其任意两点连线的上方。

4、输出值的范围

不同的激活函数有不同的输出范围,这影响了神经元的输出以及网络的最终决策。 例如,输出范围为 (0,1) 的Sigmoid函数适合二分类问题,而输出范围为 (-1,1) 的tanh函数则提供了以0为中心的输出。

5、 f ( x ) ≈ x f(x)≈x f(x)x

当激活函数满足这个性质的时候,如果参数的初始化是随机的较小值,那么神经网络的训练将会很高效,如果不满足这个性质,那么就需要详细地设置初始值。

当激活函数满足 f ( x ) ≈ x f(x)≈x f(x)x的性质时,这意味着激活函数在输入值附近的变化不大,或者说激活函数的导数接近于1。这样的激活函数被称为线性激活函数,例如恒等函数( f ( x ) = x f(x)=x f(x)=x)。在线性激活函数下,正向传播时输入信号几乎无损地传递给下一层,而反向传播时梯度也几乎无损地回传,这有利于快速收敛和减少训练时间。

然而,如果激活函数不满足 f ( x ) ≈ x f(x)≈x f(x)x的性质,也就是说激活函数在输入值附近变化较大,或者梯度不稳定,那么就需要仔细地设置参数的初始值。这是因为不恰当的初始化可能会导致梯度消失或梯度爆炸问题,这些问题会阻碍网络的学习过程。例如,Sigmoid和Tanh激活函数在输入值较大或较小时梯度接近于零,容易导致梯度消失问题;而ReLU及其变种在输入为负数时梯度为零,可能导致神经元“死亡”。

4、激活函数为什么需要非线性函数

1、非线性激活函数表示输入输出之间非线性的复杂的任意函数映射,能够从输入输出之间生成非线性映射。使用非线性激活函数,能够增加神经网络模型的表达能力和复杂性,使其能够学习和执行更加复杂的任务。

2、在一个神经网络中,如果所有的部件(如权重、偏置和激活函数)都是线性的,那么无论这个网络有多深或多复杂,它的总体功能仍然是一个线性函数。换句话说,该网络的行为就像一个简单的线性分类器,无法用非线性来逼近任意函数。

5、什么时候用线性激活函数

在解决回归问题时,全连接层的输出层经常使用线性激活函数。这是因为回归问题的目标是预测一个连续值,而不是离散类别,所以输出层不需要进行非线性变换。

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值