前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >改善深层神经网络-设置机器学习应用

改善深层神经网络-设置机器学习应用

作者头像
小飞侠xp
发布2018-08-29 15:13:34
2010
发布2018-08-29 15:13:34
举报

引用Andrew Ng 的一段话:

超参数有很多,隐含层层数选择,隐含层单元节点选择,学习率,激活函数等。一来预设出最匹配的超参数是很困难的,所以应用深度学习是一个典型的迭代过程,需要多次循环往复,才能为应用程序找到一个称心得神经网络。因此,循环该过程的效率是决定项目进展速度的关键因素,而创建高质量的训练数据集,验证集和测试集也有助于提高循环效率。

数据集划分

这有一个常见的误区,在机器学习发展的小数据时代,常见做法是将所有数据三七分,70%训练集,30%测试集或者60%训练集,20%验证集,20%测试集,这是机器学习前几年学习领域普遍认可的最好实践方法,如你的数据是100,1000,1万条按照上述划分是非常合理的。 BUT在大数据时代,我们现在的数据量可能是百万级的,那么验证集和测试集占总数的比例会趋向于变得更小。因为验证集的目的就是为了验证不同的算法,检验哪种算法更加高效。比如我们有一百万的数据,那么拿出1万的数据便足以进行评估,找出其中表现最好的1-2种算法。测试集主要目的是正确评估分类器的性能,同样只需要拿出10000条数据便足以评估单个分类器。所以,假设我们有100万数据,其中1万条做验证集,1万条做测试集。即:训练集98%,验证集和测试集各1%。对于数据量为百万级应用,训练集可以占到99.5%(哭晕在厕所) 注:想清楚每个数据集的作用,而不是机械的记住原来的三七分

偏差 / 方差

如图所示,高偏差将导致欠拟合,高方差将导致过拟合。 在只有两维特征X1,X2,我们可以绘制数据,将偏差和方差可视化,在多维空间绘制数据可视化分割边界将无法实现。但我们可以通过几个指标来知道。

理解偏差和方差的两个关键数据是:

  • 训练集误差
  • 验证集误差

假设训练集误差1%,验证集误差11%,我们可能过度拟合了训练集,某种程度上交叉验证集并没有充分利用交叉验证集的作用,像这种情况,我们称之为高方差。 假设训练集错误率是15%,验证集错误率16%,这属于高偏差欠拟合。 假设训练集错误率是15%,验证集错误率30%,这属于高偏差以及高方差。 假设训练集错误率是0.5%,验证集错误率1%,这属于低偏差以及低方差。

一些解决方案

  • 如果偏差很高甚至无法拟合训练集,那么你要做的就是选择一个新的网络——比如增加隐含层或者隐藏单元,或者花费更多时间训练或者尝试更先进的优化算法
  • 一旦偏差降低到一个可接受的数值,检查一下方差有没有问题,为了评估方差,我们要查看验证集性能。如果方差高,最好的解决办法就是采用更多的数据,但有时候无法获取更多数据,我们也可以通过正则化来减少过拟合 总之就是不断尝试直到找到一个低偏差低方差的框架。

注:内容来源于吴恩达deeplearning.ai,为什么想写一篇这么基础的呢?不要问我,踩过的坑只有自己清楚

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.12.19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据集划分
  • 偏差 / 方差
  • 一些解决方案
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档