答案 0 :(得分:10)
至少有5个可能导致此类行为的原因:
异常值:假设您有10张完全相同的图片,其中9张属于 A 类,其中一张属于 B < / strong>即可。在这种情况下,由于大多数示例,模型将开始为此示例分配类 A 的概率很高。但是 - 来自异常值的信号可能会破坏模型的稳定性并降低准确性。从理论上讲,模型应该稳定,将分数 90%分配给 A ,但它可能会持续很多时代。
解决方案:为了处理这些示例,我建议您使用渐变剪辑(您可以在优化器中添加此选项)。如果您想检查是否发生这种现象 - 您可以检查您的损失分布(从训练集中丢失个别示例)并查找异常值。
偏见:现在假设您有10张完全相同的图片,但其中5张已分配了类 A 和5 - 类 B 。在这种情况下,模型将尝试在这两个类上分配大约 50%-50%分布。现在 - 你的模型在这里可以达到最多50%的准确度 - 选择两个有效的一个类。
解决方案:尝试增加模型容量 - 通常你有一组非常相似的图像 - 增加表达能力可能有助于区分类似的例子。但要注意过度拟合。另一种解决方案是在培训中尝试this策略。如果要检查是否发生这种现象 - 请检查各个示例的损失分布。如果分布偏向更高的值 - 您可能会遭受偏见。
课程失衡:现在假设您的图片的 90%属于 A 类。在训练的早期阶段,您的模型主要集中在为几乎所有示例分配此类。这可能会使个人损失达到非常高的价值,并通过使预测分布更不稳定来破坏您的模型。
解决方案:再次 - 渐变裁剪。第二件事 - 耐心,试着让你的模型更多的时代。模型应该在进一步的培训阶段学到更多细微之处。当然 - 通过分配sample_weights
或class_weights
来尝试课堂平衡。如果您想检查是否发生这种现象 - 请检查您的班级分布。
过于强烈的正规化:如果你将正则化设置得过于严格 - 培训过程主要集中在让你的权重比实际学习有趣的见解更小的规范。
解决方案:添加categorical_crossentropy
作为指标,并观察它是否也在减少。如果不是 - 那么这意味着你的正规化太严格了 - 试着减去重量惩罚。
糟糕的模型设计 - 此类行为可能是由错误的模型设计引起的。为了改进您的模型,有一些可能适用的良好实践:
批量规范化 - 由于这种技术,您可以防止您的模型彻底改变内部网络激活。这使得培训更加稳定和高效。如果批量较小,这也可能是规范模型的真正方法。
渐变剪辑 - 这使您的模型训练更加稳定和高效。
降低瓶颈效应 - 阅读this精彩论文并检查您的模型是否可能遇到瓶颈问题。
添加辅助分类器 - 如果您从头开始训练您的网络 - 这应该使您的功能更有意义,您的培训更快更有效。
答案 1 :(得分:2)
有可能在降低精度的同时降低损失,但它远未被称为良好的模型。在模型的每个转换层使用批量规范化可以解决此问题。
答案 2 :(得分:2)
是的,这是可能的。
为了提供一个直观的例子说明为什么会发生这种情况,假设您的分类器输出的概率大致相同 A 和 B ,并且类 A < / em>总体密度最高。在此设置中,最小化更改模型的参数可能会将 B 转换为最可能的类。这种效应会使cross-entropy loss变化最小,因为它直接取决于概率分布,但是准确性会明显注意到变化,因为它取决于输出概率的 argmax 分布。
总之,最小化交叉熵损失并不总是意味着提高准确性,主要是因为交叉熵是一个平滑函数,而精度是不平滑的。
答案 3 :(得分:0)
这是可能的,因为损失函数也说明了预测的可信度,而准确性仅说明了正确性。下面的excel表格显示了一个示例,左侧损失和准确度都很低,右侧准确度增加,同时损失也增加了
选中spreadsheet自己尝试
这与使用softmax函数的多类分类相同
如果出现正面反应的可能性很高,则损失会很小
希望这可以清楚说明为什么可行。这是我的直觉,如果有人对此不正确,欢迎您反馈