gpt4 book ai didi

machine-learning - 神经网络陷入困境

转载 作者:行者123 更新时间:2023-11-30 08:37:09 27 4
gpt4 key购买 nike

我正在尝试使用神经网络进行分类(我正在使用 tensorflow )。不幸的是,我的神经网络的训练准确率停留在 42%。我有 4 个类,我尝试将数据分类。不幸的是,我的数据集不太平衡,这意味着:

  1. 43% 的数据属于第 1 类(是的,我的网络只能预测这一点)
  2. 37% 达到 2 级
  3. 13% 达到 3 级
  4. 7% 达到 4 级

我使用的优化器是 AdamOptimizer,成本函数是 tf.nn.softmax_cross_entropy_with_logits。

我想知道我的训练卡在 42% 的原因是否真的是我的数据集不够平衡,或者是因为数据的性质确实是随机的,并且确实没有找到任何模式.

目前我的神经网络包括:

  1. 输入层
  2. 2 个卷积层
  3. 7 个全连接层
  4. 输出层

我尝试改变这种网络结构,但结果总是一样。我也尝试过支持向量分类,结果几乎相同,只有很小的变化。

其他人也遇到过类似的问题吗?有人可以给我一些如何摆脱这个问题的提示吗?

谢谢,杰拉德

最佳答案

我假设您已经双重、三重和四重检查过输入的数据是否符合您的预期。

<小时/>

这个问题相当开放,甚至是一个研究课题。但有些事情可以提供帮助。

就更好的训练而言,人们使用不平衡数据集训练神经网络有两种常见方法。

  • 以较低频率对示例进行过采样,以便网络看到的每个类的示例比例相等。例如在每个批处理中,强制 1/4 的示例来自类别 1,1/4 来自类别 2,等等。
  • 按类别的比例对错误分类每个类别的误差进行加权。例如错误分类 1 类示例的得分为 100/43,而错误分类 4 类示例的得分为 100/7
话虽这么说,如果你的学习率很好,神经网络最终通常会(在坐在那里几个小时之后)跳出只预测一类的情况,但它们仍然很少以严重倾斜的数据集结束。

<小时/>

如果您想知道数据中是否存在可以确定的模式,有一个简单的方法可以实现。

通过从所有类中随机选择元素来创建一个新数据集,使所有类中的元素数量为偶数(即,如果第 4 类有 700 个示例,则通过从每个类中随机选择 700 个示例来构建数据集)

然后您可以在这个新数据集上使用您的所有技术。

虽然,this paper表明即使使用随机标签,它也应该能够找到一些它理解的模式。

关于machine-learning - 神经网络陷入困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46661373/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com