吴恩达《深度学习工程师》Part2.Week1 深度学习的实用层面

1.1 训练/开发/测试集 在构建一个机器学习模型时,需要将数据分配为训练(training)集、开发(development)集、测试集(test)集,合理的分配将会显著提高模型训练的效率。 图1 训练/开发/测试集分配 如图1所示,训练集用于开展对模型的训练,开发集用于选择最好的模型,当模型确定好以后,在测试集上来进行无偏评估。在机器学习时代,常见的数据划分做法是训练集70%测试集30%...
摘要由CSDN通过智能技术生成

1.1 训练/开发/测试集
在构建一个机器学习模型时,需要将数据分配为训练(training)集、开发(development)集、测试集(test)集,合理的分配将会显著提高模型训练的效率。

这里写图片描述图1 训练/开发/测试集分配

如图1所示,训练集用于开展对模型的训练,开发集用于选择最好的模型,当模型确定好以后,在测试集上来进行无偏评估。在机器学习时代,常见的数据划分做法是训练集70%测试集30%。如果没有明确设置验证集,也可以按照60/20/20%进行划分,以上做法针对的时数据集较小的情况,例如1万个数据左右。
针对大数据时代的深度学习,测试集和测试集比例会减小。例如有100万个数据的话,只需要拿出1万个(1%)数据作为验证集,1万个(1%)数据作为测试集。对于超高100万的数据集,验证集和测试集甚至可以更小(0.25%和0.25%)

这里写图片描述图2 训练/测试集分布不匹配的情况

现在越来越多的情况是训练集和测试分布是不同的,例如检测图片中是否有猫的模型,训练集中的图片一般来自网页,都是高分辨率的清晰图片,而验证和测试集的图片大都是用户自己拍摄的低分辨率模糊图片。为了保证良好的预测效果,需要保证训练集和验证、测试集分布保持一致。
另外,如果不需要进行无偏测试的话,测试集也可以省去,即只划分训练集和验证集。

2.1 偏差/方差
偏差和方差时衡量一个模型预测效果好坏的重要指标。

这里写图片描述
图3 不同的偏差和方差情况

左图采用logistic回归分析预测的分类结果,该模型不能有效区分出不同类型,属于高偏差的情况。右图采用深层神经网络构建出了复杂的分类模型,虽然有效区分出了所有的不同类别,但是模型过于复杂,出现了过拟合(overfitting),属于高方差的情况。中图区分出了大部分的不同类别,虽然有个别值出现了错误分类,但总体分类准确度很高且模型较为简单,属于较优的模型。
下面以猫的分类模型为例进行说明。
这里写图片描述图4 偏差和方差在猫分类模型中的表现

假设人眼的识别误差几乎达到0%
如果训练集误差为1%,验证集误差为11%,则是训练集过拟合(overfitting)的情况,属于高方差。
如果训练集误差为15%,验证集误差为16%,则是训练集欠拟合(underfitting)的情况,属于高偏差。
如果训练集误差为15%,验证集误差为30%,则是训练集欠拟合(underfitting)和过拟合(overfitting)同时存在的情况,高偏差和高方差并存。
如果训练集误差为0.5%,验证集误差为1%,则模型效果较好,属于低偏差和低方差。

注意,如果人眼的识别误差是15%的话,如果训练集误差为15%,验证集误差为16%,则认为模型表现是很优秀的,属于于低偏差和低方差的情况。

最后,图5说明了高方差和高偏差同时存在的情况。

这里写图片描述图5 高方差和高偏差并存

分类曲线对整体的分类效果较弱,存在多个数据分类错误的情况,整体属于欠拟合,此外曲线中心部位较为复杂,对两个数据点进行了正确的分类,却出现了过拟合的情况。

1.3 机器学习基础
这节讲述了如何针对高偏差、高方差的情况对模型进行调试的策略。

这里写图片描述图6 高偏差、高方差的模型调试策略

如果模型出现了高偏差(训练集上出现欠拟合),则可以增大网络规模,例如增加隐藏层层数、提高节点数目等来减小偏差,或者【训练时间延长、采用新型的网络架构(后面讲到的CNN,RNN等)】,【】中的方法可能有效也可能无效,需要实际地去尝试才知道。重复这些步骤,直到模型在训练集上能够达到很好的拟合效果。

将上面训练好的模型用于验证集时,可能会出现高方差(训练集过拟合)的情况,最好的解决方法是采用更多的数据,但是如果不能获得更多的数据的话,可以采用正则化的方法,减小过拟合的现象。

这里有两点需要注意:
1.高偏差和高方差是两种不同的情况,需要有针对性的选取模型的优化策略。
2.在机器学习的早期,有很多关于权衡偏差和方差策略的讨论,这是因为当时的一些策略只能单一的减小偏差却提高方差,或者减少方差提高偏差,很难实现两者的同时减小。在如今的深度学习和大数据时代,只要持续训练一个更大的网络,就能够减小偏差而不影响方差。喂给模型更多的数据,可以做到减小方差而不显著影响偏差。

1.4 正则化
当你的模型出现了过拟合,也就是方差过大的情况时,一个有效的方法时增大训练集的数据量,但是当没有更多的数据或者获取新的数据成本过高时,可以使用正则化(regularization)的方法。
以logistic回归为例,可以将代价函数加入一个正则化项。

J(w,b)=1m1m(y^[i]y[i])+λ2m||w||22 J ( w , b ) = 1 m ∑ 1 m ( y ^ [ i ] − y [ i ] ) + λ 2 m | | w | | 2 2

其中 ||w||22 | | w | | 2 2 w w 的欧几里德范数:
| | w | | 2 2 = j = 1 n x w j 2

这种方法称为 L2 L 2 正则化。为什么不在代价函数中加入偏置 b b 的正则化项呢?因为 w 包含了很多参数,这些参数已经可以描述过拟合的情况,这时 b b 可以省略掉。

还有一种方法是 L 1 正则化:

λ2m1nx|w|=λ2m||w||1 λ 2 m ∑ 1 n x | w | = λ 2 m | | w | | 1

如果使用 L1 L 1 正则化,得到的 w w 将是稀疏的,也就是其中有很多0。
上面的 λ 是正则化参数,通常使用验证集来调试 λ λ 参数,这样可以把 w w 控制在一个较小的值,防止过拟合。

神经网络模型中的正则化如下:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值