激活函数总结

今天我们一起探讨一下常用的几种激活函数。
激活函数的示意图如下所示:
在这里插入图片描述

激活函数的作用:激活函数是作用于神经网络神经元输出的函数,只有加入了非线性激活函数之后,神经网络才具备了分层的非线性映射学习能力。
激活函数可以分为线性激活函数和非线性激活函数。
一、线性激活函数
先说一下线性激活函数,此时神经网络并不能真正改善误差,因为每次迭代的梯度(导数)是相同的,网络将不能很好地训练和从数据中捕获复杂的模式。因此,线性函数可能是需要高度解释能力的简单任务的理想选择。
在这里插入图片描述
二、非线性激活函数
1、Sigmoid激活函数
在这里插入图片描述
该函数的求导如下:
在这里插入图片描述
优点:在于输出映射在(0,1)范围内,单调连续,适合用作输出层,求导容易。
缺点:一旦输入落入饱和区,一阶导数接近0,就可能产生梯度消失的情况。
适用场景:Softmax函数是一种更通用的逻辑激活函数,用于多类分类。
2、Tanh激活函数
在这里插入图片描述
该函数的求导如下:
在这里插入图片描述
优点:tanh的输出范围时(-1, 1),解决了Sigmoid函数的不是zero-centered输出问题;tanh导数范围在(0, 1)之间,相比sigmoid的(0, 0.25),梯度消失(gradient vanishing)问题会得到缓解,但仍然还会存在。
缺点:
使用场景:tanh和sigmoid激活函数都可用于前馈网络。
3、ReLU激活函数(Rectified Linear Unit)
在这里插入图片描述
该函数的导数如下:
在这里插入图片描述
优点:目前最受欢迎的激活函数,在x<0时,硬饱和,在x>0时,导数为1,所以在x>0时保持梯度不衰减,从而可以缓解梯度消失的问题,能更快收敛,并提供神经网络的稀疏表达能力;只需要一个门限值,即可以得到激活值,计算速度更快。
缺点: Relu的输入值为负的时候,输出始终为0,其一阶导数也始终为0,这样会导致神经元不能更新参数,也就是神经元不学习了,这种现象叫做“Dead Neuron”。
使用场景:
当x小于0时,Relu函数的输出是0,这意味着部分神经元不会被激活,从而使得网络变得稀疏,进而会加快计算效率。加快计算效率的原因是,Relu函数可以让与目标无关的特征处于屏蔽状态,能够让稀释后的模型更好地挖掘相关特征,拟合训练数据。
目前,Relu函数是深度学习中常用的激活函数之一。
4、 Leaky ReLU激活函数
为了解决Relu函数的前述缺点,在Relu函数的负半区间引入一个泄露(Leaky)值,所以称为Leaky Relu函数。与 ReLu 相比 ,leak 给所有负值赋予一个非零斜率, leak是一个很小的常数 a(例如0.01),这样保留了一些负轴的值,使得负轴的信息不会全部丢失)。
在这里插入图片描述
该函数的导数如下:
在这里插入图片描述

优点:解决了Relu的神经元死亡问题问,在负区域具有小的正斜率,因此即使对于负输入值,它也可以进行反向传播;具有Relu函数的优点。
缺点:结果不一致,无法为正负输入值提供一致的关系预测(不同区间函数不同)。
适用场景:如果遇到了一些死的神经元,可以使用Leaky ReLU函数。
5、Softmax激活函数
Softmax将多个神经元的输出,映射到(0,1)区间内,可以看成是当前输出是属于各个分类的概率,从而来进行多分类。
假设有一个数组V,Vi表示V中的第i个元素,那么Vi元素的softmax值就是:
在这里插入图片描述
优点:除了用于二分类还可以用于多分类,将各个神经元的输出映射到(0,1空间);使用了指数,这样可以让大的值更大,让小的更小,增加了区分对比度,学习效率更高;softmax是连续可导的,消除了拐点,这个特性在机器学习的梯度下降法等地方非常必要。
缺点:
适用场景:多分类任务输出层。
补充:Softmax回归模型是logistic回归模型在多分类问题上的推广,适用于多分类问题中,且类别之间互斥的场合。
6、Dropout激活函数
Dropout是一种有效的防止过拟合的方法,该方法的实质是在一次前向传播过程中,随机地丢弃(使失活)网络中的某些神经元。所谓的丢弃神经元,其实是在数据流过每个神经元时,都额外的乘上一个概率p,p的值为0时,当前神经元即被丢弃。随机丢弃神经元的意义在于使网络不依赖与某一个神经元或某一种神经元组合,因为每次随机丢弃都会使网络产生新的结构。
Dropout通常用于神经网络的全连接层,因为在卷积层、池化层等部分网络已经是稀疏的,并且具有完备的理论解释(权重共享、感受野等),而全连接层是稠密的,使用Dropout减少参数量能有效地改变其泛化能力。
三、总结
Sigmoid、tanh:二分类任务输出层,模型隐藏层。
Relu、Leaky Relu:回归任务,卷积神经网络隐藏层。
Softmax:多分类任务输出层。

1、由于梯度消失的问题,在某些时候需要避免使用Sigmoid和Tanh激活函数;
2、ReLU函数是一种常见的激活函数,在目前使用是最多的,ReLU永远只在隐藏层中使用;
3、如果遇到了一些死的神经元,我们可以使用Leaky ReLU函数;
4、根据经验,一般可以从ReLU激活函数开始,但是如果ReLU不能很好的解决问题,再去尝试其它的激活函数。

参考文献:
激活函数的作用
【1】https://blog.csdn.net/weixin_37801695/article/details/81209056
【2】https://blog.51cto.com/u_15009309/2554059
线性激活函数
【1】https://www.jiqizhixin.com/articles/2020-03-06-6
Sigmoid激活函数
【1】https://blog.csdn.net/weixin_42137700/article/details/82660991
【2】https://www.cnblogs.com/xiaobingqianrui/p/11346382.html
【3】https://www.malaoshi.top/show_1EF4IWSucFTE.html
【4】https://www.cnblogs.com/CZiFan/p/9855147.html
Tanh激活函数
【1】https://blog.csdn.net/xudiudiu/article/details/108485751?utm_term=%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C%E7%9A%84%E7%BA%BF%E6%80%A7%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-4-108485751&spm=3001.4430
ReLU激活函数
【1】https://www.jianshu.com/p/338afb1389c9
Leaky ReLU激活函数
【1】https://my.oschina.net/u/4410118/blog/3345040
【2】https://blog.csdn.net/u013203733/article/details/81449392
【3】https://blog.csdn.net/dfly_zx/article/details/104493048
Softmax激活函数
【1】https://www.cnblogs.com/mtcnn/p/9411744.html
【2】https://blog.csdn.net/curtern/article/details/114386833?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_v2~rank_aggregation-1-114386833.pc_agg_rank_aggregation&utm_term=softmax%E6%BF%80%E6%B4%BB%E5%87%BD%E6%95%B0%E4%BD%9C%E7%94%A8&spm=1000.2123.3001.4430
【3】https://www.cnpython.com/qa/375401
Dropout激活函数
【1】https://www.jianshu.com/p/c01aab8b7e96
总结
【1】https://blog.csdn.net/dfly_zx/article/details/104493048
【2】https://blog.csdn.net/u013203733/article/details/81449392

  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值