神经网络模型调优_CodingPark编程公园

本文探讨了神经网络中Batch Size的影响,包括增大的好处与限制,以及如何选择合适的大小。同时,文章深入讲解了Loss的变化情况及其对模型训练的影响,包括过拟合、欠拟合的识别,并提供了损失抖动问题的解决策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

batchsize

增大batchsize的好处有三点:
1)内存的利用率提高了,大矩阵乘法的并行化效率提高。
2)跑完一次epoch(全数据集)所需迭代次数减少,对于相同的数据量的处理速度进一步加快,但是达到相同精度所需要的epoch数量也越来越多。由于这两种因素的矛盾, batch_Size 增大到某个时候,达到时间上的最优。
3)一定范围内,batchsize越大,其确定的下降方向就越准,引起训练震荡越小。

盲目增大的坏处:
1)当数据集太大时,内存撑不住。
2)过大的batchsize的结果是网络很容易收敛到一些不好的局部最优点。
3)batchsize增大到一定的程度,其确定的下降方向已经基本不再变化。
4)太小的batch也存在一些问题,比如训练速度很慢,训练不容易收敛等。
5)具体的batch size的选取和训练集的样本数目相关。

loss

对于每个超参数,我们在每次的调整时,只去调整一个参数,然后观察loss变化,千万不要在一次改变多个超参数的值去观察loss


首先我们要理解验证集的作用,它与测试集有什么不同。

要明白验证集的最大作用是方便我们了解模型效率、调试超参数,测试集是可以没有的,但验证集是必须有的,如果验证集具有足够的泛化代表性,是可以不需要设置测试集的;注意测试集的存在只是为了验证我们在训练集和验证集上进行模型的超参和参数训练后,验证我们得到的模型是否具有泛化性能。

说法1

在这里插入图片描述

说法2

对于loss的变化情况,主要有以下几种可能性:上升、下降、不变,对应的数据集有trainval(validation),那么进行组合有如下的可能:

train loss 不断下降,val loss 不断下降——网络仍在学习;

train loss 不断下降,val loss 不断上升——网络过拟合;

train loss 不断下降,val loss 趋于不变——网络欠拟合;

train loss 趋于不变,val loss 趋于不变——网络陷入瓶颈;

train loss 不断上升,val loss 不断上升——网络结构问题;

train loss 不断上升,val loss 不断下降——数据集有问题;

其余的情况,也是归于网络结构问题与数据集问题中。


当loss趋于不变时观察此时的loss值与1-3中计算的loss值是否相同,如果相同,那么应该是在梯度计算中出现了nan或者inf导致oftmax输出为0。

此时可以采取的方式是减小初始化权重、降低学习率。同时评估采用的loss是否合理。

减少loss抖动

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TEAM-AG

编程公园:输出是最好的学习方式

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值