经典激活函数概述

 关于激活函数的讨论      

        CNN可以利用不同的激活功能来表达复杂的特征。与人脑神经元模型的功能类似,这里的激活功能是一个单元,决定哪些信息应该传输到下一个神经元。神经网络中的每个神经元接受前一层神经元的输出值作为输入,并将处理后的值传递给下一层。在多层神经网络中,两层之间有一个函数,该函数称为激活函数,其结构如图12所示。

        如果未使用激活函数或使用线性函数,则每层的输入将是前一层输出的线性函数。在这种情况下,Heet al.验证无论神经网络有多少层,输出总是输入的线性组合,这意味着隐藏层没有效果。这种情况是原始感知器,它的学习能力有限。因此,引入非线性函数作为激活函数。理论上,具有非线性激活函数的深度神经网络可以逼近任何函数,这大大提高了神经网络拟合数据的能力。

激活函数介绍

          sigmoid函数可以将元素的值变换到0和1之间:

         下面绘制了sigmoid函数。当输入接近0时, sigmoid函数接近线性变换

 

        依据链式法则, sigmoid函数的导数,当输入为0时, sigmoid函数的导数达到最大值;当输入越偏离0时, sigmoid函数的导数越接近0。

        因此,它可以用于二元分类问题。此外,SENet和MobileNet v3需要将注意力机制的输出值转换为(0,1),其中sigmoid是一种合适的实现方式。

        与sigmoid不同,tanh函数[参见图13(b)]可以将实数映射到(−1, 1)。由于tanh输出的平均值为0,因此可以实现一种归一化。这使得下一层更容易学习。

        此外,ReLU见图13(c)]是另一种有效的激活功能。当x小于0时,其函数值为0;当x大于或等于0时,其函数值为itself。与sigmoid函数和tanh函数相比,使用ReLU函数的一个显著优点是可以加快学习速度。Sigmoid和tanh涉及指数运算,在计算导数时需要除法,而ReLU的导数是常数。此外,在sigmoid和tanh函数中,如果x的值太大或太小,函数的梯度就很小,这会导致函数缓慢收敛。然而,当x小于0时,ReLU的导数为0,当x大于0时,导数为1;因此,它可以获得理想的收敛效果。ILSVRC-2012中的最佳模型AlexNet使用ReLU作为基于CNN的模型的激活函数,这缓解了网络较深时的梯度消失问题,并验证了在较深网络中使用ReLU优于sigmoid。根据前面的讨论,我们可以发现ReLU不包括上限。实际上,我们可以设置一个上限,如ReLU6。

        ReLU的另一个变体是PReLU[58][见图13(e)]。与泄漏ReLU不同,PReLU负部分的斜率基于数据,而不是预定义的数据。 Heet al.认为PReLU是在ImageNet 2012分类数据集上超越人类分类水平的关键。

        指数线性单位(ELU)函数[见图13(f)]是ReLU的另一个改进版本。由于ReLU是非负激活的,因此其输出的平均值大于0。此问题导致下一层单元的偏移。ELU函数为负值;因此,其输出的平均值接近于0,使得收敛速度比ReLU快。然而,负部分是一条曲线,需要很多复杂的导数。

因一些段落内插入了公式,上传时就保存为了图片,给大家带来不便,请谅解!

参考:Dive_into_DL_Pytorch

A Survey of Convolutional Neural Networks:Analysis, Applications, and Prospects 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值