深度学习笔记:优化算法
2017-12-27 11:38
337 查看
1、mini batch梯度下降
传统的batch梯度下降是把所有样本向量化成一个矩阵,每一次iteration遍历所有样本,进行一次参数更新,这样做每一次迭代的计算量大,要计算所有样本,速度慢,但是收敛可以比较直接地收敛到cost function的最小值。
随机梯度下降(stochastic gradient descent)是每次迭代以一个样本为输入,这种方法每次迭代更新参数时,参数不一定是朝着cost function最小化的方向发展的,就是说cost function不一定是“下降”的,而是朝着更随机的方向演化的,所以称随机梯度下降。这种方法速度快,但收敛性不好。
综合以上两种方法的优缺点,提出minibatch方法,把样本按64、128、256、512等数目分批,每次iteration处理一批,用这一批样本来进行梯度下降,一批样本共同决定本次梯度下降的方向,不容易跑偏,减小了随机性。另外,每一次迭代用一批样本,比总体样本数小很多,加快了迭代速度。
如何理解batch和minibatch:http://hp.stuhome.net/index.php/2016/09/20/tensorflow_batch_minibatch/
2、指数加权移动平均(EWMA):
v0 = 0
v1 = b * v0 + (1-b) * w1
v2 = b * v1 + (1-b) * w2
........
vt = b * vt-1 + (1-b) * wt
这样,每个参数wt都会和wt-1到w1有关联,离wt越近的参数,对wt的影响越大。
该方法应用到一组数据上之后 ,根据b的大小,会对vt的曲线的平坦程度有影响, b选的越大,wt对vt的影响越小,wt-1到w1对vt影响越大,曲线就越平坦,反之,b越小,vt的曲线越不平坦,越接近原数据即wt的曲线。用该方法处理数据后,可以把vt的曲线看做是对wt曲线过去1 / (1-b)天的数据的一种 ”平均“ 。
网友的视频学习笔记:https://www.cnblogs.com/cloud-ken/p/7723755.html
指数加权移动平均在动量梯度下降中的应用:
动量梯度下降就是把普通梯度下降中的梯度,即全部的dw,用EWMA的方法处理,这样,每个dw都会受它前面的dw的影响。在没用EWMA处理之前,每次更新权重时,w = w - a*dw,dw的方向就比较随机,虽然总趋势是向cost最小方向的。
而用EWMA处理之后,朝cost最小方向的总趋势不变,因为每个dw都有朝这个方向,但是dw们向其他随机方向的趋势就会被平均掉,这样我们就可以加大梯度下降的步长,从从而加快梯度下降的优化速度。
如图:蓝色线是普通梯度下降中,各梯度的方向。红色线是动量梯度下降中,各梯度的方向。可以看出,向cost最小方向的趋势和速度不变,但是向其他无关方向的趋势被平均掉了。
3、
传统的batch梯度下降是把所有样本向量化成一个矩阵,每一次iteration遍历所有样本,进行一次参数更新,这样做每一次迭代的计算量大,要计算所有样本,速度慢,但是收敛可以比较直接地收敛到cost function的最小值。
随机梯度下降(stochastic gradient descent)是每次迭代以一个样本为输入,这种方法每次迭代更新参数时,参数不一定是朝着cost function最小化的方向发展的,就是说cost function不一定是“下降”的,而是朝着更随机的方向演化的,所以称随机梯度下降。这种方法速度快,但收敛性不好。
综合以上两种方法的优缺点,提出minibatch方法,把样本按64、128、256、512等数目分批,每次iteration处理一批,用这一批样本来进行梯度下降,一批样本共同决定本次梯度下降的方向,不容易跑偏,减小了随机性。另外,每一次迭代用一批样本,比总体样本数小很多,加快了迭代速度。
如何理解batch和minibatch:http://hp.stuhome.net/index.php/2016/09/20/tensorflow_batch_minibatch/
2、指数加权移动平均(EWMA):
v0 = 0
v1 = b * v0 + (1-b) * w1
v2 = b * v1 + (1-b) * w2
........
vt = b * vt-1 + (1-b) * wt
这样,每个参数wt都会和wt-1到w1有关联,离wt越近的参数,对wt的影响越大。
该方法应用到一组数据上之后 ,根据b的大小,会对vt的曲线的平坦程度有影响, b选的越大,wt对vt的影响越小,wt-1到w1对vt影响越大,曲线就越平坦,反之,b越小,vt的曲线越不平坦,越接近原数据即wt的曲线。用该方法处理数据后,可以把vt的曲线看做是对wt曲线过去1 / (1-b)天的数据的一种 ”平均“ 。
网友的视频学习笔记:https://www.cnblogs.com/cloud-ken/p/7723755.html
指数加权移动平均在动量梯度下降中的应用:
动量梯度下降就是把普通梯度下降中的梯度,即全部的dw,用EWMA的方法处理,这样,每个dw都会受它前面的dw的影响。在没用EWMA处理之前,每次更新权重时,w = w - a*dw,dw的方向就比较随机,虽然总趋势是向cost最小方向的。
而用EWMA处理之后,朝cost最小方向的总趋势不变,因为每个dw都有朝这个方向,但是dw们向其他随机方向的趋势就会被平均掉,这样我们就可以加大梯度下降的步长,从从而加快梯度下降的优化速度。
如图:蓝色线是普通梯度下降中,各梯度的方向。红色线是动量梯度下降中,各梯度的方向。可以看出,向cost最小方向的趋势和速度不变,但是向其他无关方向的趋势被平均掉了。
3、
相关文章推荐
- 吴恩达深度学习笔记 course2 week2 优化算法
- Coursera deeplearning.ai 深度学习笔记2-2-Optimization algorithms-优化算法与代码实现
- 深度学习笔记6:神经网络优化算法之从SGD到Adam
- 深度学习之优化算法笔记
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(2-2)-- 优化算法
- 吴恩达神经网络和深度学习课程自学笔记(六)之优化算法
- 吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(2-2)-- 优化算法
- 深度学习----笔记之优化算法
- 深度学习word2vec笔记之算法篇
- 系统学习深度学习(十)--优化算法
- 七月算法深度学习 第三期 学习笔记-第二节 DNN与混合网络
- 深度学习word2vec笔记之基础篇算法篇应用篇--写的非常到位
- TensorFlow 深度学习笔记 TensorFlow实现与优化深度神经网络
- 从修正Adam到理解泛化:概览2017年深度学习优化算法的最新研究进展
- 深度学习 优化算法
- 深度学习之---各种学习率优化算法
- 深度学习模型的优化算法及tensorflow实现
- 学习笔记---街区最短路径问题算法及优化
- 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
- 深度学习之momentum,RMSprop,Adam优化算法