【发布时间】:2016-12-08 07:22:52
【问题描述】:
我是机器学习的新手,目前正在尝试训练具有 3 个卷积层和 1 个全连接层的卷积神经网络。我使用 25% 的辍学概率和 0.0001 的学习率。我有 6000 个 150x200 的训练图像和 13 个输出类。我正在使用张量流。我注意到一个趋势,即我的损失稳步减少,但我的准确性仅略有增加,然后又回落。我的训练图像是蓝线,我的验证图像是橙线。 x 轴是步数。
我想知道是否有我不理解的东西或者这种现象的可能原因是什么?从我读过的材料来看,我认为低损耗意味着高准确度。 这是我的损失函数。
cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))
【问题讨论】:
-
听说过过拟合吗?
-
低训练损失应该意味着低训练集错误。你的损失有多低?您的规模为数百万,从图中不清楚您的训练损失是否很低(小于 1)
-
是的,我听说过过度拟合,但我假设如果你过度拟合,你的训练数据仍然会有很高的准确性。对不起这个规模,我训练结束时损失在 1-10 之间。
-
准确率被称为“0-1”损失,而人们通常最小化交叉熵损失。这些损失是相互关联的——0 交叉熵损失意味着 100% 的准确度,并且交叉熵的准确度有一些界限,因此低交叉熵意味着高准确度。最典型的是,您的场景代表损失函数中的错误
-
这是我的损失函数。成本 = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(pred, y))。其中 pred 是预测数组,y 是包含正确标签的数组。数组是 128x13,因为我有大小为 128 和 13 个类的批次。
标签: python machine-learning tensorflow deep-learning