第一周:和平之城中的鸟类识别 案例研究

  • 1.1 为什么是ML策略?
  • 1.2 正交化(Orthogonalization)
  • 1.3 单一数字评估指标
  • 1.4 满足和优化指标
  • 1.5 训练 / 开发 / 测试集划分
    • 设立Dev/Test的方法
  • 1.6 开发集和测试集的大小
  • 1.7 ⚠️ 什么时候改变开发/测试集和指标
    • 步骤:
  • 1.8 为什么是人的表现
  • 1.9 可避免偏差
  • 1.10 理解人的表现
  • 1.11 超过人的表现
  • 1.12 改善模型表现
    • 改进方向
  • 第一周测试总结:

本文是结构化机器学习的笔记。

1.1 为什么是ML策略?

  • 快速判断那些方向比较适合继续研究,以免浪费时间。

1.2 正交化(Orthogonalization)

  • 正交化的含义:各个分量互不影响。所以可以分开来考虑。

我们需要达到4个目标

  1. 训练集上好
  2. Dev集上好
  3. Test集上好
  4. 现实情况下好

因此我们的目的是为这4种情况,设计4个独立的按钮,从而可以在降低训练集准确率的前提下,提升Dev集的准确率。

1.3 单一数字评估指标

  • 问题:如果一个分类器在Precision里面比较好,另一个在Recall里面比较好,该怎么选?

  • Sol:

    • F1 Score: F 1 S c o r e = 2 1 P r e c i s i o n + 1 R e c a l l F1\text{ }Score=\frac{2}{\frac{1}{Precision}+\frac{1}{Recall}} F1 Score=Precision1​+Recall1​2​
  • 例子2:

    • 不同地区的错误率不同
  • Sol: 计算平均错误率

1.4 满足和优化指标

  • 问题:准确率+时间的指标

  • 优化指标"Accuracy"(需要最值的指标),满足指标"Running Time"(不等式的指标)

  • Sol:
    m a x ( A c c u r a c y ) and  r u n n i n g T i m e ≤ 100 m s max(Accuracy) \text{ and } runningTime\leq100ms max(Accuracy) and runningTime≤100ms

  • 问题:“准确率”+“False Positive”

  • Sol:
    m a x ( A c c u r a c y ) and  F a l s e P o s i t i v e ≤ 1 次 / 天 max(Accuracy) \text{ and } False Positive\leq1次/天 max(Accuracy) and FalsePositive≤1次/天

1.5 训练 / 开发 / 测试集划分

如何设立Dev Set和Test Set?

  • Dev Set: hold out cross validation set

  • 例子:
    假设哦我们有以下地区的数据:

    • US
    • UK
    • India
    • China

    一种划分开发/测试数据的方法是US/UK作为开发数据,另外的两个国家作为测试集。

  • 这是一个糟糕的想法,因为我们可能根据Dev Set的数据设计了一效果很好的模型,但是因为开发集和测试集并没有同样的分布,所有会有问题。

  • 这就好比是一个人训练射中50m的靶,然后真正使用的时候是100m的靶。

设立Dev/Test的方法

关键⚠️ :确保开发集和训练集来自同一个分布。(在上面例子中,各个数据集里都需要有这4个地区的数据)
所以我们可以将所有数据随机洗牌,放入开发集和测试集。

1.6 开发集和测试集的大小

可以只有Train+Dev集,而没有Test集合。

1.7 ⚠️ 什么时候改变开发/测试集和指标

当没有达到预期目的的常见解决思路:

  1. 及时改变Metric以适应目的
  2. 改变Dev/Test数据集,以确保两者为相同的分布。
  • 如果发现选出来的算法存在缺陷,则需要及时改变Metric的定义。
  • 例子:
算法 错误率 其他
A 3% 会有一定几率传递不良图片
B 5%

