激活函数与损失函数
豆腐猪肉丸子的做法
激活函数
激活函数(Activation Function)一般为非线性函数。在神经网络中,仅仅依靠权重之间线性关系很难学习和理解复杂的模型,为此,引入Activation Function可以提升模型的‘Nonlinear’表达能力,只有加入Activation Function,模型才有‘Nonlinear’映射学习能力。常用的Activation Function有Sigmoid Function、Tanh Function和Relu Function。
3.3.1 sigmoid激活函数
Sigmoid Function是使用最多的Activation Function,它具有是指数函数的性质。Sigmoid Function的值域与概率值范围相同为(0,1),此就可以和概率分布结合在一起研究学习。另一方面,近三十年里的神经网络难以有有效的进展也是和Sigmoid Function的性质有关,这种性质是Sigmoid Function是平滑饱和Activation Function。平滑饱和Activation Function就是因为当x趋于-∞时,它的导数值会逼近于0,这会引起Gradient Disappeared。Gradient Disappeared是指Sigmoid Function在向下传递的梯度里有k’(s)k(s)因子, k’(s)k(s)会在输入落入饱和区时趋近于0,使得向底层传递的梯度变小,通常五层之内就会出现这种情况。
图3-2 sigmoid函数曲线
3.3.2 Tanh激活函数
Tanh Function的值域为(1,-1),与Sigmoid Function幅度增大后相似。Tanh Function的导数的取值范围在(0,1),而Sigmoid Function导数值域为(0,0.25),所以Tanh Function在一定程度上能够防止梯度消失的情况发生。并且它的输出和输入的关系不管是上升还是下降都是非线性的单调的,和BP网络的梯度求解是相匹配的。Tanh Function在原点附近与比例系数为1的正比例函数相似,所以在激活值较小的时候为了使训练更简便可以直接运用矩阵运算。
图3-3 tanh函数曲线
3.3.3 Relu激活函数
Relu Function在代数学中称为斜坡函数:当x小于0时,y为0;x大于0时,y等于x的值。在神经网络中,Relu Function 激活部分神经元。它将上一层神经网络传递来的输入向量x转化为max(0,WTx+b)输出到下一层神经网络。Relu Function相比于Sigmoid Function的优点在于:Relu Function的导数在x大于0时,导数为定值,所以不会发生梯度消失的情况;在x小于0时,导数为0,神经元激活值在负半区,梯度为0,那么便不会训练这个神经
元,这种特性称之为稀疏性。根据有关大脑方面的研究,大脑中的神经元在同一时间仅有1%~4%处于工作状态。在使用Relu激活函数的网络中,通常只有50%左右的神经元被激活。但Relu函数很脆弱,如果Relu的神经元要经过一个较大的梯度会使这个神经元无法再被其他数据点再一次被激活并且经过这个神经元的梯度都会变为0,使得数据会有所丢失。
图3全自动面包机-4 Relu函数曲线
损失函数
损失函数是用来评估神经网络模型的Predictive value与Ture value的差距的函数。选择合
适的损失函数能使模型发挥最大的学习效率,在模型学习的过程中有着指导的重要作用。损失函数的值越小则模型的鲁棒性越好。
3.4.1 MSE均方误差交通组织
均方误差是计算Predictive value与Ture value之间差的平均值[15-16]。其公式如下:
(3.5)
3.4.2 RMSE均方根误差
楚剑
均方根误差是计算Predictive value与Ture value之间差的平均值开方[17-18]。其公式如下:
(pull什么意思3.6)
3.4.3 MAE平均绝对误差
平均绝对误差是计算Predictive value与Ture value之间绝对误差的平均值[19-20]。其公式如下:
(3.7)
应用梯度下降法时,MSE损失的梯度为、MAE损失的梯度为,所以MSE的梯度会一直变化,而MAE的总是1,这对于模型学习来说是没有好处的。解决方法是随时调整学习率。因此MSE使用得更广泛就是因为损失函数的梯度不同使得很多时候MSE比MAE收敛得快一些。
图3-5 MSE和MAE曲线对比
从上面的两幅图可以看出:MSE的损失与误差的关系是平方关系,MAE的损失与误差之间是线性关系。虽然在误差小于1时MAE的损失会比MSE小,但当误差越来越大时,MAE的损失会比MSE小很多。再由下面两幅图对比可知:假设误差为拉普拉斯分布的MAE比以高斯分布的MSE的鲁棒性更好。
《画》歌词
图3-6 MSE和MAE误差分布对比
梯度下降算法
梯度下降的方法是没有其他条件下最普遍的用法。在迭代的每一步根据特定的方向更新x的值来求出f(x)的最小值,这个方向就是使函数值下降得最快的方向。所以使用这种方法
时首先要求出f(x)的梯度。计算过程如下:
假设需拟合的函数为h(),n为参数的个数,m为训练集的大小,j()表示损失函数。
(3.8)
(3.9)
将j()对求偏导,得到对应的梯度:
(3.10)
再根据每个梯度负方向来确定的值:
(3.11)
深圳公务员报名BP神经网络与一般神经网络不同的是,该网络具有反向传播算法,该方法是训练方法,通过对比实际输出和预测值之间误差的导数来调整阈值,从而完成学习的过程。其算法流程为:
(1)初始化网络参数,一般设阈值和权值为在0附近很小的数;
(2)设置Hidden Layer神经元个数,选择合适的Activation Function;
(3)计算Input Layer到Hidden Layer,Hidden Layer到Output Layer各个神经元的输出; 会议纪要范文
(4)计算神经网络Predictive value与Ture value的误差,判断误差是否小于设定值;
(5)若误差小于设定值,则退出训练过程,神经网络训练完成;
(6)若误差大于设定值,则通过公式(3.10)来计算各个单元的梯度值,修正神经网络的权值,返回第(3)步。