参数性能的度量:损失函数和代价函数
我们想要让模型自己基于数据进行训练学习,寻找最优的权重和偏置,以使得模型在训练数据上的表现达到最好的效果。有一个前提,就是我们首先须能够评估(量化)每个不同的权重或偏置的表现如何,因此为了评估不同参数对应的性能表现,我们引入了损失函数(对单个样本而言)、代价函数(对训练集所有样本的损失函数值的平均函数)。
损失函数就是给矫正参数提供数据支撑的,损失函数因不同的算法而异,我们可以根据项目需求进行选择。但是无论是哪种损失函数,它都要符合一个原则:当网络能对图像进行正确分类时,损失函数值要比较小,偏差的越大,损失值越大。
通过损失函数的构建,我们完成了对要解决问题的转换和抽象化,现在我们要解决的问题是:如何找到一个参数组合,使得训练集上的损失函数值最小。
在BP神经网络中,一般推导中,使用均方误差作为损失函数,而在实际中,常用交叉熵作为损失函数。如下图所示,我们可以清晰地观察到不同的损失函数在梯度下降过程中的收敛速度和性能都是不同的。
- 均方误差作为损失函数收敛速度慢,可能会陷入局部最优解;
- 而交叉熵作为损失函数的收敛速度比均方误差快,且较为容易找到函数最优解.