搭建机器学习系统的挑战之一就是可以尝试和改变的东西太多太多了,如有那么多的参数可以调整。达叔注意到那些效率很高的机器学习专家有个特点,他们思路清晰对于调整什么来达到某个效果,他们非常清楚,这个步骤就称之为正交化。(就像一台老式电视的很多按钮一样,通过调整某一个旋钮来达到自己想要的某种效果)

要搭建一个监督学习系统,通常需要调整旋钮来确保四件事情。首先,应该确保系统在训练集上得到的结果不错,所以训练集上的表现必须通过某种评估达到接受的程度(对于某种评估甚至达到人类水平的表现);然后再训练集上表现不错时,就希望系统在验证集有好的表现;然后,也希望在测试集上有好的表现;最后,希望系统在现实的实际使用中表现令人满意。

第一种,如果不能很好的拟合训练集,调试的办法有:

  1. 训练更大的网络;
  2. 或者是切换到更好的优化算法,如Adam优化算法等
  3. 达叔说在本周及下周一讲(等我get到后补上)

第二种,如果发现算法对验证集的拟合效果很差,调试的办法有:

  1. 可以尝试正则化以使系统满足第二个条件;
  2. 可以增大训练集,这也是一种调整方法,可以使学习算法更好的归纳开发集的规律;

补充1:

达叔在可避免偏差(Avoidable bias)这一节中再次提到了前两种情况发生时的解决办法:

如果说模型的training error和bayes error相差相差较大,表明模型的效果不好,解决办法有:先聚焦在减小training error上,如用更大的网络结构,跑久一点梯度下降

如果说模型的training error与bayes error(或者可以近似为人类误差human error)相差很小,但是training error和val error相差很大,表明方差很大,可以考虑减小方差,具体的方法有:正则化、更大的网络结构、更多的训练数据;

可避免偏差:把bayes error和training error之间的差距称为可避免偏差(Avoidable bias);

补充2:

达叔在第12节改善模型表现这一节中,提出了一个提高算法性能的指导方针,首先提出之前先做两个基本假设:①在正常情况下,模型能够在训练集上表现很好,即可避免偏差很小;②训练表现很好的模型,在验证集和测试集上也可以取得很好的效果,即方差很小。

第一,可避免偏差(bayes error和training error之间的差距)。可以尝试的办法有:训练更大的model、训练更久、用更好的优化算法(如:momentum、RMSprop、Adam等)、寻找更好的新的神经网络结构、更好的超参数(包括改变激活激活函数、改变层数、隐藏层单元数、)

第二,方差(training error和val error之间的差距)。可以尝试的方法有:收集更多的数据(可以更好地推广到系统看不到的验证集数据)、正则化(如l2、Dropout、data augmentation)、超参数搜索等。


第三种,如果在测试集上的效果不好,调试的方法有:

  1. 需要更大的验证集,因为在验证集上效果不错,但是在测试集上不好,可能是对验证集过拟合了,所以需要退回一步用更大的验证集

第四种,如果在测试集上做的很好,但是在现实使用中效果却一般,解决的办法有:

  1. 返回去改变验证集或者cost function,因为如果根据某个成本函数,系统在测试集上做的很好,但无法反映算法在现实中的表现,意味着验证集分布设置不正确或者是成本函数测量的指标不对。

具体的细节,达叔会在后面的几节课里面进行详细的介绍。

补充:达叔提到,他一般不会使用earlystopping,以为这会同时改变在训练集和验证集上的效果,也就是earlystopping没有那么好的正交化效果。

