为什么使用激活函数?
激活函数通常有如下一些性质:
非线性: 当激活函数是非线性的时候,一个两层的神经网络就可以逼近基本上所有的函数了。但是,如果激活函数是恒等激活函数的时候(即f(x)=xf(x)=x),就不满足这个性质了,而且如果MLP使用的是恒等激活函数,那么其实整个网络跟单层神经网络是等价的。
可微性: 当优化方法是基于梯度的时候,这个性质是必须的。
单调性: 当激活函数是单调的时候,单层网络能够保证是凸函数。
f(x)≈xf(x)≈x: 当激活函数满足这个性质的时候,如果参数的初始化是random的很小的值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要很用心的去设置初始值。
输出值的范围: 当激活函数输出值是 有限 的时候,基于梯度的优化方法会更加 稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出是 无限 的时候,模型的训练会更加高效,不过在这种情况小,一般需要更小的learning rate.
神经网络激励函数的作用是什么?有没有形象的解释?
https://www.zhihu.com/question/22334626
通过上面的介绍,我们对激活函数大体上有了一个认识。
联系之前学习过的机器学习理论,激活函数和核函数的作用简直是异曲同工!都是在不改变线性模型的条件下,将输出结果转变为非线性。
常见的激活函数
sigmod函数、tanh函数、修正线性单元ReLU函数、Leaky ReLU、参数化ReLU、随机化ReLU、指数化线性单元ELU函数和PReLU函数。
具体介绍参考如下文章:
几种常用激活函数的简介
https://blog.csdn.net/kangyi411/article/details/78969642
来自独秀同学的深度网络数学笔记,还不快收藏?
https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650748221&idx=4&sn=77d9c56f39940a2d5bf498d4f57fccff&chksm=871af143b06d785577e0f65f4416a91eef2ef0bc964a43eb9d049404d0e958b481e962d8dfcc&scene=21#wechat_redirect
激活函数又称为“”非线性映射函数“,是深度卷积神经网络不可或缺的模块。
![](https://img.haomeiwen.com/i14241140/ac3729434f88e0ed.jpg)
直观上,激活函数模仿了生物神经元特性,接受一组输入信号并产生输出。
小结
(1)激活函数对深度网络模型引入非线性;
(2)Sigmoid型函数是最早的激活函数之一,但它和tanh(x)型函数一样,会产生梯度饱和现象,故实际工程中很少使用;
![](https://img.haomeiwen.com/i14241140/d3f51e34fc861e83.jpg)
(3)建议使用目前最常用的ReLU函数,但需注意模型参数初始化和学习率的设定;
(4)其他几种ReLU函数实际性能并无优劣,应结合实际场景具体讨论。
网友评论