赞
踩
简单来说我们知道神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输出层)。在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数。
如果不用激活函数(其实相当于激活函数是f(x) = x),在这种情况下你每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了,那么网络的逼近能力就相当有限。因此引入非线性函数作为激活函数,这样深层神经网络表达能力就更加强大。
函数形式:
R e L U ( x ) = { x x ≥ 0 0 otherwise ReLU(x)=\left\{
感觉是最常用的激活函数,形式简单,高度非线性。
优点:高度非线性。加快收敛速度,缓解梯度消失、爆炸问题,简化计算。
缺点:因为其将所有的输入负数变为0,在训练中可能很脆弱,很容易导致神经元失活,使其不会在任何数据点上再次激活。对于ReLu中(x<0)的激活,此时梯度为0,因此在下降过程中权重不会被调整。
函数形式:
L R e L U ( x ) = { x x ≥ 0 a x otherwise LReLU(x)=\left\{
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。