神经网络中的损失函数

神经网络中的损失函数

损失函数的概念

在机器学习的“监督学习”算法中,在假设空间 F 中构造一个决策函数 f,对于给定的输入 Xf(X) 给出的实际输出 \hat{y} 和原来的预测值 y (代表是正确答案)可能不一致。于是,我们需要定义一个损失函数度量实际输出和预测值之间的“落差”程度,这个函数通常记作:

L(y, \hat{y})=L(y, f(X))

通常,损失函数是针对一个样本实例而言。但神经网络的训练通常是一批又一批的样本批量训练,这时损失函数有一个类似名称,即代价函数,表示为

J = \sum_{m=0}^Nf(y_i, \hat{y_i})

其中,N 为一批参与训练的样本数量。

常见的代价函数

平均绝对误差

平均绝对误差(Mean Absolute Error, MAE)代价函数,也称为 L1 Loss,即

J_{MAE}=\frac{1}{N}\sum_{i=1}^{N}|y_i - \hat{y_i}|

均方差

均方差(Mean Squared Error, MSE)代价函数,也称为 L2 Loss,即

J_{MSE}=\frac{1}{N}\sum_{i=1}^{N}(y_i-\hat{y_i})^2

MAE 和 MSE 的主要区别在于,MSE 损失比 MAE 损失通常可以更快地收敛,但 MAE 损失对于孤立点更加健壮,即更不易受到孤立点的影响。这是因为 MSE 的平方项,放大了孤立点带来的差异。

交叉熵代价

交叉熵代价(Cross Entropy Loss, CE)函数,即

J_{CE}=-\sum_{i=1}^{N}y_i^{c_i}log\hat{y_i}^{c_i}

其中,c_i 是样本 c_i 是样本 x_i 的目标类。交叉熵代价函数也称为 Softmax Loss。若从不确定性上考虑,则交叉熵表示的是在给定的真实分布下,使用非真实分布所指定的策略来消除系统的不确定性所需要付出的努力大小。

总结

通常来说,代价函数(损失函数)的值越小,说明实际输出与预测输出之间的差值越小,也就说明模型的精度越好。我们依靠代价函数来监督机器学习算法,使其朝着预期目标前进,因此,它是监督学习的核心标志之一。

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://cangmang.xyz/articles/1646303498904