激活函数
一个神经元就是计算输入的权重之和,增加bias,决定神经元是否被激活(这个就是激活函数干的)
考虑神经元有如下的表达式:
神经元表达式
Y的值可以从负无穷到正无穷,那么如何决定这个神经元是否被激活呢?这就需要我们用到激活函数。
step function
考虑到神经元的激活,最简单的方式就是设置一个阈值。当Y的值大于这个阈值的时候,这个神经元被激活;当Y的值小于这个阈值的时候,这个神经元就不被激活。
Step function
Linear function
A=cx
这个激活函数的输出是与输出成比例的。但是如果神经网络都是线性激活函数,那个整个网络都是线性,也就说无论多少层的神经网络都可以被一层的神经网络取代。这也不是我们希望看到的。
sigmoid函数
Sigmoid function Sigmoid function从函数的图像看出来,在区间[-2,2]之间,函数变化非常快,这也就意味着一点细微的变化都会引起函数值发生很大的变化。这个实际上对于分类问题是一个非常好的性质。在函数末端的梯度变化是非常缓慢的,也就意味着会有“梯度消失”的问题出现。当梯度消失的时候,整个网络训练速度非常慢
Tanh function
tanh.png tanh tanh is a scaled sigmoid function从函数图像看来,这个函数和Sigmoid函数非常相似。它能够保证非线性,tanh梯度下降速度高于sigmoid函数,同样tanh存在梯度下降的问题。对于循环神经网络来说,不存在梯度下降的问题,所以LSTM一般默认tanh为激活函数
ReLU
A(x)=max(0,x)
ReLU
ReLU函数有点类似于线性,实际上它是非线性的,以及ReLU函数组合也是非线性的(实际上这个函数是一个比较好的近似函数,任何函数都可以组合ReLU函数来近似)。
softmax
归一化指数函数,对向量进行归一化,凸显其中最大的值并抑制远低于最大值的其他分量,很好应用于基于概率的分类问题
网友评论