欢迎访问合肥育英学校!

合肥育英学校

您现在的位置是: 首页 > 课外活动 >激活函数初学者指南pdf(激活函数的使用)

激活函数初学者指南pdf(激活函数的使用)

发布时间:2024-08-12 00:21:57 课外活动 560次 作者:合肥育英学校

激活函数将非线性引入网络,因此激活函数本身也称为非线性。神经网络是通用函数逼近器,而深度神经网络是基于反向传播进行训练的,因此需要可微的激活函数。反向传播在此函数上应用梯度下降来更新网络的权重。了解激活函数非常重要,因为它在深度神经网络的质量中起着关键作用。本文将列出并描述不同的激活函数。

线性激活函数

激活函数初学者指南pdf(激活函数的使用)

恒等函数(Identity)或线性激活(Linearactivation)函数是最简单的激活函数。输出与输入成正比。线性激活函数的问题在于它的导数是一个常数,而梯度也是一个常数,所以梯度下降不起作用。

取值范围:(-,+)

示例:f(2)=2或f(-4)=-4

阶跃函数

阶跃函数(Heaviside阶跃函数)通常仅对单层感知器有用,单层感知器是神经网络的早期形式,可用于对线性可分离数据进行分类。这些函数可用于二元分类任务。其输出为A1(如果输入之和高于某个阈值)或A0(如果输入之和低于某个阈值)。感知器使用的值为A1=1,A0=0。

取值范围:0或1

示例:f(2)=1、f(-4)=0、f(0)=0、f(1)=1

图片来源:维基百科

sigmoid函数

sigmoid函数,也称为逻辑激活函数(Logistic激活函数),最常用于二元分类问题。它存在梯度消失问题。经过一定数量的epoch后,网络拒绝学习,或者学习速度非常慢,因为输入(X)导致输出(Y)的变化非常小。如今,sigmoid函数主要用于分类问题。该函数在后续层中更容易遇到饱和问题,导致训练困难。计算sigmoid函数的导数非常简单。

就神经网络的反向传播过程而言,每一层都会压缩(至少)四分之一的误差。因此,网络越深,关于数据的知识就会“丢失”得越多。某些输出层中的“大”误差可能不会影响相对较浅的层中神经元的突触权重(“较浅”意味着更接近输入层)。

sigmoid函数定义

sigmoid函数的导数

取值范围:(0,1)

示例:f(4)=0.982、f(-3)=0.0474、f(-5)=0.0067

图片来源:维基百科

图片来源:深度学习纳米基金会

tanh函数

tanh函数是一个拉伸sigmoid函数,以零为中心,因此导数更陡。tanh比sigmoid激活函数收敛得更快。

取值范围:(-1,1)

示例:tanh(2)=0.9640,tanh(-0.567)=-0.5131,tanh(0)=0

图片来源:维基百科

ReLU函数

ReLU(修正线性单元)训练速度比tanh快6倍。当输入值小于零时,输出值为零。当输入值大于或等于0时,输出值等于输入值。当输入值为正时,导数为1,因此sigmoid函数反向传播时不会有挤压效应。

取值范围:[0,x)

示例:f(-5)=0、f(0)=0、f(5)=5

图片来源:维基百科

不幸的是,ReLU可能很脆弱,可能在训练时“死亡”。例如,通过ReLU神经元的大梯度可能会导致权重更新过多,从而导致神经元永远不会触发任何数据点。如果发生这种情况,从现在开始,通过该单元的梯度将始终为零。也就是说,ReLU单元可能在训练期间不可逆地死亡,因为它们被踢出了数据流形。例如,您可能会发现,如果学习率设置得太高,40%的网络可能会“死亡”(即神经元永远不会在整个训练数据集上激发)。设置合适的学习率可以缓解这个问题。——安德烈·卡帕西CS231n课程

LeakyReLU函数

LeakyReLU允许单元在未激活时具有小的非零梯度。这里,小的非零梯度是0.01。

取值范围:(-,+)

PReLU函数

PReLU(参数化整流线性单元)函数与LeakyReLU类似,只不过使用系数(一个小的非零梯度)作为激活函数的参数。该参数与网络的其他参数一样,是在训练过程中学习的。

取值范围:(-,+)

RReLU函数

RReLU也和LeakyReLU类似,只不过系数(小非零梯度)在训练时取一定范围内的随机值,在测试时固定。

取值范围:(-,+)

ELU函数

ELU(指数线性单元)尝试加速学习。基于ELU,可以获得比ReLU更高的分类精度。这里是一个超参数(限制:0)。

取值范围:(-,+)

SELU函数

SELU(缩放指数线性单元)是ELU的延伸版本。

照片来源:EliorCohen

SReLU函数

SReLU(S-shapeRectifiedLinearActivationUnit,S形校正线性激活单元)由三个分段线性函数组成。这些系数作为网络训练期间学习的参数。

取值范围:(-,+)

不同参数的SReLU图像;图片来源:arXiv:1512.

APL函数

APL(AdaptivePiecewiseLinear,自适应分段线性)函数

图片来源:arXiv:1512.

取值范围:(-,+)

SoftPlus函数

SoftPlus函数的导数是逻辑函数。总的来说,ReLU与SoftPlus非常相似,不同之处在于SoftPlus是平滑的并且可微分接近于零。此外,计算ReLU及其导数比SoftPlus容易得多。

取值范围:(0,)

图片来源:维基百科

bentidentity函数

弯曲恒等函数,顾名思义,弯曲恒等函数。

取值范围:(-,+)

图片来源:维基百科

softmax函数

softmax函数将原始值转换为后验分布,可以用来衡量确定性。与sigmoid一样,softmax将每个单元的输出值压缩在0和1之间。但是,softmax还确保输出之和等于1。

图片来源:dataaspirant.com

softmax函数的输出相当于类概率分布,它告诉您任何分类为真的概率。

结语

选择激活函数时,优先考虑ReLU及其变体,而不是sigmoid或tanh。同时,ReLU及其变体的训练速度更快。如果ReLU导致神经元死亡,请使用LeakyReLU或ReLU的其他变体。Sigmoid和tanh存在梯度消失问题,不应该在隐藏层中使用。最好使用ReLU及其变体作为隐藏层。使用易于区分和训练的激活函数。