引入ReLu激活函数原因

一、概念

1、激活函数
激活函数是神经网络中每一层输入和输出之间的映射函数。
2、relu激活函数
一种非线性函数,可以表达为 f ( x ) = max ⁡ ( 0 , x ) f(x)=\max (0, x) f(x)=max(0,x)
在这里插入图片描述

二、引入原因

引入relu激活函数的原因从以下三个层次论证

1.为何引入非线性的激活函数?
在神经网络中,每一层输出与输入之间都是线性关系,若不处理这种情况,无论神经网络加深到多少层,
输出和输入都是呈线性关系。而当加入非线性激活函数后,输出与输入不再是线性关系,当层数足够多,就可以逼近任意函数。

2.非线性函数中为何选取ReLu函数?
(1)计算简单, f ( x ) = max ⁡ ( 0 , x ) f(x)=\max (0, x) f(x)=max(0,x),只需要比较出x值与0的大小,而对于常见的非线性函数,sigmoid函数 S ( x ) = 1 1 + e − x S(x)=\frac{1}{1+e^{-x}} S(x)=1+ex1,计算涉及指数,对于高维数据来说,计算量太过复杂。
(2)避免梯度消失与梯度爆炸,神经网络的反向传播是逐层对函数偏导相乘,因此当神经网络层数非常深的时候,层数间的梯度变化会叠加。在sigmoid接近饱和区时,函数值变化缓慢,梯度趋于0,最后一层网络产生的偏差就乘了很多的远小于1的数而越来越小,导致层数比较浅的权重没有更新。或是大于1的梯度值累计,造成权重大幅更新,网络不稳定。采用relu函数,能够避免这个问题,这也是深度网络能够优化的关键点。
(3)relu函数会使部分神经元输出变为0,使得网络输出更为稀疏,更加符合生物学神经网络原理。
仿生物学原理(维基百科):相关大脑方面的研究表明生物神经元的信息编码通常是比较分散及稀疏的。通常情况下,大脑中在同一时间大概只有1%-4%的神经元处于活跃状态。使用线性修正以及正则化(regularization)可以对机器神经网络中神经元的活跃度(即输出为正值)进行调试;相比之下,逻辑函数在输入为0时达到 1 2 {\displaystyle {\frac {1}{2}}} 21,即已经是半饱和的稳定状态,不够符合实际生物学对模拟神经网络的期望。不过需要指出的是,一般情况下,在一个使用修正线性单元(即线性整流)的神经网络中大概有50%的神经元处于激活态。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值