吴恩达深度学习专项课程3学习笔记/week1/Setting up ML Application

应用ML是一个高度迭代的过程

Idea->Code->Experment->...

去不断地调整超参数。

Train/Dev/Test sets

通常将数据集划分为Train/Dev/Test集。

  • Training set: 用于模型的训练
  • Hold-out cross validation set/Developmet set: 用于测试,调整模型超参数
  • Test set: 用于最终评估

以前的ML问题:数据规模在w级,通常70/30划分Train/Test集或者60/20/20比例划分。

现在的大数据时代:数据规模在百w级,趋势是Dev/Test集的比例减小,因为Dev集只需要大到足够判断不同的模型的优劣就可以了,Test集类似。如有100w的数据集,98/1/1的比例是一种较合理的划分。

经验:

  1. 确保Dev/Test集来自同一个分布,这样有助于算法进步的效率。
  2. 训练集则可以采取网页爬取等方式以获得更大量的数据。
  3. 没有测试集也是可以的,只用Dev集来调整。

Bias/Variance

可以通过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

Some Basic recipe(基本准则)

STEP1 High bias? --> 更大的网络;训练更长时间;(其他NN架构)

STEP2 High variance? --> 更多的数据;正则化;(其他NN架构)

在深度学习时代,不需要再过多考虑bias 和 variance的权衡,如果合理的正则化,采用更大的网络在降低bias的同时几乎不会增加variance,如果有足够大的网络,获得更多的数据在降低variance时几乎不会增加Bias,这也是深度学习在监督学习领域十分有效地原因之一。

原文地址:https://www.cnblogs.com/surimj/p/8379175.html

时间: 2024-10-09 18:29:42

吴恩达深度学习专项课程3学习笔记/week1/Setting up ML Application的相关文章

吴恩达深度学习:1.2什么是神经网络

写在开头的话,本博客内容全部来自吴恩达深度学习教学课程,插图均来自吴恩达课件,在此说明来处,不喜勿喷! 一.什么是神经网络 1.我们从一个房屋加个预测的例子开始,假设有一个6间房间的数据集,已知房屋的面积单位是平方米或者平方英尺,已知房屋加个,现在想要找到一个函数,根据房屋面积来预测房屋价格的函数.如果有机器学习的只是,可以用线性回归得到这样的一条直线: 但是我们知道,价格永远不可能为一个负值,所以用一个直线的线性回归进行预测不太合适,我们可以在size轴将预测线弯曲一点,让他结束于0,我们所要

机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 http://www.ai-start.com/

机器学习爱好者 -- 翻译吴恩达老师的机器学习课程字幕 http://www.ai-start.com/ https://zhuanlan.zhihu.com/fengdu78 https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes 文档PDF   https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes/blob/master/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%

吴恩达《机器学习》课程总结(5)_logistic回归

Q1分类问题 回归问题的输出可能是很大的数,而在分类问题中,比如二分类,希望输出的值是0或1,如何将回归输出的值转换成分类的输出0,1成为关键.注意logistics回归又称 逻辑回归,但他是分类问题,而不是回归问题. Q2假说表示 其中: sigmoid函数 hθ(x)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1的可能性即hθ(x)=P(y=1|x;θ). Q3判定边界 g(z)中的z即为判定边界,如下 Q4代价函数 如果用之前回归时用的平方损失函数,代价函数将是非凸函数,会收

吴恩达深度学习专项课程2学习笔记/week2/Optimization Algorithms

Optimization algorithms 优化算法以加速训练. Mini-batch gradient descend Batch gradient descend:每一小步梯度下降否需要计算所有的训练样本.很耗时. Mini-batch gradient descend:将训练集分为很多小的mini-batch,每一个epoch用到一个mini-batch的训练样本,进行一次梯度下降(向前传播,计算cost,向后传播).训练速度会提升很多. 选择mini-batch的size 如果siz

吴恩达深度学习专项课程3学习笔记/week2/Error analysis

Error analysis Carrying out error analysis Error analysis是手动分析算法错误的过程. 通过一个例子来说明error analysis的过程.假设你在做猫图像识别的算法,它的错误率高达10%,你希望提高它的表现. 你已经有了一些改进的想法,包括: 算法把狗的图片错误识别为猫,需要修正: 算法把其他一些猫科动物(比如狮子,豹,...)错误识别为猫,需要修正: 算法对于比较模糊的图片容易识别错误,需要改进: 算法对于加了滤镜的图片容易识别错误,需

吴恩达深度学习课程第一课 — 神经网络与深度学习 — 第一周练习

课程一 - 神经网络和深度学习 第一周 - 深度学习简介 第 1 题 “人工智能是新电力”这个比喻指的是什么? A.人工智能为我们的家庭和办公室的个人设备供电,类似于电力. B.通过“智能电网”,人工智能正在传递新一波的电力. C.人工智能在计算机上运行,因此由电力驱动,但它让计算机做以前不可能做的事情. D.与100年前开始的电力类似,人工智能正在改变多个行业. 第 2 题 以下哪些是最近深度学习开始崛起的原因?(选2个答案) A.我们拥有了更多的计算能力 B.神经网络是一个崭新的领域. C.

吴恩达-深度学习-课程笔记-6: 深度学习的实用层面( Week 1 )

1 训练/验证/测试集( Train/Dev/test sets ) 构建神经网络的时候有些参数需要选择,比如层数,单元数,学习率,激活函数.这些参数可以通过在验证集上的表现好坏来进行选择. 前几年机器学习普遍的做法: 把数据分成60%训练集,20%验证集,20%测试集.如果有指明的测试集,那就用把数据分成70%训练集,30%验证集. 现在数据量大了,那么验证集和数据集的比例会变小.比如我们有100w的数据,取1w条数据来评估就可以了,取1w做验证集,1w做测试集,剩下的用来训练,即98%的训练

吴恩达-深度学习-课程笔记-7: 优化算法( Week 2 )

1 Mini-batch梯度下降 在做梯度下降的时候,不选取训练集的所有样本计算损失函数,而是切分成很多个相等的部分,每个部分称为一个mini-batch,我们对一个mini-batch的数据计算代价,做完梯度下降,再对下一个mini-batch做梯度下降.比如500w个数据,一个mini-batch设为1000的话,我们就做5000次梯度下降(5000个mini-batch,每个mini-batch样本数为1000,总共500w个样本). 对于batch梯度下降(每次计算所有的样本),随着迭代

吴恩达-深度学习-课程笔记-8: 超参数调试、Batch正则化和softmax( Week 3 )

1 调试处理( tuning process ) 如下图所示,ng认为学习速率α是需要调试的最重要的超参数. 其次重要的是momentum算法的β参数(一般设为0.9),隐藏单元数和mini-batch的大小. 第三重要的是神经网络的层数和学习率衰减 adam算法的三个参数一般不调整,设定为0.9, 0.999, 10^-8. 注意这些直觉是ng的经验,ng自己说了,可能其它的深度学习研究者是不这么认为的. 那么如何选择参数呢?下面介绍两个策略,随机搜索和精细搜索. 早一代的机器学习算法中,如下