吴恩达深度学习专项课程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

  • 如果size=1:随机梯度下降,过程会曲折反复,不收敛,在最优值附近徘徊(紫色线)。一个很大的缺点在于每次只处理一个样本,失去了向量化的提升效率的作用。
  • 如果size=m:批梯度下降,过程比较直接但是每步都很耗时。(蓝色线)
  • size适中,则可以既利用到向量化的作用,又每一步下降不需要耗时过长,因此效率较高。(绿色线)

size选择大致原则:

  • 如果训练集很小(如m <= 2000):Batch gradient descend
  • 如果训练集相对大,那么典型的mini-batch的大小如:64,128,256,512。考虑到计算机的内存,所以常用的mini-batch都是2的次方。
  • 确保mini-batch和计算机CPU/GPU的内存相适应。

mini-batch size是需要调整的超参数之一,尝试不同的值,然后选择一个最好的。

(未完待续)

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

时间: 2024-08-26 08:16:35

吴恩达深度学习专项课程2学习笔记/week2/Optimization Algorithms的相关文章

吴恩达深度学习: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代价函数 如果用之前回归时用的平方损失函数,代价函数将是非凸函数,会收

吴恩达深度学习专项课程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比例划

吴恩达深度学习专项课程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自己说了,可能其它的深度学习研究者是不这么认为的. 那么如何选择参数呢?下面介绍两个策略,随机搜索和精细搜索. 早一代的机器学习算法中,如下