AI常用激活函数分析2,Step函数

David Sheehan 做了一个激活函数可视化的工作,帮助大家快速了解和选择激活函数

Visualising Activation Functions in Neural Networks

在本文中,作者对包括 Relu、Sigmoid 在内的 26 种激活函数做了可视化,并附上了神经网络的相关属性,为大家了解激活函数提供了很好的资源。作者推荐使用Chrome浏览器

在神经网络中,给定输入集合,激活函数决定神经元节点的输出;非线性激活函数允许人工神经网络逼近复杂的非线性关系。复杂的激活函数可能会产生一些梯度消失(Vanishing Gradient)或梯度爆炸(Exploding Gradient)的问题。

下面是 26 个激活函数的图示及其一阶导数,图的右侧是一些与神经网络相关的属性

Step函数


激活函数 Step 大多在理论上探讨,基本无法用于实际。它模仿了生物神经元要么全有要么全无的属性。由于其导数是 0(除了零点导数无定义以外),这意味着基于梯度的优化方法并不可行,所以它基本无法应用于神经网络。

单调性(Montonic): 单调性使得在激活函数处的梯度方向不会经常改变,从而让训练更容易收敛

连续性(Continuous):个人认为作者想表达可微性,可微性保证了在优化中梯度的可计算性

非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。

在深度神经网络中,前面层上的梯度是来自于后面层上梯度的乘乘积。当存在过多的层次时,就出现了内在本质上的不稳定场景,如梯度消失和梯度爆炸

梯度消失(Vanishing Gradient):某些区间梯度接近于零;前面的层比后面的层梯度变化更小,故变化更慢,从而引起了梯度消失问题

梯度爆炸(Exploding Gradient):  某些区间梯度接近于无穷大或者权重过大;前面层比后面层梯度变化更快,会引起梯度爆炸问题

推荐阅读更多精彩内容