首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

吴恩达深度学习演讲精华笔记

吴恩达曾做了一次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. 你得到的偏差高吗?如果高,先解决这个问题

举个高偏差的例子:

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

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

举个高方差的例子:

修正了高方差就完工了。

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

1. 分割数据

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

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

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

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

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

一个高偏差的例子:

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

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

一个高方差的例子:

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

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

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

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

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

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

修正了高方差就完工了。

关于上文提到的各项修正

吴恩达推荐下面这些修正方式:

修正高偏差:

尝试用更大的模型

延长训练时间

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

修正高方差:

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

试试加上正则化

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

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

修正训练/测试集高失配:

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

尝试数据合成和数据扩充

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

修正验证集过拟合:

获取更多验证数据

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

吴恩达完整演讲视频

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180105B11Q2T00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券