我正在尝试在不平衡类别(20%1级,70%2级,10%3级)的数据集上训练卷积神经网络。我希望网络了解到,与2级相比,1级和3级很少发生。
大多数stackoverflow答案建议通过向代表性不足的类添加更多数据或优先考虑权重更新来平衡数据集。
我的问题
1)如果我在没有采取任何措施来平衡我的数据集的情况下进行训练,模型是否会自行学习训练数据集的分布?
2)如果他们可以学习数据的分布,那么需要平衡数据集,正如许多stackoverflow答案所建议的那样?
谢谢!
答案 0 :(得分:2)
根据给定的情况,您可能能够为不平衡的类训练成功的神经网络。但是,假设您正在尝试训练分类器,并且您有90%的A类实例和10%的B类实例。
一个非常容易找到并且效率非常高的“解决方案”是创建一个总是返回A类作为预测的网络,因为这将具有90%的准确度(9/10正确预测)。学习算法可能很难从这个解决方案转移到更好的解决方案(所有可能的小改变都可能导致网络性能比原始网络差!)。
拥有更加平衡的训练集意味着这种懒惰的解决方案将导致较低的性能(在两个均衡的类的情况下不超过50%)。
简而言之,平衡类是一种通过阻止不良解决方案来帮助学习算法的一种方法,即使理论上对不平衡类的训练有时也可以起作用。