Why激活函数?引入激活函数是为了引入非线性因素,以此解决线性模型所不能解决的问题,让神经网络更加powerful!如果没有激活函数,那么神经网络将会是这样子
深入了解后我们会神奇的发现,咦?这样一个神经网络组合起来,它的输出居然无论如何都还是一个线性方程哎!
纳尼?那也就是说,就算我组合了一万个神经元,构建了一个看起来相当了不起的神经网络,其效力还是等同于一个线性方程,其效力等同于输入的线性组合。呃,这样的神经网络未免也太powless了。这个时候就轮到拯救地球的激活函数上场了。我们在每一个神经元后面加一个激活函数,如σ-函数,如下图所示,这样它就变成非线性的啦~
将多个像这样有激活函数的神经元组合起来,我们就可以得到一个相当复杂的函数,复杂到谁也不知道它是什么样的。
引入了非线性激活函数以后,神经网络的表达能力更加强大了~注:一般来说,我们说的激活函数都是非线性激活函数,而不是线性激活函数(或称为恒等激活函数)g(z)=zσ-函数
它把输入映射到0-1区间,一般用在输出结果为二分类的输出层。tanh函数
tanh函数它是一个双曲正切函数,仔细一看,你会发现它其实是σ-函数的平移版。tanh函数总是比σ-函数来得好。因为它介于-1到1之间,激活函数的平均值接近于0,这就有类似数据中心化的效果,使得数值均值为0,而不是0.5。因此,对于非输出层的隐藏层,一般都会选择用tanh函数而不是σ-函数。ReLUReLU的全称是RectifiedLinearUnit,修正线性单元。
比起σ-函数和tanh函数,ReLU的梯度下降速度快很多。因为它不存在斜率接近于0,学习效率减慢的情况。LeakyReLUReLU虽好,也存在一个小缺点:当z
领取专属 10元无门槛券
私享最新 技术干货