神经网络中的误差和准确度很低。

时间:2017-10-28 22:30:41

标签: machine-learning neural-network deep-learning artificial-intelligence backpropagation

我正在运行具有不同激活功能的神经网络,以查看它们对学习的影响。我正在使用MNIST数据集并有两个隐藏层。我得到以下学习曲线的准确性和错误。

Accuracy Error

从准确度曲线可以看出,S形表现最差。但是当你看错误图时,它的最终错误似乎明显低于其他错误。它具有低精度和低误差?我不明白这是怎么可能的。有人可以解释一下这里发生了什么吗?这可能还是我犯了一些错误?

2 个答案:

答案 0 :(得分:2)

首先,如果您提供了有关如何获得它们的更多信息,那么解释这些图会更容易。它们都是在同一数据集上计算的吗?我还假设您在最后一个密集层使用softmax函数并优化交叉熵损失函数。

loss_i = - log p_i

p_i 是第i个图像所属的正确类的softmax概率。 (模型输出10个类别中每个类别的概率,但是交叉熵损失函数仅使用对正确类别预测的那个)。损失函数对数据中的所有图像进行平均。

这是我从两个图中看到的:第一个图表显示S形模型比ReLU相关模型错误分类更多图像 - 因此它得分精度。然而,第二个图表显示,平均而言,当它正确地对图像进行分类时,它会得到更高的概率值(接近100%),和/或当它对图像进行错误分类时,它似乎只是少量的错误。

与ReLU相关的模型在预测正确的课程方面似乎更好。然而,当他们出错时,他们似乎非常想念它。

为什么会这样?这与隐藏层激活功能有什么关系?...我无法分辨。

答案 1 :(得分:-1)

你应该注意的事情很少,

  1. 我们将准确度表示为百分比并通常计算 在学习和修复模型参数并且没有学习之后。
  2. 损失是剩余的平方和或交叉熵(它的总和),并不表示为百分比,通常意味着模型的精确程度 在训练时在每次迭代中表现。
  3. 因此,如果您想比较两个或更多DNN模型,最好使用每个模型的准确度,而不是使用损失

    此外,

    • 损失基本上是实际概率与样本预测概率之间的差异。
    • 但是,当您计算准确度时,我们只会选择 概率最高。例如,如果你有4个班级和 softmax输出概率为[0.1,0.2,0.2,0.5],然后使用[0,0,0,1] 与实际标签进行比较以计算准确度。

    因此,损失准确度的计算及其用法之间存在基本差异。