以及它是如何影响深度学习的,学习率

学习率和batchsize如何影响模型的性能?

以及它是如何影响深度学习的,学习率


学习率决定了权重迭代的步长,是一个较敏感的超参数,它对模型性能的影响体现在两个方面,第一个是初始学习率的大小,第二个是学习率的变换方案 。初始的学习率不宜过大,过大则导致模型不收敛,过小则导致模型收敛特别慢或者无法学习,下图展示了不同大小的学习率下模型收敛情况的可能性,图来自于cs231n 。那么如何确定最佳的初始学习速率呢?通常可以采用最简单的搜索法,即从小到大开始训练模型,然后记录损失的变化,随着学习率的增加,损失会慢慢变小,而后增加,而最佳的学习率就可以从其中损失最小的区域选择 。
【以及它是如何影响深度学习的,学习率】有经验的调参工程师常常根据自己的经验进行选择,比如0.1,0.01等 。学习率变换的策略通常分为两类:一种是预设规则学习率变化法,一种是自适应学习率变换方法 。预设规则学习率变化法,常见的策略包括fixed,step,exp,inv,multistep,poly等 。他们相当于预设的某种方式策略来在训练过程调整学习率大小 。
自适应学习率策略以Adagrad,Adam等为代表,是目前比较主流的学习率使用方法,他们都会在学习过程中分别根据θ参数和梯度来动态调整学习率,这里不再细述 。至于Batchsize, 是指的每次送给模型训练的样本数量,最小为1,最大为整个数据集,应根据不同的数据量大小和训练场景选用合适的batchsize大小 。
通常我们采用的批梯度下降法(Mini-batches Learning) 。那么,在合理范围内,增大 BatchSize 有什么好处?1、大矩阵乘法的并行化效率提高 。2、跑完一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快 。3、在一定范围内,一般来说 BatchSize 越大,其确定的下降方向越准,引起训练震荡越小 。
盲目增大 BatchSize 有什么坏处?1、内存利用率提高了,但是内存容量可能撑不住了 。2、跑完一次 epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢 。3、BatchSize 增大到一定程度,其确定的下降方向已经基本不再变化 。。

    推荐阅读