卷积神经网络loss不下降,神经网络loss多少算正常

1、为什么初始化向量后 神经网络loss无法下降

通常为了计算的优化等缘故,维度一般取2的指数。
全连接层后续计算loss,总共类别应该会有上千类,所以之前的layer最好也是1000这种规模,所以一般取1024,2048,4096等。
通过在数据集上进行测试,可以跑出来一个结果比较好的网络结构

谷歌人工智能写作项目:小发猫

2、BP神经网络损失函数居高不下

1、模型结构和特征工程存在问题神经网络loss没有下降原因
2、权重初始化方案有问题。
3、正则化过度。
4、选择合适的激活函数、损失函数。
5、选择合适的优化器和学习速率。
6、训练时间不足,模型训练遇到瓶颈。

3、怎么选取训练神经网络时的Batch size?

选取训练神经网络时先选好batch size,再调其他的超参数。并且实践上来说,就两个原则——batch size别太小,也别太大,其他都行。

因为合适的batch size范围和训练数据规模、神经网络层数、单元数都没有显著的关系。合适的batch size范围主要和收敛速度、随机梯度噪音有关。

为什么batch size别太小。别太小的限制在于,batch size太小,会来不及收敛。

所以batch size下限主要受收敛的影响。所以在常见的setting(~100 epochs),batch size一般不会低于16。如果你要选更小的batch size,你需要给自己找到很好的理由。

为什么batch size别太大:

batch size别太大的限制在于两个点。

1、batch size太大,memory容易不够用。这个很显然,就不多说了。

2、batch size太大,深度学习的优化training loss降不下去和泛化generalization gap都会出问题。

随机梯度噪音的magnitude在深度学习的continuous-time dynamics里是正比于learning rate/batch size。batch size太大,噪音就太小了。

而大家已经知道,随机梯度噪音对于逃离saddle points [2]和sharp minima [3]都必不可少的作用。前者可以解释为什么优化出问题,后者则可以解释为什么泛化出问题。


 

4、神经网络训练loss收敛的问题

这个问题比较泛,因为网络的损失函数是由自己设计的,如果不特殊说明一般是有均方误差和交叉熵两种损失函数的。其中均方误差当然就是指的输出与标签的差的平方和的平均,计算方式如下: 而交叉熵则是为了防止网络在训练后期迟缓而提出的一种损失函数,计算方式如下:

5、神经网络训练一定次数后准确率突然下降怎么回事?

经网络训练时准确度突然变得急剧下降,很有可能是你的休息不够睡眠不足导致注意力不集中,近段时间的心情也很影响训练时的准确度,心情烦躁准确度也就会下降。

猜你喜欢

转载自blog.csdn.net/mr_yu_an/article/details/127433231
今日推荐