• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

深度学习关键词

bigdata admin 1年前 (2018-03-20) 635次浏览 0个评论 扫描二维码

batch: batch 是批。深度学习每一次参数的更新所需要损失函数并不是由一个{data:label}获得的,而是由一组数据加权得到的,这一组数据的数量就是[batch size]。

batch 的思想,至少有两个作用,一是更好的处理非凸的损失函数,非凸的情况下, 全样本就算工程上算的动, 也会卡在局部优上, 批表示了全样本的部分抽样实现, 相当于人为引入修正梯度上的采样噪声,使“一路不通找别路”更有可能搜索最优值;二是合理利用内存容量。

另外一种关于 batch 的解释,关于 gd 和 sgd,gd 每次的更新都会计算全局所有样本的代价函数,如果训练的样本集非常大那么计算的成本会很高,由此引发了 sgd 每次使用一个样本来更新数据,加快了速度,二者都达不到全局最优的效果。gd 相比于 sgd 更能体现代价函数的意义,毕竟是反映全局整体代价,这个时候 batch 的出现,相当于二者的折中,哇咔咔,(ps:为啥对随机梯度使用部分样本更新,我觉得也是一样的)

如果数据集较小,可以采用全数据集(Full batch learning)的形式,这样有两个显然的好处:1.由全数据集计算的梯度能够更好的代表样本总体,从而更准确的朝向极值所在的方向;2.不同权重的梯度值差别很大,因此选取一个全局的学习率会比较困难(?)

batch size 最大是样本总数 N,此时就是 Full batch learning;最小是 1,即每次只训练一个样本,这就是在线学习(Online Learning)。当我们分批学习时,每次使用过全部训练数据完成一次 Forword 运算以及一次 BP 运算,成为完成了一次 epoch。


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明深度学习关键词
喜欢 (0)
admin
关于作者:

您必须 登录 才能发表评论!