【QLBD】深度学习小笔记(一)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/XHYQLBD/article/details/78995864

几个概念解释

1、batch_size

batch_size, 又叫 批尺度,作用:决定 梯度下降方向,意义:1次迭代所使用的样本量。

(1)小数据集:

通常在数据集较小时采用Full Batch Learning全数据集的形式。使用梯度下降 的方法,一次迭代样本量为全量的数据集。

便于并行计算,数据量大了会比较慢。

(2)大数据集:

数据集较大的时候,Full Batch learning 的方法就不再合适,这时候有两种选择:

一、随机梯度下降,batch_size = 1,即每次迭代的样本数为1;

优点基于每个采样去修正,修正幅度大了以后,就容易跳出局部极值,避免过拟合发生;速度比全数据集的形式要快;

缺点 难以并行计算;因为每次更新基于单个采样,很容易导致难以收敛;

二、批梯度下降Mini-batches Learningbatch_size = n,即每次迭代的样本数为n,1<n<all;

一部分数据作为一个batch,这种情况每次更新模型修正幅度没有全量数据集形式 那么小,也没有随机梯度下降 那么大,而且可以并行计算,所以速度也比较快。

一般在监督训练阶段,可选择小batch size进行初步训练,让模型跳出局部极值,之后用大的batch size让模型收敛,这样一般能达较好的效果。

实际运用

batch_size设的大一些,收敛得,也就是需要训练的次数少,准确率上升得也很稳定,但是实际使用起来精度不高。

batch_size设的小一些,收敛得,而且可能准确率来回震荡(不收敛),所以还要把基础学习速率降低一些;但是实际使用起来精度较高。

合理选择 Batch_Size

1、有利于提高内存利用率,盲目增大会导至内存不够。

2、一次 epoch(全数据集)所需的迭代次数减少,对于相同数据量的处理速度进一步加快;但是要想达到相同的精度,其所花费的时间会大大增加。

3、在一定范围内,一般来说 Batch_Size 越大,其确定的下降方向越准,引起训练震荡越小;增大到一定程度,其确定的下降方向已经基本不再变化。

2、iteration
迭代次数,表示一次迭代,每次迭代更新一次网络结构的参数。
3、epoch
一轮,一个epoch表示过了一遍训练集中的所有样本

关系举例:
train_num = 15000
iteration = 235
则:
batch_size = train_num/iteration = 64
展开阅读全文

没有更多推荐了,返回首页