激活函数总结

针对目前比较常用的一些激活函数,对他们的性质以及特点进行分析总结,便于后面的理解以及在模型里面的使用。目前主要总结的激活函数包括:Sigmoid、Tanh、Relu、Leaky Relu以及Softmax。

激活函数的作用

如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这是最原始的感知机;

使用激活函数可以给神经元引入非线性元素,使得神经网络可以任意逼近任何非线性函数,使得深层神经网络表达的能力更加强大,这样神经网络经可以应用到众多的非线性模型中。

补充:包含函数以及非饱和函数

饱和激活函数:

假设h(x)是一个激活函数

1、  当x趋近于正无穷,激活函数的导数趋近于0,则称其为右饱和。

2、  当x趋近于负无穷,激活函数的导数趋近于0,则称其为左饱和。

3、  当一个激活函数既满足左饱和又满足右饱和,我们就称其为饱和激活函数。比如:Sigmoid、Tanh。

Sigmoid函数将输入的值压缩到【0,1】范围,tanh函数将输入的值要锁到【-1,1】范围。

非饱和激活函数:

当激活函数不满足饱和激活函数后,就称为非饱和激活函数,例如 Relu、Leaky Relu。

相较于饱和激活函数,非饱和激活函数的优势:

1、  非饱和激活函数能解决深度神经网络(层数非常多)带来的梯度消失问题

2、  非饱和激活函数可以加快收敛速度

首先,简单的介绍一下常见的两个饱和激活函数:Sigmoid、Tanh

一、Sigmoid激活函数的数学表达式:

函数图像如下:

Sigmoid函数在历史上曾非常常用,输出的范围是【0,1】之间的实数。但现在不太受欢迎,实际很少用到。

Sigmoid的使用条件:

1、  Sigmoid函数的输出范围在0到1之间。非常适合为输出为0到1之间的模型的输出函数,比如用于表示二分类的类别或者表示置信度;

2、  梯度平滑,便于求导,也防止模型训练过程中的突变的梯度。

Sigmoid的缺点:

1、  容易造成梯度消失。sigmoid的导数小于0.25,在进行反向传播的过程中,梯度相乘的结果会趋向0。这样梯度信号不能通过神经元传递到前面层的梯度更新中,前面层的权值几乎没有更新,造成梯度消失。此外,为了防止饱和,必须将权重矩阵的初始化特别留意。如果初始化权重过大,可能很多神经元得到一个比较小的梯度,导致神经元不能很好的更新权重提前饱和,神经网络几乎不学习;

2、  函数输出不以0为中心,梯度可能会向特定方向移动,从而降低权重更新的效率

3、  Sigmoid函数执行指数运算,计算机运行的较慢,比较消耗计算资源。

二、Tanh函数的数学表达式:

函数图像:

tanh是“以0为中心”的,在实际应用的过程中,tanh比sigmoid好一些。但是在饱和神经元的情况下,tanh还是没有解决梯度消失的问题。

Tanh的优势:

1、  tanh的输出间隔为1,并且整个函数以0为中心,比sigmoid好;

2、  在tanh中,负输入将被强制映射为负,零输入被映射为0。

tanh的缺点:

1、  存在梯度饱和的问题;

2、  依然进行指数运算,计算比较缓慢,比较浪费计算资源。

现在介绍一些非饱和激活函数:Relu、Leaky Relu:

一、Relu激活函数的数学表达式:

函数图像:

Relu的优势:

1、  Relu解决了梯度消失的问题,当输入值为正时,神经元不会饱和;

2、  由于Relu线性、非饱和的性质,在SGD中可以快速收敛;

3、  计算复杂度低,不需要进行指数运算。

Relu缺点:

1、  与sigmoid一样,输出不是以0为中心;

2、  当输入为负时,梯度为0。这个神经元及之后的神经元的梯度永远为0,不在对任何数据有响应,导致相应参数不会更新。

训练神经网络的时候,一旦学习率没有设置好,第一次更新权重的时候,输入是负值,这个含有Relu神经节点就会死亡,再也不会被激活,要设置一个合适的较小的学习率,以降低这种情况的发生。

二、  Leaky Relu激活函数的数学表达式:

函数图像:

Leaky Relu的优点:

1、  解决了Relu输入值为负时神经元出现死亡的问题;

2、  Leaky Relu线性,非饱和的性质,在SGD中快速收敛;

3、  计算复杂度低,不需要进行指数运算。

Leaky Relu的缺点:

1、  函数中的c,需要进行先验知识人工赋值(一般设置为0.01);

2、  有些近似线性,导致复杂分类中效果不好。

三、  Softmax激活函数的数学表达式:

函数图像:

softmax函数在神经网络输出层充当激活函数,将输出层的值通过激活函数映射到0到1之间,将神经元输出构造成概率分布,用于多分类问题,softmax几乎函数的映射值越大,真实类别的可能性越大。

说明:发布的内容为在网上一些比较好的帖子的总结,便于自己学习使用

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
leakyrelu激活函数是一种常用的激活函数之一,它是ReLU函数的一种变体。它的图像可以描述如下:在输入小于0的区间,leakyrelu函数的输出是一个小的线性系数乘以输入值;而在输入大于等于0的区间,leakyrelu函数的输出与输入值相等。这个小的线性系数通常取一个较小的正数,比如0.01。这样设计的目的是为了在输入小于0的情况下,避免ReLU函数的神经元“死亡”,使得梯度能够在这个区间内有一个非零的值,从而提高模型的收敛速度和性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [深度学习激活函数总结(sigmoid,tanh,ReLU,Leaky ReLU,EReLU,PReLU,Softmax,Swish,Maxout,...](https://blog.csdn.net/winter2121/article/details/122326697)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [机器学习中的数学——激活函数(四):Leaky ReLU函数](https://blog.csdn.net/hy592070616/article/details/120617996)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值