机器学习理论与实践-06-学习算法的评估与改进

0.

视频资料:吴恩达机器学习课程

https://www.coursera.org/learn/machine-learning/lecture/1z9WW/backpropagation-algorithm

 

1.模型选择问题(评估)

①将数据集划分为两个部分:

训练集training set——70%

测试集test set——30%

用测试集来验证假设的表现,去拟合参数,去选择模型。

正如我们说更好的拟合训练集并不意味着假设更好一样,再用测试集去观察泛化误差,相对不够合理化。

②将数据集划分成三个部分 

训练集training set——60%

交叉验证集cross validation set(CV)——20%

测试集test set——20%

交叉验证集存在的意义就是用交叉验证集来验证假设的表现,去拟合参数,去选择模型,

接下来对模型表现的评价根据测试集进行计算,这样得到的泛化误差相对可信度较高。

 

2.偏差与方差(评估)

偏差与方差可以帮助去了解如何更好的改进学习算法

①什么是偏差与方差

当通过选择不同次数多项式来完成模型选择的问题中,我们可以得到如下的图像,通过这个图像,我们可以清晰的明确什么是高偏差(bias)与高方差(variance)。

高偏差(欠拟合):训练误差很高,验证误差与训练误差相似

高方差(过拟合):训练误差很低,而验证误差远远大于训练误差

②正则化与偏差和方差的关系

(前情提要:正则化可以有效防止过拟合)

J(θ)含正则化项,利用训练集计算出最优化的θ值,从而计算出Jtrain(θ)、Jcv(θ)和Jtest(θ),

但Jtrain(θ)、Jcv(θ)和Jtest(θ)均不含正则化项,只是均方误差。

不断增加λ的值,来观察Jtrain(θ)与Jcv(θ)曲线

当λ很小的时候,会出现过拟合的问题,因此会导致Jcv(θ)效果很差,而Jtrain(θ)效果很好

当λ很大的时候,会导致正则化项很大,使得Jtrain(θ)(去掉正则化项的J(θ))很大,即偏差很大,此时的Jcv(θ)相应也很大。

 

3.绘制学习曲线(评估)

——训练集数据数量m与误差大小Jtrain(θ)、Jcv(θ)和Jtest(θ)的曲线

①Jtrain(θ)

当m很小的时候,我们很容易做到“完美拟合”,所以此时的误差会很小,

当m越来越大的时候,平均训练误差是逐渐增大的(相对每一个样本都做到拟合是很难得)

②Jcv(θ)和Jtest(θ)

随着m的增加而增加,数据越多,泛化能力越好。

综上,我们可以通过学习曲线,观察出当前模型是否存在高偏差或高方差

高偏差情形:随着m的增加,Jtrain(θ)不断增加并趋于Jcv(θ)

 

高方差情形:

对是否要增加更多的样本有指导意义:当处于高方差情景,Jcv(θ)大于Jtrain(θ)的时候增加更多的样本是有帮助的。

 

4.一些小tips

为了改进学习算法,我们有如下的一些想法:

①获得更多的训练样本

适用高方差:应该先画出学习曲线,观察模型,需要至少有那么一点方差问题(交叉验证集误差要大于训练集误差)。

②选取更少的特征

适用高方差:当看出模型处于高偏差状态的时候,显然选取更少的特征是不会有任何帮助的,而处于高方差问题的模型,讯取出更适合的特征值是很有帮助的。

③获取额外的特征

一般适用高偏差:假设函数太简单会导致高偏差,补充一些特征可以使假设函数更好的拟合训练集(增加多项式也是增加特征的一种)

④尝试降低λ

便于实现,减小可以修正高偏差(见3中曲线与λ的关系)

⑤尝试增加λ

便于实现,增加可以修正高方差(见3中曲线与λ的关系)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值