ReLU激活函数:简单之美

ReLU激活函数:简单之美导语在深度神经网络中,通常使用一种叫修正线性单元(Rectifiedlinearunit,ReLU)作为神经元的激活函数。

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


导语

在深度神经网络中,通常使用一种叫**修正线性单元(Rectified linear unit,ReLU)**作为神经元的激活函数。ReLU起源于神经科学的研究:2001年,Dayan、Abott从生物学角度模拟出了脑神经元接受信号更精确的激活模型,如下图:
fig1
其中横轴是时间(ms),纵轴是神经元的放电速率(Firing Rate)。同年,Attwell等神经科学家通过研究大脑的能量消耗过程,推测神经元的工作方式具有稀疏性和分布性;2003年Lennie等神经科学家估测大脑同时被激活的神经元只有1~4%,这进一步表明了神经元的工作稀疏性。而对于ReLU函数而言,类似表现是如何体现的?其相比于其他线性函数(如purlin)和非线性函数(如sigmoid、双曲正切)又有何优势?下面请各位看官容我慢慢道来。


简单之美

首先,我们来看一下ReLU激活函数的形式,如下图:
fig2

从上图不难看出,ReLU函数其实是分段线性函数,把所有的负值都变为0,而正值不变,这种操作被成为单侧抑制。可别小看这个简单的操作,正因为有了这单侧抑制,才使得神经网络中的神经元也具有了稀疏激活性。尤其体现在深度神经网络模型(如CNN)中,当模型增加N层之后,理论上ReLU神经元的激活率将降低2的N次方倍。这里或许有童鞋会问:ReLU的函数图像为什么一定要长这样?反过来,或者朝下延伸行不行?其实还不一定要长这样。只要能起到单侧抑制的作用,无论是镜面翻转还是180度翻转,最终神经元的输出也只是相当于加上了一个常数项系数,并不影响模型的训练结果。之所以这样定,或许是为了契合生物学角度,便于我们理解吧。

那么问题来了:这种稀疏性有何作用?换句话说,我们为什么需要让神经元稀疏?不妨举栗子来说明。当看名侦探柯南的时候,我们可以根据故事情节进行思考和推理,这时用到的是我们的大脑左半球;而当看蒙面唱将时,我们可以跟着歌手一起哼唱,这时用到的则是我们的右半球。左半球侧重理性思维,而右半球侧重感性思维。也就是说,当我们在进行运算或者欣赏时,都会有一部分神经元处于激活或是抑制状态,可以说是各司其职。再比如,生病了去医院看病,检查报告里面上百项指标,但跟病情相关的通常只有那么几个。与之类似,当训练一个深度分类模型的时候,和目标相关的特征往往也就那么几个,因此通过ReLU实现稀疏后的模型能够更好地挖掘相关特征,拟合训练数据

此外,相比于其它激活函数来说,ReLU有以下优势:对于线性函数而言,ReLU的表达能力更强,尤其体现在深度网络中;而对于非线性函数而言,ReLU由于非负区间的梯度为常数,因此不存在梯度消失问题(Vanishing Gradient Problem),使得模型的收敛速度维持在一个稳定状态。这里稍微描述一下什么是梯度消失问题:当梯度小于1时,预测值与真实值之间的误差每传播一层会衰减一次,如果在深层模型中使用sigmoid作为激活函数,这种现象尤为明显,将导致模型收敛停滞不前。


结语

以上便是我对ReLU激活函数的一些理解,在此感谢各位看官的耐心阅读,不足之处希望多多指教。后续内容将会不定期奉上,欢迎大家关注小斗公众号 对半独白



ReLU激活函数:简单之美

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

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

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


相关推荐

  • oracle与mysql分页的区别_分段存储和分页存储的区别

    oracle与mysql分页的区别_分段存储和分页存储的区别oracle与MySQL分页区别(1)MySql的Limitm,n语句Limit后的两个参数中,参数m是起始下标,它从0开始;参数n是返回的记录数。(2)Oracle数据库的rownum在Oracle数据库中,分页方式没有MySql这样简单,它需要依靠rownum来实现。Rownum表示一条记录的行号,值得注意的是它在获取每一行后才赋予。因此,想指定rownum的区间来取得分页数据在一层查询语句中是无法做到的,要分页还要进行一次查询。两种sql写法:SELECT*FROM(SEL

    2022年9月14日
    3
  • 激光测距芯片VL53L0X的使用与代码

    激光测距芯片VL53L0X的使用与代码一、介绍1、原理采用940nm垂直腔面发射激光器(Vertical-CavitySurface-EmittingLaser,简称VCSEL)发射出激光,激光碰到障碍物后反射回来被VL53L0X接收到,测量激光在空气中的传播时间,进而得到距离。VCSEL相关知识2、参数超小体积:4.4×2.4×1.0mm最大测距:2m发射的激光对眼镜安全,且完全不可见。工作电压:2.6to3.5V通信方式:IIC,400KHz,设备地址0x52,最低位是读…

    2022年6月2日
    44
  • 阿里巴巴字体库_阿里免费45款字体

    阿里巴巴字体库_阿里免费45款字体阿里巴巴字体库https://www.iconfont.cn/

    2022年8月3日
    27
  • 基于深度学习的图像超分辨率重建技术的研究

    1超分辨率重建技术的研究背景与意义图像分辨率是一组用于评估图像中蕴含细节信息丰富程度的性能参数,包括时间分辨率、空间分辨率及色阶分辨率等,体现了成像系统实际所能反映物体细节信息的能力。相较于低分辨率图像,高分辨率图像通常包含更大的像素密度、更丰富的纹理细节及更高的可信赖度。但在实际上中,受采集设备与环境、网络传输介质与带宽、图像退化模型本身等诸多因素的约束,我们通常并不能直接得到具有边缘锐化、无成块模糊的理想高分辨率图像。提升图像分辨率的最直接的做法是对采集系统中的光学硬件进行改进,但这种做法.

    2022年4月9日
    47
  • sql清空表数据命令

    sql清空表数据命令有三种清空方式:1.delete逐行删除表数据速度比较慢,不适合删除数据量大的表。2.truncate删除表中所有数据并且保留表结构,但是不能撤消还原。3.drop表数据和表结构一起删除,在实践过程中删除大数据量表数据。使用1,2这两种方法需要等待好久才能清空完成。有一个较快的方法是先导出表结构,首先对原先表进行删除,然后再重建。…

    2022年6月13日
    106
  • Linux服务器Tomcat中Catalina.log中定位错误信息方法

    linux 中tomcat日志分析通过命令定位找到错误信息

    2022年2月26日
    58

发表回复

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

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