损失函数
损失函数是模型优化的目标,用于在众多的参数取值中,识别最理想的取值。
房价预测是回归任务,而手写数字识别是分类任务,使用均方误差作为分类任务的损失函数存在逻辑和效果上的缺欠。在房价预测的案例中,由于房价本身是一个连续的实数值,因此以模型输出的数值和真实房价差距作为损失函数是符合道理的。但对于分类问题,真实结果是分类标签,而模型输出是实数值,导致以两者相减作为损失不具备物理含义。
分类任务本质上是“某种特征组合下的分类概率”,分类模型应该拟合这个真实规律,输出属于该分类标签的概率。
如果模型能输出10个标签的概率,对应真实标签的概率输出尽可能接近100%,而其他标签的概率输出尽可能接近0%,且所有输出概率之和为1。这是一种更合理的假设。
Softmax函数,它可以将原始输出转变成对应标签的概率
在模型输出为分类标签的概率时,直接以标签和概率做比较也不够合理,人们更习惯使用交叉熵误差作为分类问题的损失衡量。交叉熵损失函数的设计是基于最大似然思想:最大概率得到观察结果的假设是真的。
如下修改就可以将在现有模型的损失函数替换成交叉熵:
1)网络定义部分,将输出层改成“输出十个标签的概率”的模式。
2)在训练过程部分,将损失函数从均方误差换成交叉熵。
常见的一些分类任务模型图就清晰明了,如全连接神经网络、卷积神经网络,在模型的最后阶段,都是使用Softmax进行处理。

浙公网安备 33010602011771号