著论准过秦,作赋拟子虚。这篇文章主要讲述吴恩达深度学习专项课程3学习笔记/week1/Setting up ML Application相关的知识,希望能为你提供帮助。
应用ML是一个高度迭代的过程
Idea->
Code->
Experment->
...
【吴恩达深度学习专项课程3学习笔记/week1/Setting up ML Application】去不断地调整超参数。
Train/Dev/Test sets
通常将数据集划分为Train/Dev/Test集。
- Training set: 用于模型的训练
- Hold-out cross validation set/Developmet set: 用于测试,调整模型超参数
- Test set: 用于最终评估
现在的大数据时代:数据规模在百w级,趋势是Dev/Test集的比例减小,因为Dev集只需要大到足够判断不同的模型的优劣就可以了,Test集类似。如有100w的数据集,98/1/1的比例是一种较合理的划分。
经验:
- 确保Dev/Test集来自同一个分布,这样有助于算法进步的效率。
- 训练集则可以采取网页爬取等方式以获得更大量的数据。
- 没有测试集也是可以的,只用Dev集来调整。
可以通过Train set error和Dev set error来判断模型是否存在high bias/variance的问题。
比如,假设假设bayes error约为0%,即人类可以几乎完全准确识别,并且Train和Dev集来自同一个分布。
Train set error | Dev set error | 结果 |
---|---|---|
1% | 11% | high variance |
15% | 16 | high bias |
15% | 30% | high variance & high bias |
0.5% | 1% | low variance & low bias |
STEP1 High bias? --> 更大的网络;训练更长时间;(其他NN架构)
STEP2 High variance? --> 更多的数据;正则化;(其他NN架构)
在深度学习时代,不需要再过多考虑bias 和 variance的权衡,如果合理的正则化,采用更大的网络在降低bias的同时几乎不会增加variance,如果有足够大的网络,获得更多的数据在降低variance时几乎不会增加Bias,这也是深度学习在监督学习领域十分有效地原因之一。
推荐阅读
- spring注入时报错(:No qualifying bean of type 'xxx.xxMapper')
- 智能手机技术飞速发展手机APP制作平台异军突起
- 如何确定企业APP指定方向?
- Android开发RecycleView的使用全解
- Android i2c-tools移植
- Log4j和SLF4J的区别
- Log4j Maven配置
- Log4j日志Appenders解释
- Log4j-PatternLayout日志