本文是吴恩达《机器学习》视频笔记第63篇,对应第6周第5个视频。
“Advice for applying machine learning:——Regularization and bias/variance”
01
—
笔记
在第三周的视频中我们学过如何使用正则化防止过拟合,
那这个正则化和算法的偏差/方差又有什么关系呢?本节视频有深入介绍。
为了防止过拟合,线性回归的代价函数被叠加了一个正则化部分。如下图:
上节视频我们知道,多项式拟合的阶数选择不合理会加大偏差、方差。那正则化式中,\lambda取值不合适也会对偏差、方差造成影响。如下图:
看两种极端情况:
(1)\lambda非常大,那代价函数的取值受正则化项影响过大,最后得到的拟合公式就会产生严重的欠拟合,如上图最左边。
(2)\lambda非常小,正则项对代价函数影响不大,容易产生过拟合,如上图右边。
(3)只有当\lambda取值适中时,才会有较好的拟合效果,如上图中间。
我们的模型以及对应的正则化后的代价函数如下图。
那我们根据这个模型公式,找到训练集上的优化目标:
与之类似的,验证集、测试集的平方误差和的用法和前面的优化目标用法相同。
与找多项式阶数类似的方法,我们设置一个\lambda可能的取值区间,然后以一定的步长去试最好的那个\lambda。
针对上图案例的算法步骤如下:
Step1:使用训练集训练出12个不同程度的正则化模型,每个\lambda一个;
Step2:使用12个模型分别对交叉验证集计算出验证误差;
Step3:得出交叉验证误差最小的那个模型;
Step4:使用Step3中得到的模型计算测试集上的误差,看是否能够推广。
当改变\lambda时,误差肯定会跟着变化,具体的训练误差、验证误差随着\lambda的变化趋势是怎样的呢?以\lambda为横轴,以误差为纵轴,得到的曲线如下图右侧:
如上图,只有\lambda取值适中的时候才会同时得到相对较小的训练误差和交叉验证误差。
当然,在我们实际的实验中得到的曲线肯定会比上图中画的曲线波动要大得多,会有很多噪声干扰。
02
—
视频