上一篇文章我们讲了如何设置单一评价标准。而且我们知道在验证集和测试集上的误差尽量要接近在训练集上的表现。那么问题来了,我们如何评价我们训练的模型在训练集上的表现呢?多好算好呢?

Bayes Error

贝叶斯误差,是你模型理论上能达到的最小误差。比如手写数字识别,手写的7和1,0和6,有时很难分辨。这些误差是不可避免的。Bayes Error只存在于理论中,我们无法知道它的值是多少。我们训练的模型只能无限趋近于贝叶斯误差,但是不能比它更小。

Human-Level Error(人类误差)

人类误差是人在某一个问题上的表现。比如找一些人来识别手写数字,然后计算一个平均误差。在深度学习领域,认知识别,我们一般用人类误差来来提贝叶斯误差。因为人在认知识别方便很在行。目前除了AI,没有其他方式可以超越人类。

如何定义人类误差

对一个患者的X光照片进行判断是否患病,不同的人群会有不同的表现。
1. 普通人群误差率可能是10%
2. 普通医生误差率可能是1%
3. 专家医生误差可能是0.5%
4. 专家会诊误差可能是0.2%

如果我们是想用人类误差替代贝叶斯误差,那么我们应该取专家会诊误差。但是在实际部署模型时,如果我们的模型表现超过了普通医生,那么部署这个模型也是有意义的。

如何进行误差分析

有了贝叶斯误差/人类误差,训练集误差,验证集误差。我们就可以进行分析了。
人类误差和训练误差之间的差距是偏差Bias,如果偏差相对较大,证明模型欠拟合。
训练误差和验证误差之间的差距是方差Variance,如果方差相对较大,整平模型过拟合。
如果训练集误差和人类误差相差很大,那么证明模型欠拟合。在模型精度方面还有提升空间。但是这也是相对的,还要结合验证集误差和训练集误差的差值来看。比如人类误差是5%,训练集误差是8%,如果你验证集误差是9%。那么你下一步工作就应该是在训练集上提高模型精度,比如可以加大神经网络规模。如果你的验证集的误差是30%,那么证明你的模型过拟合。你应该把下一步工作重点放到收集更多数据或者正则化你的模型上。

超越人类

一旦你的模型在训练集和验证集,测试集上的表现都超越了人类。接下来的工作就很难进行了。这也是模型精度的曲线在未超越人类的时候提升很快,但是一旦超越人类后就变得平缓。原因有以下几个:
1. 人类误差已经很接近贝叶斯误差。
2. 超越人类后,已经无法从人类那里得到指导意见了,无法对错误进行针对性分析。
3. 无法得到人类的标记数据。
4. 调节模型时,很难知道当前模型处于什么状态,是过拟合还是欠拟合。因为已经失去了标准。而且无法知道Bayes Error在哪。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

%d 博主赞过: