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

允中 | 编译自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)

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

修正训练/测试集高失配

吴恩达推荐的方式:

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

尝试数据合成和数据扩充

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

修正验证集过拟合

吴恩达推荐

获取更多验证数据

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

吴恩达完整演讲视频

视频内容

原文发布于微信公众号 - 量子位(QbitAI)

原文发表时间:2017-03-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI科技评论

干货 | 让算法解放算法工程师——NAS 综述

AutoML(automated machine learning)是模型选择、特征抽取和超参数调优的一系列自动化方法,可以实现自动训练有价值的模型。AutoM...

2951
来自专栏新智元

【榜单】GitHub 最受欢迎深度学习应用项目 Top 16(持续更新)

【新智元导读】新智元不久前盘点了2016年 Top50 的深度学习库,本文则根据 GitHub里星标(Star)数多少,整理了排名前16的深度学习应用项目,从风...

5209
来自专栏机器之心

入门 | 极致的优化:智能手机是如何处理大型神经网络的

1706
来自专栏机器之心

资源 | 下一代PS工具:Adobe照片级图像风格转换的Torch实现

选自arxiv 作者:栾福军等 机器之心编译 参与:李泽南、微胖 康奈尔大学与 Adobe 的研究者们最近发布了一项通过卷积神经网络进行照片风格迁移的研究。随后...

36711
来自专栏人工智能

从卷积神经网络的角度看世界

原文地址:https://blog.keras.io/how-convolutional-neural-networks-see-the-world.html

4146
来自专栏机器学习算法与Python学习

机器学习(6)之朴素贝叶斯NB及实例

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 贝叶斯定理是以英国数学家贝叶斯命名...

4807
来自专栏AI研习社

Uber 开源「神经演化」可视化工具 VINE

AI 研习社前段时间曾对 Uber 数日连发的 5 篇关于神经演化的文章进行了深度的解读。这些文章介绍了他们在遗传算法(genetic algorithm)、突...

1363
来自专栏AI科技评论

开发丨图像处理一定要用卷积神经网络?这里有一个另辟蹊径的方法

近年来,卷积神经网络(CNN)以其局部权值共享的特殊结构在语音识别和图像处理等方面得到了快速发展,特别是大型图像处理方面,更是表现出色,逐渐成为了行业内一个重要...

3119
来自专栏机器之心

ICLR 2018 | 斯坦福大学教授Christopher Manning提出全可微神经网络架构MAC:可用于机器推理

选自arXiv 作者:Drew A. Hudson、Christopher D. Manning 机器之心编译 参与:刘天赐、黄小天 现今,神经网络已在图像识别...

3168
来自专栏机器之心

学界 | DeepMind新论文提出循环环境模拟器:可适应多种不同环境

选自arXiv.org 机器之心编译 参与:吴攀、黄小天、蒋思源 围棋、视频游戏、迷宫……DeepMind 的人工智能在玩游戏方面可谓是得心应手。DeepMi...

3485

扫码关注云+社区

领取腾讯云代金券