一次面试引发的问题:激活函数Relu,sigmoid ,tanh的角逐
来源:互联网 发布:刀卡 淘宝 编辑:程序博客网 时间:2024/05/17 07:59
记得之前去某东面试,面试官问我CNN的激活函数有哪些?
我说:Relu/sigmoid /tanh
问:有区别吗?
我心想我只用过relu,至于区别我想应该是高效吧。
问:为什?
我真没细想过,后来面试完啦赶紧去巴拉巴拉,整理啦以下资料,果然,做学问,不仅仅要知道how,更要知道why
整理笔记:
激活函数的性质
数据”经过一个神经网络时,经过卷积或池化等运算后,最终输出的一个值。这个“输出值”就是经过激活函数计算的来的,反向求导,也是对激活函数来求导的。
激活函数通常有以下性质:
非线性:如果激活函数都为线性,那么神经网络的最终输出都是和输入呈线性关系;显然这不符合事实。
可导性:神经网络的优化都是基于梯度的,求解梯度时需要确保函数可导。
单调性:激活函数是单调的,否则不能保证神经网络抽象的优化问题为凸优化问题了。
输出范围有限:激活函数的输出值的范围是有限时,基于梯度的方法会更加稳定。输入值范围为
激活函数的作用
为什么引入非线性激励函数?
如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这样深层神经网络就有意义了(不再是输入的线性组合,可以逼近任意函数
Signmoid函数
数学表达式:
第二,对于深层网络,sigmoid函数反向传播时,由于两端饱和 很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失,所谓的梯度消散 就是简单地说,根据链式法则,如果每一层神经元对上一层的输出的偏导乘上权重结果都小于1的话( ),那么即使这个结果是0.99,在经过足够多层传播之后,误差对输入层的偏导会趋于0( ),这样就dead啦。由于使用sigmoid函数,梯度最大是0。25,这样因为激活函数的问题,造成每层乘以了最多0.25的乘积
tanh函数
Jarrett, K., Kavukcuoglu, K., Ranzato, M., and LeCun, Y. (2009a). What is the best multi-stagearchitecture for object recognition?
这篇论文详细介绍啦~它的表达式为:
ReLU导数(分段):
x <= 0时,导数为0
x > 0时,导数为1
- 一次面试引发的问题:激活函数Relu,sigmoid ,tanh的角逐
- 常用的激活函数总结(Sigmoid函数、Tanh函数、ReLu函数、Softmax函数)
- sigmoid、tanh、softplus和ReLu激活函数
- 神经网络之激活函数(sigmoid、tanh、ReLU)
- 激活函数-Sigmoid,Tanh,ReLu,softplus,softmax
- 神经网络之激活函数(sigmoid、tanh、ReLU)
- 神经网络的激活函数sigmoid RELU
- 四种激活函数(Relu Linear Sigmoid Tanh)
- 深度学习——激活函数Sigmoid/Tanh/ReLU
- 神经网络激活函数sigmoid relu tanh 为什么sigmoid 容易梯度消失
- 人工神经网络中的activation function的作用以及ReLu,tanh,sigmoid激励函数的区别
- 神经网络中的激活函数(activation function)-Sigmoid, ReLu, TanHyperbolic(tanh), softmax, softplus
- 神经网络中的激活函数-Sigmoid, ReLu, TanHyperbolic(tanh), softmax, softplus简述
- 机器学习笔记-神经网络中激活函数(activation function)对比--Sigmoid、ReLu,tanh
- 常见激活函数(sigmoid/logistic/tanh/softmax/ReLU关系解释)
- 神经网络中的激活函数具体是什么?为什么ReLu要好过于tanh和sigmoid function?
- 10分钟搞懂常用激活函数 :linear、Sigmoid、tanh、Relu | Neural Networks #2
- ReLU Sigmoid and Tanh
- HDU 6105 Gameia
- 网易2017秋招编程题
- c++中++和*的优先级、cout运算从右到左
- hibernate 映射关系小模板
- 准备:安装、创建项目、APP
- 一次面试引发的问题:激活函数Relu,sigmoid ,tanh的角逐
- 简单内存池设计与实现
- 润乾V5批量直接打印 报错误400 且参数不生效
- java 常用的正则表达式
- oracle触发器实例及异常处理
- c++常见面试题(1)
- Android Studio快速定位当前文件位置
- BZOJ2434【NOI2011】阿狸的打字机 <AC自动机+Fail树+树状数组>
- matplotlib绘图基础--笔记