要做好深度学习任务,不妨先在损失函数上「做好文章」

神经网络损失可视化

该函数通过比较模型预测的值与其应该输出的实际值来计算出模型表现的糟糕程度。如果 Y_pred 与 Y 相差很大,损失值就会很高;如果两个值几乎一样,损失值就会很低。因此,我们需要让损失函数在数据集上训练时,始终能够有效地对模型进行惩罚。

如果损失非常大,损失值在模型训练期间会传递到整个网络中,同时,权重的变化会比平时要大很多。如果损失较小,权重的变化就不会这么大了,因为网络已经能够很好地执行任务了。

这一情况某种程度上跟考生准备考试差不多,如果考生考出的成绩很糟,我们就可以说损失非常大,那这位考生就需要对自己为下次考试所做的准备工作进行大改,以便在下次考试中取得更好的成绩。然而,如果考生的考试成绩还不错的话,他们就不会过多调整已经为下次考试所做的准备工作。

现在,让我们以分类任务为例,来了解损失函数在该示例中到底是如何表现的。

分类损失

当神经网络试图预测一个离散值时,我们可以将其视作一个分类模型。该网络会预测出图像呈现的是什么动物类别,或邮件是否是垃圾邮件。首先,让我们看下分类任务中神经网络如何表示输出。