accuracy

  1. 在分类问题最常看的指标就是accuracy,它的计算公式一般是由预测正确的样本数/总样本数。但是accuracy本身是个不可导的方程。
  2. 在分类任务中,对于一个N类任务,输出就是一个N维的向量,向量每一个位置就代表了一种类别,对应位置的值就代表预测的目标属于该类的概率,对于猫狗的分类,输出向量为[0.2, 0.8],就表示输入的图属于猫的概率为0.2,属于狗的为0.8。在输出预测结果时,我们是取概率最大的索引所对应的的标签作为最终预测的结果标签,在以上的例子中由于狗的概率大于猫,预测输出:输入的图像类别为狗。

loss

分类问题中常用的为交叉熵损失函数。

图像识别训练loss值怎么查看 图像分类loss_pycharm


p为真实值,q为预测值,可以看出交叉熵损失只关心对正确类别的预测概率。

两者的关系

用简单直白的话来形容,用学习成绩打比方, loss是全班平均分, accuracy是90分以上的比率。其实从模型角度出发,loss是衡量标准,但是好的模型最终还是要提现到accuracy上。
既然准确率和损失都是评价模型好坏的,那么用一个不行吗?为什么要用两个并不完全等价的评价指标呢?
这是因为,在分类问题中,准确率更加的直观,也更具有可解释性,更重要,但是它不可微,无法直接用于网络训练,因为反向传播算法要求损失函数是可微的。而损失函数一个很好的性质就是可微,可以求梯度,运用反向传播更新参数。即首选损失不能直接优化(比如准确率)时,可以使用与真实度量类似的损失函数。 损失函数的可微性,使得可以采用多种方式进行优化求解,例如牛顿法、梯度下降法、极大似然估计等。另外在分类任务中,使用accuracy可以,但是在回归任务中,accuracy便不再可用,只能使用loss。