此时,为了避免传递不良信息这个巨大的错误,我们需要及时修改metric。
E r r o r = 1 ∑ i w ( i ) ∑ i = 1 m d e v w ( i ) I ( y p r e d ( i ) ≠ y ( i ) ) Error=\frac{1}{\sum_iw^{(i)}}\sum_{i=1}^{m_{dev}}w^{(i)} I(y_{pred}^{(i)} \neq y^{(i)}) Error=∑i​w(i)1​i=1∑mdev​​w(i)I(ypred(i)​​=y(i))

其中

  • m d e v m_{dev} mdev​表示dev集的样本数量
  • w ( i ) = { 1 如果x不是不良信息 100 如果x是不良信息 w^{(i)}=\left\{\begin{matrix} 1 \text{ 如果x不是不良信息}\\ 100 \text{ 如果x是不良信息} \end{matrix}\right. w(i)={1 如果x不是不良信息100 如果x是不良信息​相当于一个乘法项目
  • I ( y p r e d ( i ) ≠ y ( i ) ) = 1 I(y_{pred}^{(i)} \neq y^{(i)})=1 I(ypred(i)​​=y(i))=1 如果 y p r e d y_{pred} ypred​预测错误

步骤:

  1. 确定Metric(放靶)
  2. 达到目标(放箭),可以通过微调Cost Function的定义。我们总是可以适时地观察我们已经训练的模型,从而根据我们的需要修改模型,从而达到我们的预期目的。

1.8 为什么是人的表现

  • 贝叶斯最优误差(Bayes Optimal Error):准确率的上限。( x → y x\to y x→y映射的最优上限)
  • 我们观察到当准确率超过人类时,准确率上升速率就变慢了
  • 可能的解释:
    • 人的表现已经贝叶斯最优误差很接近了。
    • 只要Algs比人类能力强,一些方法就不再有效了。
  • 当Algs不比人类强,有一些可能有效的方法:
    • 获得更多有标签的数据
    • 人工对算法误差进行分析
    • 对Bias和Variance方差进行分析

1.9 可避免偏差

  • 人类水平的误差估计来代替贝叶斯最优误差,这在计算机视觉里面比较常见。
  • Avoidable Bias= Human-level error
  • Variance= Training error
  • 例子:

1.10 理解人的表现

  • Recap:

人类水平的误差估计来代替贝叶斯最优误差

  • 问题:怎么定义人类水平?

  • 例子:医疗影响分析

  • Hyp:

我们看的是最高水平,因为人类(或者任何系统)都只能趋近于(小于等于)贝叶斯最优误差。如果能超过人类水平,则可以部署我们训练的模型了。

当算法水平很高的时候,我们不太确定是否要继续改善模型(减小Bias)还是减小方差。因为我们不知道怎么估计贝叶斯最优误差

1.11 超过人的表现

例如:

  • 人的表现 0.5%
  • Train Error 0.3%
    这时候我们不知道贝叶斯最优误差是否小于0.3%,因为有过拟合的风险。

目前算法比人类强的地方:
这些都是从Structed Data中得到的结果,并不是自然感知任务(如计算机视觉)。

  • 开车路线的时间
  • 贷款
  • 广告投放

1.12 改善模型表现

  1. 对Train Set拟合很好 -> Bias
  2. 在dev/test Set上也很好 -> Variance

改进方向

  • Avoidable Bias改善方法:
  1. 训练一个更大的模型
  2. 多训练一会
  3. 改善网络结构
  • Variance改善方法:
  1. 输入更多的数据
  2. 正则化(L2,Dropout)
  3. 改善网络结构

第一周测试总结:

  1. 我们需要确定一个评估指标,否则会降低工作效率。我们可以通过优化指标满足指标将多个指标缩小为一个指标。例如 m a x ( 准 确 率 ) and  内 存 ≤ 10 M b max(准确率) \text{ and } 内存\leq10Mb max(准确率) and 内存≤10Mb
    这里准确率就是优化指标,内存就是满足指标
  2. 深度学习领域一般数据集的划分为
训练集 开发集 测试集
95% 2.5% 2.5%
  1. 应该用人类最高水平来估计贝叶斯最优误差。但这里有一个前提,即统计的人数足够多,这样的百分数才比较准确。
  2. 学习算法的性能可以优于人类表现,但它永远不会优于贝叶斯错误的基准线。

第一周:和平之城中的鸟类识别(案例研究)相关推荐

  1. 【深度学习】吴恩达深度学习-Course3结构化机器学习项目-第一周机器学习(ML)策略(1)作业

    题目仅含中文!! 视频链接:[中英字幕]吴恩达深度学习课程第三课 - 结构化机器学习项目 参考链接: [中英][吴恩达课后测验]Course 3 - 结构化机器学习项目 - 第一周测验 吴恩达< ...

  2. 身份证识别Proj_第一周总结

    目录标题 身份证识别Proj_第一周总结 项目目标: 流程 1.图片预处理 2.证件区域识别 3.字符切分 4.字符识别 可用方法汇总 相关技术 相关资料 其他难点事项 项目流程 身份证识别Proj_ ...

  3. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  4. 深度学习笔记第三门课 结构化机器学习项目 第一周 机器学习(ML)策略(1)...

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  5. 深度学习笔记第二门课 改善深层神经网络 第一周:深度学习的实践层面

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  6. 深度学习笔记第一门课第一周:深度学习引言

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  7. 第一周:深度学习引言(Introduction to Deep Learning)

    1.1 欢迎(Welcome) 深度学习改变了传统互联网业务,例如如网络搜索和广告.但是深度学习同时也使得许多新产品和企业以很多方式帮助人们,从获得更好的健康关注. 深度学习做的非常好的一个方面就是读 ...

  8. 20155303 2016-2017-2 《Java程序设计》第一周学习总结

    20155303 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 浏览教材,根据自己的理解每章提出一个问题 Chapter1 Java平台概论:MyProgr ...

  9. Java学习第一周总结

    201711671227<Java程序设计>第一周学习总结 教材学习内容总结 主要学习了如何下载及安装Java,如何调试环境变量,系统变量等,其次更为重要的是掌握了使用Java来编译运行程 ...

最新文章

  1. 零基础入门学习Python(33)-图形用户界面编程(GUI编程)EasyGui
  2. NA-NP-IE系列实验30:CHAP 认证
  3. 原来... C++ explicit的作用
  4. 散点图 横纵坐标_厉害了,Matplotlib还能这样画散点图!
  5. JQuery AJAX提交中文乱码的解决方案
  6. Kotlin 1.2 新特性
  7. 获取第三方应用的签名
  8. Sqlserver学习研究
  9. Doris之备份与恢复(全面)
  10. Kubernetes 权限管理
  11. 分享一个超酷创建互动文档的Javascript类库 - tangle
  12. 【永恒之蓝】最新勒索软件WannaCrypt病毒感染前后应对措施
  13. Mysql - 聚簇索引和辅助索引
  14. 锆石科技开发板的简单介绍
  15. 浅谈路由CSRF危害,和非主流姿势
  16. java小马哥百度网盘_思否编程(小马哥):Java 微服务实践 - Spring Boot / Spring Cloud全套,完整版下载 - VIPC6资源网...
  17. 虚拟机启动后一直黑屏的解决办法
  18. POI 导入、导出Excel
  19. 用c语言简单办法做一个字典_如何用c语言做一个简单的英语词典
  20. jsp网上商店网上书店

热门文章

  1. 计算机语言中str是什么意思,python中str函数的作用是什么
  2. ZYNQ入门,EBAZ4205开发平台从头开始搭建
  3. python求数组平均值numpy_计算numpy数组的平均值
  4. C# 静态函数调用窗体控件
  5. 利用js实现手机访问PC端直接跳转wap端
  6. 计算机机械硬盘系统安装,电脑硬盘安装图解,机械硬盘安装-
  7. clion 产生sigabrt_OpenNERO Ubuntu:进程结束,退出代码134(被信号6:SIGABRT中断)
  8. 阿里云国际站:阿里云服务器遇到了CC攻击怎么处理防护措施?
  9. R以及RStudio的获取和使用
  10. word粘贴超出页面怎么办