损失函数(Loss Function)是用来衡量模型的预测值与真实值之间差异程度的函数,在深度学习模型中,损失函数是必不可少的,其主要作用在于:
1)衡量预测的准确性:损失函数主要用于衡量模型输出与真实标签之间的差异。通过最小化损失函数,模型能够不断修正自身的参数和权重,更准确地预测未知样本的标签。
2)优化模型:深度学习模型可以通过梯度下降等方法不断优化和调整模型参数来最小化损失函数,进而优化模型,使得模型预测值能够与真实值更加接近。
3)计算反向传播信号:大多数神经网络模型都是通过反向传播来不断学习更新网络参数,而反向传播算法所需要的梯度信息则需要利用损失函数来进行计算。
4)评估模型:可以通过比较模型在训练集、测试集、验证集上的损失函数来衡量整个模型的准确性以及泛化能力等性能。
损失函数的使用主要是在模型的训练阶段,每一个批次的数据送入模型进行训练后,通过前向传播输出模型预测值,再通过损失函数计算得出衡量预测值与真实值之间差异的损失值;得到损失值后,模型通过反向传播更新各个参数以便降低预测值与真实值之间的损失,使得模型的预测值能够与真实值逐渐逼近。从原理上来讲,损失函数可以分为两大类。
第一类是基于距离度量的损失函数,这类损失函数通常是将输入数据映射至基于距离度量的特征空间上,例如欧式空间等;再将映射后的样本看作特征空间上的点,采用合适的损失函数来度量特征空间上真实值与预测值之间的距离。而特征空间上真实值所代表的点与预测值所代表的点之间距离越小,则说明模型预测的性能就越好。这类损失函数包括均方误差(Mean Square Error,MSE)损失函数、L2损失函数(最小平方误差,Least Square Error,LSE)、L1损失函数(最小绝对误差,Least Absolute Error,LAE)、Smooth损失函数、Huber损失函数等。
第二类是基于概率分布的损失函数,这类损失函数是将样本之间的相似性转化为随机事件出现的可能性,即通过度量样本的真实分布与估计分布之间的距离来判断两者之间的相似度,一般用于涉及概率分布或者预测类别出现概率的问题中,尤其是在分类问题中较为常用。这类损失函数包括KL散度函数(相对熵损失函数)、交叉熵损失函数、Softmax损失函数、Focal损失函数。常用损失函数的表达式见表2.3,其中 f ( X )为预测值, Y 为样本标签值, L 为损失函数值。
表2.3 常用损失函数的表达式
(续)