达叔的正交化(第三课3.2)相关推荐

  1. 0.0 目录-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

    文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...

  2. 第三课总结吴恩达 ChatGPT Prompt 免费视频

    前两课在这里: 总结吴恩达 ChatGPT Prompt 免费课程 第二弹进阶吴恩达 ChatGPT Prompt 技巧 今天第三课,两个技巧 第一个,Prompt 迭代开发 熟悉我号<有关SQ ...

  3. 达叔系列——神经网络编程基础

    以下内容为听了达叔课程的笔记与疑惑之处,暂且都记下.如有不妥之处,尽情指出. (1)二分类问题 目标:习得一个分类器,它以图片的特征向量作为输入,然后预测出结果 y 为 1 还是 0 .比如,我们需要 ...

  4. python 神经网络编程 视频_python基础教程之达叔系列——神经网络编程基础|python基础教程|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ (1)二分类问题 目标:习得一个分类器,它以图片的特征向量作为输入,然后预测出结果 y 为 1 还是 0 ...

  5. 第三课 大数据技术之Fink1.13的实战学习-时间和窗口

    第三课 大数据技术之Fink1.13的实战学习-时间和窗口 文章目录 第三课 大数据技术之Fink1.13的实战学习-时间和窗口 第一节 时间定义 1.1 Flink中的时间语义 1.2 两种时间语义 ...

  6. 商务汇报PPT制作的七堂课-第三课:结构搭建

    结构是我们PPT中最核心的部分,我们说ppt的缩写是PowerPoint,那意思是什么?是让观点更有力量,观点更有力量的前提是首先让别人能听得懂,那结构就是解决让别人听得懂的问题. 搭建好结构,你结合 ...

  7. 第三课 电子计算机的发展与应用 说课稿,计算机的发展与应用说课稿.doc

    计算机的发展与应用说课稿.doc (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计算机的发展与应用尊敬的老师们,大家好!我的说课题目 ...

  8. 第三课:钱难赚,保险别乱买

    第三课:钱难赚,保险别乱买 理财就是理生活.欢迎来到长投学堂小白理财训练营. 今天,我们先来说一部曾经大火的电影,名字叫<我不是药神>. 里面一个情节,一位老太太对着警察曹斌说: &quo ...

  9. 第三课.运算符与表达式

    第三课目录 运算符与表达式 算术运算符 关系运算符 逻辑运算符 德摩根律 使用断言assert 位运算符 补码 补码与位运算 赋值运算符 杂项运算符 运算符与表达式 数学是科技发展的基础,数学公式的意 ...

  10. 第三课.Linux代码编辑器

    第三课目录 vi/vim vi/vim简介 vi的模式 vi在命令模式下的操作 vi在底线命令模式下的操作 Visual Studio Code Git git简介 关于git的故事 git的使用 v ...

最新文章

  1. CC2431 代码分析③-忍辱负重的CC2430
  2. cut、grep和排序命令
  3. kaggle api下载自定义数据到colab上面
  4. 普通用户杜绝不请自来的邮件对策
  5. 如何在asp.net中实现listbox item值上下移动?(转)
  6. Netty 的核心组件
  7. lua里面的客户端服务器协议,Lua 服务器与客户端实例(转)
  8. 《代码大全》程序员们怎样花费自己的时间
  9. 手机访问www如何自动跳转到m js代码实现
  10. OpenCV-计算自然对数cv::log
  11. LNMP(linux+nginx+mysql+php)服务器环境配置
  12. 阶段3 2.Spring_07.银行转账案例_4 编写事务管理工具类并分析连接和线程解绑
  13. oracle exadata维保,EXADATA数据一体机巡检说明
  14. autocad.net 画多段线_VB.net 在AutoCAD中绘制矩形云线
  15. Python之温度转换
  16. 人民币对美元汇率中间价报6.7802元 上调167个基点
  17. Macbookpro开机只能进入恢复模式后的解决方案(过程太戏剧性了有时间可以看完)
  18. 基于python的掺杂介质六面体nastran网格生成脚本
  19. python 携程_请教两个关于使用 python 爬去哪儿,携程等机票网站的问题
  20. 我以为猫咪牙齿断了一点不要紧,结果…

热门文章

  1. 计算机图形学笔记(六)
  2. 《我是一只IT小小鸟》(胡江堂主编)读后感
  3. c# chart 各个属性_c# Chart设置样式
  4. 可汗学院公开课——统计学学习:12-34
  5. 高等数学 - 对弧长的积分
  6. 批量图片下载器(整站下载)
  7. BZOJ2794 [Poi2012]Cloakroom [离线][DP]
  8. Design Patterns of SourceMaking
  9. 360无线wifi电脑怎样连接到服务器,360随身Wifi能连接上但是电脑无法上网怎么办...
  10. 拍牌(沪牌)软件编写ideal(C#)------序