在神经网络的训练过程中,正常情况下整体的过程是一个Loss不断下降的过程,然而在训练过程中往往存在一些batch_size输入时,前向传播得到的Loss突然变大的情景。
在训练神经网络过程中,经过softmax函数输出概率后,当当前最大概率对应的类别与训练标签一致时,损失Loss往往较小,而经过softmax输出时,训练标签所对应的概率softmax概率较小,此时的Loss计算结果往往很大。对此引出两个解决问题的思路:
1.可能是训练标签未进行很好的标注,假设当前是一个二分类问题,我们需要提前定义的标签类别为0,1。假设一个标签被错误的定义为2,导致此batch输入无论怎么训练得到的结果都是错误的分类,导致Loss过大情形,此时需要我们可以通过重新制作训练标签来解决。
2.可以通过设定一些条件来对Loss进行约束,在训练过程中如果出现Loss增大程度超出了一定的阈值,可以将此时的Loss强制设为0,这样在反向传播时就不会对权重和bias系数的迭代更新做贡献。