0%

以下是处理偏差和方差问题最简单的公式:

• 如果具有较高的可避免偏差,那么增加模型的大小(如:增加神经网络的隐藏层或者神经元)

Read more »

如果你的学习算法是高可避免偏差的话,你可以尝试以下办法:

• 增加模型大小 (如神经元和层数): 该方法可以减少偏差,因为它可以让你更好的适应训练集。如果你发现该方法增加了方差,那么使用正则化方法,它通常可以消除方差的增加。

Read more »

在我们的猫咪识别实例中,这个“想法”的错误率指的是——最优分类器的错误率接近0%,就像一个人可以很轻松的识别它。而且随时可以进行识别,我们希望机器也可以做到这点。
还有一些问题是比较困难的。例如:假设你建立了一个语音识别系统,并且发现有14%的音频杂音非常多,即使一个人也很难听出音频中在说什么。在这种情况下,这个“最优的”语音识别系统的误差大约为14%。
假设在这个语音识别系统中,你的算法效果如下:
• 在训练集上的误差 = 15%
• 在开发集上的误差 = 30%
在训练集上的效果接君最优误差14%。因此,在偏差和训练集上面进行改进是不会取得太大的效果的。然而这个算法并不适用于开发集;因此,由于方差的原因,在这里有很大的改进空间。
这个例子于上一章节的第三个例子类似,它有在训练集上有15%的误差,在开发集上有30%的误差。如果最优分类器的误差接近于0%的话,则训练集上有15%的误差改进空间非常大,减少偏差是非常有效的。但是如果最优错误率约为14%,那么近乎相同的训练集的数据告诉我们我们分类器是很难提高的。
对于最优错误率远大于0%的问题,这里有一个关于算法错误的更详细的分类。我们继续使用上面的语音识别示例,可以按如下方式分解在开发集上的30%误差。(在测试集上也可以类似进行错误分析)
• 最优误差率 (“不可避免的偏差”): 14%. 假设我们认为,即使世界上最好的语言我们仍会有14%的误差,我们可以把这个看作为不可避免的部分。
• 可避免的偏差 : 1%.由训练集上的误差于最优误差的差值计算得到。3
• 方差 : 15%.训练集与开发集上误差的区别。
由我们之前的定义,我们定义这两者关系如下:4
偏差 = 最优误差(不可避免的偏差) + 可避免的偏差
这个可避免的偏差反映了你算法的在训练集上与最优分类器直接的差别。
方差的定义与之前的定义一样,从理论上讲,我们可以通过对大量训练集的训练,将方差减少到接近0%的水平。因此,如果数据量足够大,所有的方差都是可避免的,反之不可避免。

再思考一个例子:假设最佳错误率为14%,我们有如下:
• 在训练集上的误差 = 15%
• 在开发集上的误差 = 16%
在前一章,我们把它叫做高偏差分类器,我们现在可以知道,可避免的误差为1%,误差在1%左右,因此,这个算法已经做的很好了,几乎没有改进空间,它与最佳错误率相差不超过2%。
我们从这些例子中可以看出,知道这个误差率有助于指导我们进行下一步工作。在统计中,最优错误率也称为贝叶斯误差率(Bayes error rate)或贝叶斯率。
我们怎么知道最优错误率是多少?对于人类擅长的任务,例如识别图片或视频剪辑,人类可以给结果打标签,然后计算出准确率。这里将给出最优错误率的一个评估准则。如果你在做一个人类做起来比较困难的事情(如:预测推荐电影,或者广告给一个用户)这就很难给出最优的错误率。
在“与人类性能比较[Comparing to Human-Level Performance](33-35章节)”中,我们将详细讨论它。将学习算法的性能与人类的水平进行比较。
在最后的几章中,你会了解如何通过查看训练集和开发集的错误率来评估可避免/不可避免的偏差和方差。下一章将讨论如何利用这样的分析来区分偏差和一些其它的减小偏差的技术。根据你当前项目的情况,是高偏差(可避免的)还是高方差,你应该使用不同的优化方法。加油!

Read more »

思考我们的猫咪分类器。一个理想的分类器(如:人为分类)会在这个任务中有着完美的表现。
假设你的算法表现如下:
• 训练集上的误差 = 1%
• 开发集上的误差 = 11%
这里存在什么问题呢?根据前面章节的定义我们估计它的偏差为1%,方差为10%(=11%-1%)。因此,它的方差很大,分类器在训练集上的错误率很低,但是它不能很好的泛化到开发集上,这被称为过拟合(overfitting)。
现在我们思考下面这个情况:
• 训练集上的误差 = 15%
• 开发集上的误差 = 16%
我们估计偏差为15%,方差为1%。这个分类器适用于训练集,虽然存在15%的误差,但是它在开发集上的误差比在训练集上的误差要高。这个分类器存在着高偏差,低方差,我们认为这个算法是欠拟合(underfitting)。
现在我们再思考这种情况:
• 训练集上的误差 = 15%
• 开发集上的误差 = 30%
我们估计偏差为15%,方差也为15%。这个分类器同时具有高偏差和高方差:它在训练集上的效果不是很好,因此产生了高偏差,然后它在开发集上的效果表现的更差,因此出现高方差,所以这个分类器是同时过拟合/欠拟合的,难以用术语表示。
最后思考这种情况:
• 训练集上的误差 = 0.5%
• 开发集上的误差 = 1%
这个分类器的效果就很好,它的偏差和方差都很低。如果是这种情况,祝贺你!

假设你的训练集,开发集和测试集都来自同一分布。那么你会觉得获取更多的训练数据就可以提高性能,对吗?

尽管更多的数据是无害的,但它并不是总会像我们所期望的那样有用。获取更多的数据需要耗费很多时间。所以,你需要什么什么时候该增加数据量,什么时候不该增加。

Read more »

• 当你开始一个新项目时,尤其你不是这个领域的专家时,你很难选择最有前途的方向。

• 不要一开始就尝试设计和构建完美的系统,而是尽可能快的建立和训练一个基础的系统(几天之内),然后使用错误分析。帮助你找到最优的方向,并迭代改进你的算法。

Read more »