Deep learning 损失函数达到全局极小值

Deep learning 损失函数达到全局极小值,deep-learning,Deep Learning,在深度学习中,我们是否可以在损失函数的全局最小值下获得远低于100%的训练精度 我已经用python编写了一个神经网络来分类猫和非猫。我选择了两层网络。它给出了100%的列车精度和70%的测试精度 当我将#layers增加到4时,损失函数被固定在0.6440,导致训练精度为65%,对于许多随机初始化,测试精度为34% 我们希望我们的列车在4层模型上的准确率应为100%。但我们正陷入65%的困境。我们认为损失函数正在达到全局最小值,因为在许多随机初始化中,我们的损失值停滞在0.6440。因此,即使

在深度学习中,我们是否可以在损失函数的全局最小值下获得远低于100%的训练精度

我已经用python编写了一个神经网络来分类猫和非猫。我选择了两层网络。它给出了100%的列车精度和70%的测试精度

当我将#layers增加到4时,损失函数被固定在0.6440,导致训练精度为65%,对于许多随机初始化,测试精度为34%


我们希望我们的列车在4层模型上的准确率应为100%。但我们正陷入65%的困境。我们认为损失函数正在达到全局最小值,因为在许多随机初始化中,我们的损失值停滞在0.6440。因此,即使损失函数达到了全局最小值,为什么列车精度没有达到100%?因此,我们提出了一个问题,“在深度学习中,我们可以在损失函数的全局最小值下使训练精度不为零吗?”

确定这只取决于网络的容量。如果只有线性激活,则网络是线性的,如果数据是线性可分离的,则训练精度仅为100%。对于非线性激活函数,容量不是很清楚。我们在理论上确实知道,如果有足够多的神经元(),具有隐藏层的神经网络是一个普适函数逼近器。因此,理论上,它应该能够很好地逼近任意函数,从而达到100%的训练精度


对于你的问题来说,罪魁祸首可能是你陷入了某种局部极小值,这很糟糕。从理论上讲,在全局最优情况下,增加容量绝不会导致更高的损失。但是,较低的损耗并不一定意味着精度较高

当我们运行4层网络进行200000次迭代时,损失实际上减少到了0.00038。但随后,采集的准确率下降到47%。我真的不明白为什么——“损失越小并不一定意味着准确度就越高”。你能详细说明一下吗?准确度是一个二进制指标。要么你的预测是正确的,要么不是。由于坡度不提供任何信息,这使得训练本身就很困难。因此,您可以针对一些平滑的代理损失进行优化,从而在决策边界处比远处更低。因此,在不改变精度的情况下,损耗可以大大提高。也有可能一些样本现在分类错误,但许多其他样本现在位于决策边界上,因此总体损失低于更高精度的模型。