当前位置: 首页 > 科技观察

5分钟搞定ReLU:最流行的激活函数

时间:2023-03-11 22:58:30 科技观察

神经网络和深度学习中的激活函数在激励隐藏节点产生更理想的输出方面起着重要作用,而激活函数的主要目的是将非线性特性引入到模型。在人工神经网络中,给定一个输入或一组输入,节点的激活函数定义该节点的输出。标准集成电路可以被认为是激活功能的控制器,可以根据输入“打开”或“关闭”。图1:S形;图2:tanhSigmoid和tanh是在RELU出现之前流行的单调可微激活函数。然而,随着时间的推移,这些函数会饱和,导致梯度消失。另一个常用的激活函数可以解决这个问题:整流线单元(ReLU)。在上图中,蓝线代表一个直线单元(ReLU),而绿线是ReLU的一个变体,叫做Softplus。ReLU的其他变体包括LeakyReLU、ELU、SiLU等,用于提高某些任务的性能。在本文中,仅考虑直线单元(ReLU)。因为在默认情况下,它仍然是大多数深度学习任务最常用的激活函数。当用于特定目的时,变体可能具有轻微的优势。2000年,Hahnloser等人。首次将强烈的生物学动机和数学上合理的激活函数引入动态网络。这是首次证明该函数可以比2011年之前广泛使用的激活函数表现更好,例如logisticsigmoid(受概率论和逻辑回归启发)及其更实用的tanh(对应函数双曲正切)来训练更深的网络。截至2017年,整流器是深度神经网络中最流行的激活函数。使用整流器的单元也称为整流线性单元(ReLU)。RELU最大的问题是0点不可微,研究者倾向于使用sigmoid、tanh等可微函数。但是0点可微毕竟是特例,到目前为止,ReLU仍然是深度学习最好的激活函数,需要的计算量很小,计算速度很快。在除0以外的所有点,ReLU激活函数都是可微分的。对于大于0的值,只考虑函数的最大值。可以这样写:f(x)=max{0,z}简单来说,也可以这样写:ifinput>0:returninputelse:return0所有负数默认为0,正数取最大值被认为。对于神经网络的反向传播计算,ReLU的判别相对容易。唯一要做的假设是点0处的导数也被认为是0。这通常不是问题,并且在大多数情况下都可以正常工作。函数的导数是斜率的值。负值的斜率为0.0,正值的斜率为1.0。ReLU激活函数的主要优点是:卷积层和深度学习:它们是卷积层和深度学习模型训练中最常用的激活函数。计算简单:整流函数实现起来非常简单,只需要一个max()函数即可。代表性稀疏性:整流函数的一个重要优点是它能够输出真正的零值。线性行为:当神经网络的行为是线性或接近线性时,更容易优化。然而,通过RELU单元的主要问题是所有负值立即变为0,这降低了模型在数据上正确拟合或训练的能力。这意味着ReLU激活函数的任何负输入都会立即将图中的值更改为0。这反过来会影响结果图,因为负值没有正确映射。然而,使用ReLU激活函数的不同变体(例如LeakyReLU和前面讨论的其他函数),这个问题可以很容易地解决。这是一个简短的介绍,可帮助您了解线性整流单元及其在深度学习技术时代的重要性。毕竟,它比所有其他激活函数更受欢迎一定是有原因的。