损失函数(Loss Function)是机器学习和深度学习模型中的一个核心概念,它用于衡量模型的预测输出与真实标签之间的差异。通过优化(最小化)损失函数,模型可以不断调整其内部参数,提升预测性能。不同任务和模型类型会使用不同的损失函数,具体的选择通常取决于问题的性质。
首先,假设我们存在n个样本,将n个样本的实际数值以及预测数值作差求和即可得到整体模型的预测输出与真实标签之间的差异。但是考虑到如果是简单的绝对值求和,在其定义域上并非是全程可导的,这样对于梯度下降法的运用并不友好。因此,我们可以对其求平方和,也就是所说的“最小二乘法”,这样可以进行模型差异的判断,但是运用梯度下降法也是很麻烦的。
我们将会引入一个极大似然估计的方法,在概率论中,我们可以知道,如果我们已知真实的分布情况和许多概率模型,我们就可以求出在某种概率模型下,这种分布情况发生的概率,而最大的那个概率值对应的模型便是最接近真实的概率模型。
同样,我们将这种理念运用到损失函数中,如果我们已知真实的样本分布和许多训练模型(即W和b),在二分类的情况下,我们知道,真实样本存在两种分布0(不是)或1(是),也就是我们常说的伯努利分布。对于真实的样本分布中的其中单个样本,存在两种情况0或1,而对应的概率模型为yi,即w和b权重下经过激活函数处理后得到的概率值。这样说,可能还是比较难以去理解,如果我们假设x1这个样本是猫(数值为1),而y1预测值为0.9,这时候进行计算可以得到似然值为0.9,假设x2这个样本不是猫(数值为0),而y2预测值为0.2,这时候进行计算可以得到似然值为0.8,总似然值为0.72。
为了简化运算,我们可以将连成变为连加,对整体进行对数运算,可以得到类似于交叉熵结构的公式。
总结一下,不同的机器学习问题有着不同的损失函数: