计算机视觉工程师在面试过程中主要考察三个内容:图像处理、机器学习、深度学习。然而,各类资料纷繁复杂,或是简单的知识点罗列,或是有着详细数学推导令人望而生畏的大部头。为了督促自己学习,也为了方便后人,决心将常考必会的知识点以通俗易懂的方式设立专栏进行讲解,努力做到长期更新。此专栏不求甚解,只追求应付一般面试。希望该专栏羽翼渐丰之日,可以为大家免去寻找资料的劳累。每篇介绍一个知识点,没有先后顺序。想了解什么知识点可以私信或者评论,如果重要而且恰巧我也能学会,会尽快更新。最后,每一个知识点我会参考很多资料。考虑到简洁性,就不引用了。如有冒犯之处,联系我进行删除或者补加引用。在此先提前致歉了! 在训练的过程中,先明确几个概念: batch size: 批大小,更新一次参数,用到的样本数量。 举个例子: 训练过程有正向传播和反向传播。 根据batch size大小分为三类: 正向传播和反向传播次数不同,怎么做的? 因为batch size大小的优缺点比较复杂,甚至有时候是矛盾的。了解以下原理,能够自己分析,才是最好的。 训练过程中,数据需要被读取到显卡(gpu)中。 batch size越大,占用的gpu显存越大。 n个样本正向传播的梯度相加取平均,n越大,每个iteration的梯度方向越稳定。 batch size变大,梯度方向越稳定,会向一个方向稳定地更新。 讨论不同batch size下训练得到的准确性没有太大的意义。 不同batch size的iteration的时间几乎相同。 理论上,每个iteration都是1次反向传播,batch size越大,正向传播次数越多,1次iteration的时间越长。 如果,非要下一个通用的结论: batch size通常是2的幂函数,比如32,64,128… 完
epoch: 周期数,将所有样本均使用一遍是1个epoch。
iteration: 迭代次数,在1个epoch内,更新参数的次数。
5000个样本,batch size是50,iteration就是100。原理
正向传播计算损失,反向传播更新参数。
比如batch size = 5
正向传播5次得到5个损失,5个损失取平均,计算1个梯度,反向传播1次。优缺点
batch size太小,比如11GB的显存只用了3GB,如果gpu没有其它任务,那么对gpu的利用显然是不充分的,从这个角度来讲,不利于效率的提升。
batch size过大,超过了gpu的显存容量,那么数据无法读取,无法训练。
但是一直向相似方向前进,容易陷入局部最优。
batch size变小,梯度方向不稳定,训练过程不稳定,容易受到一些极端样本的影响。不过,也不容易陷入局部最优。
batch size小,梯度不稳定,需要采用小的学习率,防止受到某一批样本过大的影响。反之,batch size大,梯度稳定,就可以采用相对较大的学习率。
相同epoch,batch size大,iteration少,也就是参数更新次数少。所以针对不同的batch size,epoch的设置也是不同的。
综上,不同的batch size都有其合适的超参数选择,所以直接比较使用不同batch size训练的准确率,没有太大意义。
但是,和反向传播的时间比,正向传播的时间几乎可以忽略不计。
所以,不同batch size的iteration的时间几乎相同。
具体到1个epoch,因为大batch size的iteration次数少,所以大batch size的每个epoch的时间短。
在一定范围内,大batch size注重效率,小batch size注重精度。讨论
一问原因都说是因为计算机是2进制运算,具体又说不出来。
我能想到的一个强行解释是:
在求损失的平均值时,除以32这类数可以直接移位。但是这个差距我觉得可以忽略不计了吧。
所以很多人也通常不会遵守这一潜规则。
如果有大佬了解具体原因,恳请多多指教!
欢迎讨论 欢迎吐槽
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算