全套【斯坦福大学】学习资料

斯坦福大学 – 吴恩达老师的《机器学习》课程全套学习资料

视频、中文笔记、习题、答案(包含考试题目)

关注 微信公众号:AI传送门,回复 “斯坦福” 即可获得

 

部分课程预览:

高偏差 vs 高方差(high bias vs high variance

如果我们的学习算法,不如我们的预期,基本上是由两个原因造成:

高的偏差(high bias)或高的方差(high variance),即要么低拟合(underfittting)、要么过拟合(overfitting)

♣  假设函数阶数d 与 高偏差/ 高方差

总结:如果训练误差train error和验证误差validation error都很大,则有可能假设函数高偏差(high bias),即低拟合(underfit)

如果train error小,validation error远大于训练误差,则有可能假设函数高方差(high variance),即过拟合(overfit)

♣  正则参数λ 与 高偏差/ 高方差

 

诊断图形——学习曲线(learning curves):

♣  训练集m 与 高偏差/ 高方差

♦ 当训练集数量很少(如m=1,2,3)时,模型很容易拟合数据,因而,误差很小,近乎为0;

随着训练集数量的增加,即使再完美的模型,也无法100%的拟合数据,因而随着数据增多,未能被拟合的数据也会相对增多,即误差逐渐增大。

♦ 对于高偏差(high bias)模型,训练误差和验证误差很接近,但都是处于很大的误差水平上。此时,无论怎样增加训练集m,都无法降低误差

♦ 对于高方差(high variance)模型,训练集误差在很低的水平上,但是验证误差和训练误差的缺口gap(图中蓝色箭头)很大,此时,增加训练集m,可以使得验证误差更接近训练误差,即当模型存在高方差问题时,增加m可以降低误差

 

学习曲线绘制步骤:

 

解决算法问题的方法汇总:

♣  高偏差(high bias):

♣  高方差(high variance):

补充:神经网络的underfit和overfit

 

【课后习题】

1.  在下列哪些情况下,获得更多的训练数据,可以显著提升学习算法的性能?

A  算法存在高偏差。

B  算法存在高方差。

C  交叉验证集的误差远大于训练误差。

D  交叉验证集的误差约等于训练误差。

答案:B、C

解析:

选项C:当验证误差远大于训练误差时,考虑训练集本身的数据量太少。此时,无论算法存在高偏差,还是高方差,增加训练数据,都能暂时提升算法的性能。

2.  假设你执行了正则化逻辑回归算法,用来做图像分类。然而,当你在一组新的图像上测试你的假设时,发现预测误差大到无法接受,可是,在训练集上却表现很好。接下来,你需要做哪些工作来改善你的模型?

A  尝试减小正则参数。

B  尝试使用更少的特征。

C  尝试增加正则参数。

D  尝试在交叉验证集,而不是在测试集上评估假设函数。

答案:B、C

解析:

选项A:当我们构建的假设函数在训练集(历史数据)上表现良好,而在新数据上表现较差时,模型很有可能陷入了高方差问题,此时如果减小正则参数,会使问题进一步加剧。

选项D:将数据集划分为训练集、验证集、测试集的目的:

训练集:寻找每个模型的最佳参数;

验证集:确定最佳模型;

测试集:估算最佳模型的误差率。

如果模型陷入了过拟合,无论是在验证集上评估模型,还是在测试集上评估模型,其结果仍是过拟合,并不能改善模型。