《激活函数与损失函数.docx》由会员分享,可在线阅读,更多相关《激活函数与损失函数.docx(4页珍藏版)》请在优知文库上搜索。
1、激活函数与损失函数激活函数激活函数(ACtiVationFUnCtiOn)一般为非线性函数。在神经网络中,仅仅依靠权重之间线性关系很难学习和理解复杂的模型,为此,引入ACtiVationFimCtion可以提升模型的Nonlinear表达能力,只有加入ACtiVationFUnCtion,模型才有Nonlinear,映射学习能力O常用的ActivationFunction有SigmoidFunctionTanhFunction和ReluFUnCtiono3.3.1 SigmOid激活函数SigmoidFunction是使用最多的ActivationFunction,它具有是指数函数的性质。Si
2、gmOidFUnCtion的值域与概率值范围相同为(0,1),此就可以和概率分布结合在一起研究学习。另一方面,近三十年里的神经网络难以有有效的进展也是和SigmoidFunction的性质有关,这种性质是SigmoidFunction是平滑饱和ActivationFunctiono平滑饱和ActivationFunction就是因为当X趋于-8时,它的导数值会逼近于0,这会引起GradientDisappearedoGradientDisappeared是指SigmoidFunction在向下传递的梯度里有k(s)k(s)因子,ks)k(s)会在输入落入饱和区时趋近于0,使得向底层传递的梯度变
3、小,通常五层之内就会出现这种情况。图3-2sigmoid函数曲线3.3.2 Tanh激活函数TanhFunction的值域为(1,-1),与SigmoidFunction幅度增大后相似。TanhFunction的导数的取值范围在(0,1),而SigmoidFunction导数值域为(0,0.25),所以TanhFUnCtiOn在一定程度上能够防止梯度消失的情况发生。并且它的输出和输入的关系不管是上升还是下降都是非线性的单调的,和BP网络的梯度求解是相匹配的。TanhFunction在原点附近与比例系数为1的正比例函数相似,所以在激活值较小的时候为了使训练更简便可以直接运用矩阵运算。tanh(x
4、)图3-3tanh函数曲线3.3.3 RelU激活函数ReIuFUnCtiOn在代数学中称为斜坡函数:当X小于。时,y为0;X大于0时,y等于X的值。在神经网络中,ReluFunction激活部分神经元。它将上一层神经网络传递来的输入向量X转化为max(0,WTx+b)输出到下一层神经网络。ReluFunction相比于SigmoidFunction的优点在于:ReluFunction的导数在X大于0时,导数为定值,所以不会发生梯度消失的情况;在X小于0时,导数为0,神经元激活值在负半区,梯度为0,那么便不会训练这个神经元,这种特性称之为稀疏性。根据有关大脑方面的研究,大脑中的神经元在同一时间
5、仅有1%4%处于工作状态。在使用RelU激活函数的网络中,通常只有50%左右的神经元被激活。但RelU函数很脆弱,如果Rekl的神经元要经过一个较大的梯度会使这个神经元无法再被其他数据点再一次被激活并且经过这个神经元的梯度都会变为0,使得数据会有所丢失。损失函数损失函数是用来评估神经网络模型的Predictivevalue与Turevalue的差距的函数。选择合适的损失函数能使模型发挥最大的学习效率,在模型学习的过程中有着指导的重要作用。损失函数的值越小则模型的鲁棒性越好。3.4.1 MSE均方误差均方误差是计算Predictivevalue与Turevalue之间差的平均值心。其公式如下:M
6、SE=松小一/()2(3.5)3.4.2 RMSE均方根误差均方根误差是计算Predictivevalue与Turevalue之间差的平均值开方心网。其公式如下:RMSE=sqrt1(yi-/(x1)2)(3.6)3.4.3 MAE平均绝对误差平均绝对误差是计算Predictivevalue与Turevalue之间绝对误差的平均值ng。】。其公式如下:MAE=0工|%-勺)|(3.7)应用梯度下降法时,MSE损失的梯度为-无、MAE损失的梯度为1,所以MSE的梯度会一直变化,而MAE的总是1,这对于模型学习来说是没有好处的。解决方法是随时调整学习率。因此MSE使用得更广泛就是因为损失函数的梯度
7、不同使得很多时候MSE比MAE收敛得快一些。图3-5MSE和MAE曲线对比从上面的两幅图可以看出:MSE的损失与误差的关系是平方关系,MAE的损失与误差之间是线性关系。虽然在误差小于1时MAE的损失会比MSE小,但当误差越来越大时,MAE的损失会比MSE小很多。再由下面两幅图对比可知:假设误差为拉普拉斯分布的MAE比以高斯分布的MSE的鲁棒性更好。图3-6MSE和MAE误差分布对比梯度下降算法梯度下降的方法是没有其他条件下最普遍的用法。在迭代的每一步根据特定的方向更新X的值来求出f(X)的最小值,这个方向就是使函数值下降得最快的方向。所以使用这种方法时首先要求出f(X)的梯度。计算过程如下:假
8、设需拟合的函数为力(6),为参数的个数,”为训练集的大小,/表示损失函数。K)=jXj(3.8)39)将j()对。求偏导,得到对应的梯度:鬻=-巴(V犯8)引0.10)再根据每个梯度负方向来确定。的值:j=+九。(N)引(3.11)BP神经网络与一般神经网络不同的是,该网络具有反向传播算法,该方法是训练方法,通过对比实际输出和预测值之间误差的导数来调整阈值,从而完成学习的过程。其算法流程为:(1)初始化网络参数,一般设阈值和权值为在0附近很小的数;(2)设置HiddenLayer神经元个数,选择合适的ActivationFunction;(3)计算InputLayer到HiddenLayer,HiddenLayer到OutputLayer各个神经元的输出;(4)计算神经网络PrediCtiVeValUe与TiIreVaIUe的误差,判断误差是否小于设定值;(5)若误差小于设定值,则退出训练过程,神经网络训练完成;(6)若误差大于设定值,则通过公式(3.10)来计算各个单元的梯度值,修正神经网络的权值,返回第(3)步。