神经网络参数理解与设置

一、超参数

1、学习率:每次迭代的步长,决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。学习率越高,步长越大。

2、batch:当训练数据过多时,无法一次将所有的数据送入计算,所以需要将数据分成几个部分(多个batch),逐一地送入计算训练。即每次输入网络进行训练的批次(batch number)。

3、batch_size:每个batch里面样本的大小。即一次训练所选取的样本数。同时多张卡上训练的图片数量。

  • 一般GPU性能好的时候,batchsize越大,准确率越高
  • 通过并行化提高内存的利用率,提高训练速度
  • 单个epoch的迭代次数减少了,参数调整慢,若达到相同的识别精度,需更多的epoch
  • 适当batch size使梯度下降方向更明确
  • 当数据量较小时,1个batch的训练方式收敛效果较好。

4、mini-batch size:每张卡上训练的图片数量。

5、epoch:表示将输入的数据进行前向和后向传播的一个过程。

  • 其设置的大小与数据集的多样化程度有关,多样化程度越强,epoch越大。

6、iterations:完成一次epoch所需要的batch个数。即batch number就是iterations。
上面几者的关系如下:

例:将12800个训练样本,分成100个batches,那么
batchsize = 128;
将所有的数据输入网络,训练完成一个epoch,需要经过100次iterations。

【注】因为CPU和GPU内存架构是以2的幂进行组织的,所以经常选择批的大小为2的幂次。且batch size 越大,训练速度则越快,内存占用更大,但收敛变慢。

二、其他参数

1、梯度下降与损失函数
 梯度下降即每次权重w更新,我们需要找到最优的w值。
 而求解w是要通过损失函数L(w)进行求偏导求解的,更新梯度值即w值,同时L(w)也要更新,准备为下一次梯度值求解与更新。
    w1 = w0 - lr * g(w)(此为L的偏导)
 损失函数越大,梯度也越大。

你可能感兴趣的:(神经网络,深度学习)