返回信息流都说ReLU函数不是梯度饱和函数,但是在x<0的情况下,ReLU函数的梯度不是永远为0吗,这不是梯度饱和吗?
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #25754同步于 2017/9/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
关于ReLU函数求教!!!!!
XZC
2017/9/14镜像同步9 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
我知道,前面梯度为1,后面梯度为0,那其实还是有梯度饱和的一部分的。其实我在想,为什么不搞一个函数前面梯度为1,后面梯度为-1?
【 在 jaegerstar 的大作中提到: 】
: 那是失活了,所以后面才会有leaky relu等一系列改进
那是ReLU的扩展,绝对值整流:g(z)=|z|。
【 在 XZC (力量) 的大作中提到: 】
: 我知道,前面梯度为1,后面梯度为0,那其实还是有梯度饱和的一部分的。其实我在想,为什么不搞一个函数前面梯度为1,后面梯度为-1?
楼主思考的不错,这是个定义问题。你的问题在 Bengio 的 ICML 2016 文章 Noisy Activation Functions 里已经给出了解答:
饱和被形式化定义为 硬饱和 和 软饱和。ReLU是左硬饱和,硬了;Sigmoid 那种是软饱和,软了。
算是找到答案了,解了我昨天的心中之惑,哈哈,谢谢你!
延伸一下,既然ReLU是存在硬饱和,理论上讲是和sigmoid一样的问题存在,可是在受欢迎程度上讲,似乎ReLU更好一些,不知道具体是缘何,难道就因为ReLU在右部分比较完美,而sigmoid在两端都不太完美造成的这种迥异?
【 在 coldmoon 的大作中提到: 】
: 楼主思考的不错,这是个定义问题。你的问题在 Bengio 的 ICML 2016 文章 Noisy Activation Functions 里已经给出了解答:
: 饱和被形式化定义为 硬饱和 和 软饱和。ReLU是左硬饱和,硬了;Sigmoid 那种是软饱和,软了。
【 在 XZC 的大作中提到: 】
: 算是找到答案了,解了我昨天的心中之惑,哈哈,谢谢你!
: 延伸一下,既然ReLU是存在硬饱和,理论上讲是和sigmoid一样的问题存在,可是在受欢迎程度上讲,似乎ReLU更好一些,不知道具体是缘何,难道就因为ReLU在右部分比较完美,而sigmoid在两端都不太完美造成的这种迥异?
:
博客和论文里都能找到答案。主要是梯度消失问题,relu 可以以监督方式训练深层神经网络。
至于“梯度消失” 前面的谓语用什么,有的人用克服 和 解决,有的人用 降低 和 缓解。我倾向于后者。因为梯度更新不仅仅跟激活函数的形状有关系,也跟权重初始化有关系。sigmoid 借助初始化技术一样可以缓解梯度消失问题,见 bengio 的 《Understanding the difficulty of training deep feedforward neural networks》。反之,使用 relu 的网络在初始化不合理的情况下,一样无法训练更深层的网络,见 何凯明的 《Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification》。所以个人认为单纯的说 relu 克服或解决梯度消失并不严禁,说降低或缓解更合适一些,例如 《Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)》里这段话:
大牛啊!从你截取的这段英文里,果然跟我想的一样,sigmoid函数是两头导数都快速收缩饱和,导致收敛越来越慢,而relu最起码在正半轴导数是不变的恒定速率收敛,这就是受欢迎的理由。谢谢!
【 在 coldmoon 的大作中提到: 】
:
: 博客和论文里都能找到答案。主要是梯度消失问题,relu 可以以监督方式训练深层神经网络。
: 至于“梯度消失” 前面的谓语用什么,有的人用克服 和 解决,有的人用 降低 和 缓解。我倾向于后者。因为梯度更新不仅仅跟激活函数的形状有关系,也跟权重初始化有关系。sigmoid 借助初始化技术一样可以缓解梯度消失问题,见 bengio 的 《Understanding the difficulty of training deep feedforward neural networks》。反之,使用 relu 的网络在初始化不合理的情况下,一样无法训练更深层的网络,见 何凯明的 《Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification》。所以个人认为单纯的说 relu 克服或解决梯度消失并不严禁,说降低或缓解更合适一些,例如 《Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)》里这段话:
: ...................
学习了,谢谢.
【 在 coldmoon 的大作中提到: 】
:
: 博客和论文里都能找到答案。主要是梯度消失问题,relu 可以以监督方式训练深层神经网络。
: 至于“梯度消失” 前面的谓语用什么,有的人用克服 和 解决,有的人用 降低 和 缓解。我倾向于后者。因为梯度更新不仅仅跟激活函数的形状有关系,也跟权重初始化有关系。sigmoid 借助初始化技术一样可以缓解梯度消失问题,见 bengio 的 《Understanding the difficulty of training deep feedforward neural networks》。反之,使用 relu 的网络在初始化不合理的情况下,一样无法训练更深层的网络,见 何凯明的 《Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification》。所以个人认为单纯的说 relu 克服或解决梯度消失并不严禁,说降低或缓解更合适一些,例如 《Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs)》里这段话:
: ...................