吴恩达深度学习笔记.第四课第二周

这一周将学习更多的方法来将神经网络提速

批量梯度下降

当你的数据集太大的时候,假设有500万,每一次梯度下降都要经历这500万的数据,就会使得速度变得很慢,批量梯度下降,就是在遍历这所有的数据之前,先进行一部分的梯度下降

比如每1000份分为一份,用一个for循环来选择第几组,先对第一组梯度下降,用这个结果对第二组处理,再梯度下降,以此类推。用这样的方法可以减少梯度下降的时间

这个每多少份叫做mini_batch,太小了如同左图,就和普通的梯度下降没什么区别了,时间就会很慢,太大他的噪声也就是右图中的波动一样的东西会变得太大,选择一个适中的mini_batch值会更好。

如右图所示,虽然有时候成本值会突然上升,但总体是呈下降趋势。

注:mini_batch的值尽量以2的次幂的大小分割,比如1024,512等这是根据电脑储存内存的方式,这样会运行的更快一点,并且要保证你的数据可以储存在CPU和GPU里面,不然不论做的怎样最后结果都不会好。

指数加权平均

这是指数加权平均的公式

令β=0.9你将得到以下红色曲线,为0.8将得到绿色曲线

怎么理解这个公式呢,前面的β可以理解为权重,当天的预测值中上一个值占比多少,当这个占比越趋近于1,这个预测值收到当天数值变化的影响的程度就越小,就越难有波动,如图绿线所示。越远离1,就越容易受到影响。这就是加权的含义

如图,这就是计算过程,每一项往后,0.9的指数都加1,直到这个数足够小,可以忽略不计

如图就是v100的图像,v100的值相当于对这个图求积分这就是指数的含义。

而什么时候β的多少次方才会使得这个数值变得足够小呢,(0.98)的50次方大约等于1/e,也就是说50天的数值比1/e大,所以可以看为平均了50天的数据。这就是平均的含义

平均了1/(1-β)天的数据

修正偏差

当你用指数加权平均的时候,得到的图像有时和预想的图像不一致,就需要修正这个偏差,偏差出现的原因是当你使用这个方法时往往要把第一天前一天的数值设置为0,导致第一天的预测值不对导致后边变得也不正常,随着时间的延长,这种偏差会逐渐消失,所以要做的就是消除前面的偏差。如图中的绿色和紫色,紫色是实际,绿色是理想

如图就是解决办法,当t值很小的时候,β^t的值比较大,可以将vt的值放大,当t的值很大的时候β^t的值趋近于0,也就对后面的值没影响了。

为什么使用指数加权平均而不使用普通的平均数

指数加权平均所占用内存小,代码只需要一两行,普通的平均数计算完要存储占用更对内存,花费也更多。

动量梯度下降

梯度下降效果有时候是这样上下波动,会降低梯度下降的效率,减小波动,提升效率,可以用动量梯度下降,动量梯度下降,就是对每个dw,db值做指数加权平均,如图

红线就是对dwdb做指数加权平均后的图像

RMsprop均方根传递

假设纵坐标是b横坐标是w,如果你希望b的下降慢一些,w的下降不变或者增大,就要使用这种方法

实际上,dw的值要比db的值小得多,因此Sdb的值就比较大,位置在分母上,就使得总体小,梯度下降的幅度就小,同时,为了确保分母不为0或者说不让w梯度下降的太快,会在w的梯度下降的分母位置加上一个很小的数10的-8次方是个常用的数字。

adam

有一个常用的方法,对大多数问题都实用,就是将动量梯度下降和RMsporop结合

学习率衰减

当你进行梯度下降的时候,由于学习率是固定的,导致他不会真正收敛于最小点,如果把学习率设置成随着时间变化变小的数,就可以使得到最后收敛于最小值,到最小值附近之后也不会乱跑。

实现学习率的方法有很多

1/1+𝑑𝑒𝑐𝑎𝑦𝑟𝑎𝑡𝑒∗epoch_num中𝑑𝑒𝑐𝑎𝑦𝑟𝑎𝑡𝑒这个是设置的超参数,epoch_num是迭代次数

这里是更多的方法

局部最优解问题

大多数人认为遇到的局部最优解可能长左图,实际上你遇到的大多是右图的鞍图,要想遇到局部最优解,必须在每个维度上都呈现凹函数的样子,而神经网络是在很高维上面解决问题,遇到这样的情况几乎是不可能的。

影响神经网络效率实际上是停滞区,就是鞍上面比较平缓的区域,他们的导数比较小,所以要一直迭代,直到离开停滞区,用说过的几种方法或者更多的方法来快速通过停滞区,就是加快神经网络的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值