记得之前去某东面试,面试官问我CNN的激活函数有哪些?
我说:Relu/sigmoid /tanh
问:有区别吗?
我心想我只用过relu,至于区别我想应该是高效吧。
问:为什?
我真没细想过,后来面试完啦赶紧去巴拉巴拉,整理啦以下资料,果然,做学问,不仅仅要知道how,更要知道why
整理笔记:
激活函数的性质
数据”经过一个神经网络时,经过卷积或池化等运算后,最终输出的一个值。这个“输出值”就是经过激活函数计算的来的,反向求导,也是对激活函数来求导的。
激活函数通常有以下性质:
非线性:如果激活函数都为线性,那么神经网络的最终输出都是和输入呈线性关系;显然这不符合事实。
可导性:神经网络的优化都是基于梯度的,求解梯度时需要确保函数可导。
单调性:激活函数是单调的,否则不能保证神经网络抽象的优化问题为凸优化问题了。
输出范围有限:激活函数的输出值的范围是有限时,基于梯度的方法会更加稳定。输入值范围为 (−∞,+