在深度学习中,在损失函数的全局最小值下,我们的训练精度可以远低于100%吗?
我用python编写了一个神经网络,对猫和非猫进行分类。我选择了2层网络。它提供了100%的火车精度和70%的测试精度。
当我将#layers增加到4时,损失函数陷于0.6440,导致许多随机初始化的训练精度为65%,测试精度为34%。
我们希望我们在4层模型上的火车精度应为100%。但是我们陷入了65%的困境。我们认为损失函数正在达到全局最小值,因为在许多随机初始化中,我们都停留在0.6440的损失值上。那么,即使损失函数达到了全局最小值,为什么火车的精度没有达到100%?因此,我们的问题是:“在深度学习中,我们可以使损失函数的全局最小值的训练精度非零吗?”
答案 0 :(得分:0)
确定这仅取决于网络的容量。如果只有线性激活,则网络是线性的,并且如果数据是线性可分离的,则训练精度仅为100%。对于非线性激活功能,容量尚不清楚。从理论上我们确实知道,具有隐藏层的NN是给定足够神经元(https://towardsdatascience.com/can-neural-networks-really-learn-any-function-65e106617fc6)的通用函数逼近器。因此,从理论上讲,它应该能够任意近似地逼近任何函数,从而达到100%的列车精度。
对于您的问题,罪魁祸首可能是您陷入某种局部最小值,这很糟糕。从理论上讲,增加容量绝不会导致全局最优情况下的更高损失。较低的损耗并不一定意味着精度较高。