神经网络参数理解与设置

一、超参数

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的偏导)
 损失函数越大,梯度也越大。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BP神经网络参数设置是非常重要的,它会直接影响到网络的性能和训练结果。下面是一些常见的BP神经网络参数以及如何进行确认的方法: 1. 输入层选择:根据你的问题和数据集的特点,确定输入层的节点数。通常情况下,输入层的节点数应该等于你的输入数据的特征数。 2. 隐藏层选择:隐藏层的节点数和层数是根据问题的复杂性和数据集的大小来确定的。一般来说,隐藏层的节点数越多,网络的拟合能力越强,但也容易导致过拟合。可以通过交叉验证等方法来确定隐藏层的节点数和层数。 3. 输出层选择:输出层的节点数取决于你的问题是分类问题还是回归问题。对于分类问题,输出层的节点数应该等于类别的数量。对于回归问题,输出层的节点数通常为1。 4. 训练次数选择:训练次数是指将整个训练集输入网络进行一次前向传播和反向传播的次数。训练次数的选择需要根据你的数据集大小和网络的收敛情况来确定。可以通过观察训练误差的变化情况来判断网络是否已经收敛,如果训练误差已经趋于稳定,则可以停止训练。 5. 训练函数选择:在Matlab中,有多种训练函数可供选择,如梯度下降法(traingd)、弹性梯度下降法(trainrp)和自适应学习率梯度下降法(traingda)等。选择合适的训练函数需要考虑网络的收敛速度和性能。 请注意,以上只是一些常见的BP神经网络参数设置方法,具体的参数选择还需要根据具体问题和数据集的特点进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值