RELU激活函数作用「建议收藏」

RELU激活函数作用「建议收藏」梯度消失现象:在某些神经网络中,从后向前看,前面层梯度越来越小,后面的层比前面的层学习速率高。梯度消失原因:sigmoid函数导数图像导数最大为0.25<1权重初始值通常使用一个高斯分布所以|w|<1,所以wjσ′(zj)<0.25,根据链式法则计算梯度越来越小。由于层数的增加,多个项相乘,势必就会导致不稳定的情况。sigmoid激活函数的…

大家好,又见面了,我是你们的朋友全栈君。

梯度消失现象:在某些神经网络中,从后向前看,前面层梯度越来越小,后面的层比前面的层学习速率高。
这里写图片描述
梯度消失原因:
这里写图片描述
sigmoid函数导数图像
这里写图片描述
导数最大为0.25<1
权重初始值通常使用一个高斯分布所以|w|<1,所以 wjσ′(zj)<0.25 ,根据链式法则计算梯度越来越小。由于层数的增加,多个项相乘,势必就会导致不稳定的情况。
sigmoid激活函数的缺点:
1.计算量大,反向传播求梯度误差时,求导涉及除法2.反向传播容易出现梯度消失
解决方法:
RELU函数 代替sigmoid函数
Alex在2012年提出的一种新的激活函数。该函数的提出很大程度的解决了BP算法在优化深层神经网络时的梯度耗散问题

优点:
∙ x>0 时,梯度恒为1,无梯度耗散问题,收敛快;
∙ 增大了网络的稀疏性。当x<0 时,该层的输出为0,训练完成后为0的神经元越多,稀疏性越大,提取出来的特征就约具有代表性,泛化能力越强。即得到同样的效果,真正起作用的神经元越少,网络的泛化性能越好
∙ 运算量很小,训练时间少;
缺点:
如果后层的某一个梯度特别大,导致W更新以后变得特别大,导致该层的输入<0,输出为0,这时该层就会‘die’,没有更新。当学习率比较大时可能会有40%的神经元都会在训练开始就‘die’,因此需要对学习率进行一个好的设置。
由优缺点可知max(0,x) 函数为一个双刃剑,既可以形成网络的稀疏性,也可能造成有很多永远处于‘die’的神经元,需要tradeoff

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149027.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用批处理异地备份数据

    使用批处理异地备份数据

    2021年7月26日
    65
  • 如何设置python的环境变量_anaconda环境变量手动设置

    如何设置python的环境变量_anaconda环境变量手动设置在python项目实践中,不知道为什么我的os.getenv一直拿不到环境变量,于是我就试了三种设置环境变量的方法,中解决了问题。一.系统变量设置python环境变量的配置方法:1、第一步在我们的电脑上鼠标右键此电脑,选择属性,进去之后,点击高级系统设置,如下图所示2、第二步进去之后,点击环境变量,如下图所示:3、第三步进去环境变量界面之后,点击path,进行编辑,如下图所示:二.pycharm用户环境变量设置:1.打开文件—设置2.打开构建,执行,部署–python控制台–环境变量

    2022年8月25日
    3
  • Zuul网关调优「建议收藏」

    Zuul网关调优「建议收藏」网关的大部分工作是请求转发,属于IO密集型的应用,我们要在有限的资源的情况下结合公司实际请求场景做调优。一,容器选择在容器方面,undertow的呼声很高,一个是他很轻量级的,其次他属于java开发,性能也很好,笔者根据实际情况对tomcat和undertow做了一个对比默认配置下,8核cpu,tomcat启动后会初始化10个io线程,而undertow会初始化72个线程,8个IO线程,64个work线程(8*8)性能对比:写一个接口,接口中什么也不做,就睡眠2s请求个数

    2022年8月15日
    3
  • Sublime Text3中几款比较好看的主题

    Sublime Text3中几款比较好看的主题前言(一)(二)(三)(四)

    2022年7月27日
    2
  • android 系统权限设置工具_安卓修改系统设置权限

    android 系统权限设置工具_安卓修改系统设置权限Android 系统权限

    2022年4月21日
    62
  • Lucene 分词 TokenStream 取 Token

    Lucene 分词 TokenStream 取 TokenLucene分词 TokenStream取TokenTokenStreamtokenStream=analyzer.tokenStream("content",newStringReader(text));//TokenStream遍历3.5Strings1="";Strings2="";while(tokenStream.inc…

    2022年7月22日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号