使用神经网络执行文本分类时,准确性和损失之间是不是存在直接关系?
Posted
技术标签:
【中文标题】使用神经网络执行文本分类时,准确性和损失之间是不是存在直接关系?【英文标题】:Is there any direct relation in between accuracy and loss while performing text classification using neural network?使用神经网络执行文本分类时,准确性和损失之间是否存在直接关系? 【发布时间】:2021-02-22 12:34:07 【问题描述】:我正在尝试使用深度循环神经网络执行多类文本分类。我的网络正在遭受 94%、80% 甚至 100% 的巨大损失,并且具有一定的准确性。令人惊讶的是,在 64% 的验证准确度下,发生的损失为 96%。我想了解所发生的损失是否与准确性直接相关,或者是根据正确获取的数据计算准确性。我正在使用分类交叉熵函数来估计损失。
model.compile(optimizer=Adam(learning_rate=0.001), loss='categorical_crossentropy', metrics=['accuracy'])
print('Train...')
early_stopping = EarlyStopping(monitor='val_accuracy', patience=3, mode='max')
model.fit(x_train, y_train,
batch_size=32,
epochs=10,
callbacks=[early_stopping],
validation_data=(x_test, y_test))
【问题讨论】:
交叉熵损失中没有“%”。如果你得到 0.94 的损失,那就是 0.94 的交叉熵,就这么简单,而不是“94% 的损失”。 @xdurch0 感谢您的友好回复和更正。如果损失不是一个百分比,那么损失函数的最大值可能是多少。考虑一个三元类。 交叉熵使用对数概率,理论上可以无限高,因此没有最大值。然而,现实的最坏情况是随机猜测,这将导致 n 个类的 log(n) 丢失。所以有 3 个类大约是 1.10。 【参考方案1】:答案是否定的:
损失被视为问题的真实值与模型预测的值之间的距离。损失越大,你在数据上犯的错误就越大。
准确度应被视为您在数据上犯的错误数。低准确率和大损失意味着您在大量数据上犯了大错误,而低准确率和低损失意味着在大量数据上出现一些错误。同理,高准确率和低损失可以理解为你在很少的数据上犯了很少的错误。这实际上是您努力的目标。
注意准确率是一个百分比,而损失不是。
【讨论】:
感谢您的回答,但我想了解损失与准确性的关系。他们是否有任何直接关系?因为当我们说 65% 的验证准确率和 94% 的损失时,如何解释这两种状态的关系。 这是我的观点……尽管它们通常看起来成反比,但它们之间没有数学关系。而且它们似乎成反比并不总是如此。准确率和损失有不同的定义,衡量不同的东西。 我知道损失不是用百分比来衡量的。例如,如果我们有 1.15 的损失,那么它就不会是 115%。在这种情况下,描述错误率的交叉熵损失的最大值是多少。以上是关于使用神经网络执行文本分类时,准确性和损失之间是不是存在直接关系?的主要内容,如果未能解决你的问题,请参考以下文章