前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >听讲座的正确姿势:吴恩达1小时深度学习演讲精华笔记分享

听讲座的正确姿势:吴恩达1小时深度学习演讲精华笔记分享

作者头像
量子位
发布2018-03-21 16:15:14
6310
发布2018-03-21 16:15:14
举报
文章被收录于专栏:量子位
允中 | 编译自Github 量子位·QbitAI 出品

吴恩达曾做了一次1小时19分钟的演讲:Nuts and Bolts of Applying Deep Learning,谈论深度学习应用的细节。这次演讲流传甚广,演讲中提到的工作流程在Reddit、Twitter上也经常被推荐。

最近,Github用户thomasj02看演讲视频写了一份笔记,总结出了1000字左右的“深度学习项目工作流程”。

吴恩达的演讲是在去年9月,他和Pieter Abbeel、Samy Bengio等人一起在湾区联合举办了两天的“深度学习学院”,请了12位湾区各校科研人员来给工程师们讲课。

量子位将这份笔记: 深度学习项目工作流程 编译如下

在这份文档中,我试着总结吴恩达在2016年深度学习夏季学院,“深度学习应用细节”演讲中提出的,备受推荐的机器学习工作流程。如有错误或曲解,是我的问题,(不是吴恩达的)。

开始:先考虑两个问题

1. 衡量一下,在你要完成的任务上,人类水平怎样?

2. 你的训练数据和测试数据是否服从相同的概率分布?

衡量人类水平

衡量人类水平的真正目标,是为了估算贝叶斯错误率。知道贝叶斯错误率,有助于算出你的模型对于训练数据是欠拟合还是过拟合。

更清楚地说,它有助于我们衡量吴恩达所定义的“Bias(偏差)”,稍后在工作流程中会用到。

:在统计分类中,贝叶斯错误率是指一类已知分类器的最低可能错误率。

如果训练、测试数据服从同分布

1. 打乱数据,分割成训练/验证/测试集

吴恩达推荐按70%/15%/15%的比例来分割训练/验证(Dev)/测试集。

2. 测量训练集错误和Dev集错误,计算偏差和方差

偏差和方差的计算方法如下:

偏差=训练集错误 - 人类错误

方差=验证集错误 - 训练集错误

3. 你得到的偏差高吗?如果高,先解决这个问题

举个高偏差的例子:

错误类型

错误率

人类错误

1%

训练集错误

5%

验证集错误

6%

这就需要在进行下一步之前,先修正高偏差。

4. 方差高吗?如果高,也需要先修正

举个高方差的例子:

错误类型

错误率

人类错误

1%

训练集错误

2%

验证集错误

6%

修正了高方差就完工了。

如果训练集和测试机不服从同分布

1. 分割数据

如果你的训练数据和测试数据不服从相同概率分布,那么要确保你的验证数据和测试数据集服从同分布。

具体操作上,可以将测试集一半数据用于验证,另一半留着测试;然后从训练集中分出一小部分,用作训练验证集。

2. 测量错误,计算关键指标

计算这些指标能帮你了解在那些方面努力:

错误类型

公式

偏差

训练集错误 - 人类错误

方差

训练验证集错误 - 训练集错误

训练/测试集失配

验证集错误 - 训练验证集错误

验证集过拟合

测试集错误 - 验证集错误

3. 你得到的偏差高吗?如果高,先修正偏差

一个高偏差的例子:

错误类型

错误率

人类错误

1%

训练集错误

10%

训练验证集错误

10.1%

验证集错误

10.2%

这就需要在进行下一步之前,修正高偏差。

4. 你得到的方差高吗?如果高,先修正高方差

一个高方差的例子:

错误类型

错误率

人类错误

1%

训练集错误

2%

训练验证集错误

10.1%

验证集错误

10.2%

在进行下一步之前,先修正高方差。

5. 训练/测试集失配率高吗?如果高,还是要修正

一个训练/测试集高失配率的例子:

错误类型

错误率

人类错误

1%

训练集错误

2%

训练验证集错误

2.1%

验证集错误

10%

在进行下一步之前,先修正失配率。

6. 验证集有没有过拟合?对过拟合进行修正

一个训练/测试集高失配率的例子:

错误类型

错误率

人类错误

1%

训练集错误

2%

训练验证集错误

2.1%

验证集错误

2.2%

测试集错误

10%

修正了高方差就完工了。

关于上文提到的各项修正

修正高偏差

吴恩达推荐下面这些修正高偏差模型的方式:

尝试用更大的模型

延长训练时间

尝试用新的模型架构(这个比较难)

修正高方差

依然是吴恩达推荐的修正方式:

获取更多数据(包括数据合成和数据扩充)

试试加上正则化

尝试提早停止训练(early stopping)

尝试用新的模型架构(这个比较难)

修正训练/测试集高失配

吴恩达推荐的方式:

获取更多和测试集相似的数据

尝试数据合成和数据扩充

尝试用新的模型架构(这个比较难)

修正验证集过拟合

吴恩达推荐

获取更多验证数据

笔记的作者推测,这应该也包括数据合成和数据扩充。

吴恩达完整演讲视频

视频内容
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 量子位将这份笔记: 深度学习项目工作流程 编译如下
  • 开始:先考虑两个问题
  • 衡量人类水平
  • 如果训练、测试数据服从同分布
    • 1. 打乱数据,分割成训练/验证/测试集
      • 2. 测量训练集错误和Dev集错误,计算偏差和方差
        • 3. 你得到的偏差高吗?如果高,先解决这个问题
          • 4. 方差高吗?如果高,也需要先修正
          • 如果训练集和测试机不服从同分布
            • 1. 分割数据
              • 2. 测量错误,计算关键指标
                • 3. 你得到的偏差高吗?如果高,先修正偏差
                  • 4. 你得到的方差高吗?如果高,先修正高方差
                    • 5. 训练/测试集失配率高吗?如果高,还是要修正
                      • 6. 验证集有没有过拟合?对过拟合进行修正
                      • 关于上文提到的各项修正
                        • 修正高偏差
                          • 修正高方差
                            • 修正训练/测试集高失配
                              • 修正验证集过拟合
                                • 吴恩达完整演讲视频
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档