我们将尝试使用任何方法来改善由于训练数据不平衡而导致的较差性能,我们的假设是少数类别有更差的训练和测试错误。
从这个基线模型,我们将应用一些技巧来获得更高的测试精度和泛化能力更强的模型。
在这里,我们的损失函数是通过给少数类别分配相对较高的权重。我们可以使用scikit-learn库中的重新加权方法来估计不平衡数据集的类权重,以’ balanced '作为参数,类权重将由n_samples / (n_classes * np.bincount(y))给出。
正如你所看到的,在某些类中,数据越低,它得到的权重就越大,反之亦然。
在任何优化器中,固定的学习率都是默认的学习率计划。为了在训练阶段获得最佳的优化,选择合适的学习率是很困难的。通过在本例中对不同的学习速率进行实验,lr=0.001显示了相对较好的性能。这可以作为我们实验不同学习速率策略的基准。学习率策略是为了在特定阶段的训练阶段使用合适的学习率。学习率策略通过根据损失函数值的变化来决定学习率是否衰减。
解决类不平衡问题的常见损失函数之一是使用Focal loss。Focal Loss不是试图减少离群值或模型的预测与事实相去甚远的预测,而是减少它正确预测的值的权重(或影响)。损失函数是一种数学方法用来表示猜测值与数据点实际值之间的距离。我们也可以做一些研究和实验来使用或创建我们自己的损失函数,这项研究被称为度量学习。
深度学习模型可能会变得过于自信,因此,模型不能很好地泛化,特别是在训练阶段使用不平衡的数据集时。标签平滑是一种用于分类问题的正则化技术,以防止模型过于自信地预测标签。这个想法很简单,例如,我们有10个类,其中一个y的one-hot是这样的。
根据上面的标签,我们知道标签是类别9。在我们用一个特定的平滑因子应用标签平滑之后,第9类的标签变成了这样。。
遇到包含大量类(超过100个类)的大规模数据集,通常使用这个技巧来在模型中获得更高的准确性。但是,因为我们的数据集只有10个类,所以没有必要应用这个技巧。
在本文的最后,从实验中,我们可以得出结论,处理不平衡的数据集有一些权衡,比如准确性高但容易过拟合,或者模型没有过拟合但性能较低。然而,我们的目标是,我们需要相当的精度和更低的损失,以得到一个泛化能力较强的模型。训练阶段的一些技巧可能有助于克服这个问题。
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://zleialh.tongchengxian.cn/news/8121.html
有话要说...