常见损失函数
- 0-1损失函数
L(Y,f(X))={1,0Y != f(X)Y = f(X) - 平方损失函数
L(Y,f(X))=(Y−f(X))2 - 绝对损失函数
L(Y,f(X))=|(Y−f(X))| - 对数损失函数
L(Y,P(Y|X))=−logP(Y|X)
常见的损失函数包含以上几个。
平方损失函数
在神经网络中样本的平方损失函数一般会定义为:
使用误差逆传播训练神经网络时会使用梯度下降法来更新每个神经网络中的权重,
根据链式求导法可以得到权重更新公式,
此时对于输出层,权重更新公式为
sigmoid激活函数
如果神经元使用sigmoid激活函数,即
,函数图如下,
则梯度下降法更新权重时,会涉及到sigmoid函数的导数,这个导数的形状大致如下:
可以看到导数两边的值基本都接近0,也就是说两边的斜率很平缓,两边的点在使用梯度下降时下降很缓慢,可能会影响训练最终效果。
交叉熵损失函数
针对以上不足,有两个方向来避免,一是从激活函数下手,一个是从损失函数下手。这里我们不换激活函数,还是用sigmoid函数,于是引入了交叉熵损失函数。
这时再看权重更新公式,
此时对于输出层,权重更新公式为
可以看到梯度下降已经不与sigmoid的导数相关了,而是由误差来影响,当误差较大时则下降较快,让梯度下降法更有效率,避免了训练慢的问题。
以下是广告和相关阅读
========广告时间========
鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以到 https://item.jd.com/12185360.html 进行预定。感谢各位朋友。
=========================
相关阅读:
机器学习之神经网络
欢迎关注: