不考虑正则的一般情况
运行一个学习算法时,如果这个算法的表现不理想,那么多半是出现两种情况:要么是偏差比较大,要么是方差比较大。换句话说,出现的情况要么是欠拟合,要么是过拟合问题
高偏差和高方差对应欠拟合和过拟合的问题,如下图所示:
我们通常会通过将训练集和交叉验证集的代价函数误差与多项式的次数绘制在同一张图表上来帮助分析:
欠拟合的情况对应d较小时,过拟合的情况对应d较大时,随着d的增加,越来越小,先变小再变大
如果在训练时遇到模型在或者上都很高,如何判断是高偏差还是高方差呢?下图给出了很好的解释
训练集误差和交叉验证集误差近似时:偏差/欠拟合 交叉验证集误差远大于训练集误差时:方差/过拟合
考虑正则
在我们在训练模型的过程中,一般会使用一些正则化方法来防止过拟合。但是我们可能会正则化的程度太高或太小了,即我们在选择的值时也需要思考与刚才选择多项式模型次数类似的问题。
我们选择一系列的想要测试的 值,通常是 0-10之间的呈现2倍关系的值(如:0, 0.01, 0.02, 0.04, 0.08, 0.15, 0.32,0.64, 1.28, 2.56, 5.12, 10 共12个)。 我们同样把数据分为训练集、交叉验证集和测试集。
选择的方法为:
- 使用训练集训练出12个不同程度正则化的模型
- 用12个模型分别对交叉验证集计算的出交叉验证误差
- 选择得出交叉验证误差最小的模型
- 运用步骤3中选出模型对测试集计算得出推广误差,我们也可以同时将训练集和交叉验证集模型的代价函数误差与λ的值绘制在一张图表上:
注意在这张表上,横坐标是,
网友评论