吴恩达机器学习笔记(九)应用机器学习的建议

一、决定下一步做什么

当发现一个机器学习模型的测试效果不太好时,下一步该做什么呢?
你可能会想到很多种改善方法:

  1. 使用更多的训练样本
  2. 减少特征数量
  3. 增加特征数量
  4. 增加多项式特征
  5. 增大正则化项的参数 λ \lambda λ
  6. 减小正则化参数 λ \lambda λ

那么选择哪一种呢?
对模型进行评估、诊断和改善,将是我们这一章介绍的内容。评估和诊断可能还会花费你大量的时间,但这些都是值得的。

二、评估假设(Evaluatong a hypothesis)

通常将数据集分为两部分,70%作为训练集,30%作为测试集。

线性回归的评估方法:(预测值与标准值之间的均方误差)

分类问题的评估方法:(预测分类与实际分类是否一致的0/1判定)

三、模型的选择、训练、验证(Model Selection and Training/Validation/Test Sets)

如果我有10个可选的模型,不知道哪个是最优的。你可能会将10个模型分别在测试集上应用,分别求出在测试集的代价函数,选择表现最好的认为是最优模型。

这样会导致一个问题:模型选择是依据在测试集上的表现,那么选出的模型可能只是针对该指定测试集表现良好而已。如果在其他数据集上进行测试,可能泛化效果并不理想。

因此,我们通常将数据集分成3份:训练集、交叉验证集、测试集。将10个模型分别在交叉验证集上运行,选择出最优的模型。将最优模型在测试集上运行,来评估模型的泛化误差。

训练集、交叉验证集、测试集的误差计算公式如下:
(公式相同,只是数据集不同)

流程:

四、诊断偏差与方差(Diagnosing Bias and Variance)

高偏差:欠拟合
高方差:过拟合

如下图,随着多项式次数的升高,训练集上的误差逐渐变小,而交叉验证集上的误差先减小再增大。这是由于,次数过高时出现过拟合现象,导致在训练集上表现的非常好,但在交叉验证集上的表现就很差。

怎么判断是高偏差还是高方差呢?
高偏差(欠拟合):训练集和交叉验证集上的误差都很大。
高方差(过拟合):训练集上的误差很小,交叉验证集上的误差很大。

五、正则化和偏差、方差(Regularization and Bias/Variance)

正则化项 λ \lambda λ太大时,欠拟合。 λ \lambda λ太小时,过拟合。选取合适的 λ \lambda λ值很重要。

在下述过程中, J ( θ ) J(\theta) J(θ)是加入了正则化项的代价函数(用于训练模型),而 J t r a i n ( θ ) J_{train}(\theta) Jtrain(θ)是均方误差,不含正则化项(用于评估模型)。

设定12个不同的 λ \lambda λ值,得到12个模型,通过交叉验证集选出一个最优的,再放到测试集上进行测试。

随着 λ \lambda λ的增加,训练集上的误差和交叉验证集上的误差的变化趋势如下图。训练集的误差逐渐增加,这是因为 λ \lambda λ太大时,欠拟合; λ \lambda λ太小时,过拟合。而交叉验证集上的误差是先减小再增大。

六、学习曲线(Learning Curves)

绘制学习曲线:随着样本数m的增加,训练集误差与交叉验证集误差的变化趋势,

高偏差(欠拟合):随着样本数m的增加,训练集误差逐渐增加,交叉验证集误差逐渐减小,但是最后趋于同一条直线,两者的误差都很大。此时,增大样本数对模型的提升不大。

高方差(过拟合):随着样本数m的增加,训练集误差逐渐增加,但始终保持一个在值很小的范围。交叉验证集误差逐渐减小,但始终大于训练集误差。当样本数很大很大很大时,二者误差也可以达到接近。对于高方差问题来说,增加样本数,可以提升模型的效果。

七、决定接下来做什么(Deciding What to Try Next)

回到我们最开始提到的问题,当一个模型的效果不好时,我们有很多种改善方案,那么选择哪一种呢?

  1. 使用更多的训练样本(适用于高方差)
  2. 减少特征数量(适用于高方差)
  3. 增加特征数量(适用于高偏差)
  4. 增加多项式特征(适用于高偏差)
  5. 增大正则化项的参数 λ \lambda λ(适用于高偏差)
  6. 减小正则化参数 λ \lambda λ(适用于高方差)

规模较小的神经网络容易出现欠拟合问题。规模较大的神经网络容易出现过拟合问题,但这个过拟合问题可以通过引入正则化项来改善。因此,在实际应用中,忽略计算量太大的因素,规模较大的神经网络的效果更好一些。

如果不知道设计几个隐藏层,那么可以分别设计一个、两个、多个隐藏层,然后通过交叉验证集来选出最合适的隐藏层层数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值