我今天想知道,在学习神经网络时,动态地从训练数据集中删除数据是否是一种好方法。假设有一个分类任务,这种方法将类似于
使用这种方法,可以减少训练时间,同时保持模型的准确性。
有人知道这是什么可以做的事吗?我知道这种方法类似于主动学习,在这种情况下,你只能用低确定性来标记元素,但这种方法正好相反:我们对所有元素都有标签,但我们决定放弃其中一些元素,以使培训更快。
发布于 2023-02-08 01:34:18
你所描述的通常被称为课程学习,训练过程中小批量的非均匀抽样.课程学习已被证明可以提高学习速度和提高测试数据的最终表现。
发布于 2023-02-08 08:04:05
你的方法的问题是灾难性的遗忘。如果你只对上一个时代没有正确分类的样本进行训练,那么,在训练下一个时代之后,你的模型将在“容易的数据”上表现不佳,因为它与困难的数据相适应。
此外,模型在一个时代开始时的行为与结束时的行为有很大的不同,因此,为了正确地实现您提出的方法,您需要再次对那个时代使用的整个训练数据进行推理。这当然是非常昂贵的。
你提出的建议有点像一种叫做“助推”的技术,但不是使用单一的模型,而是按顺序训练不同的模型。第一个模型是针对所有数据进行培训的。第二个模型的训练集中在第一个模型表现不好的数据上(根据先前模型预测的正确性,数据被赋予“权重”,权重从一个模型增加到另一个模型)。诸若此类。然而,随着第一个模型的提升,在对所有数据进行训练之后再也不会被触及,因此它保留了它的分类能力。此外,boosting通常与“弱”分类器(即不是深度神经网络)一起使用,尽管不一定。
https://datascience.stackexchange.com/questions/118359
复制相似问题