使用有限内存从数据流中训练感知器

我想使用随机梯度规则从数据流中训练一个感知器。我的内存非常有限,只能存储N个样本。

假设我的数据集包含如图所示的点:

enter image description here

现在假设我的前N个样本按以下方式到达,并且我可以如下一张图所示正确地对它们进行分类:

enter image description here

现在的问题是,如果接下来的N个样本以这种方式到达:

enter image description here

并且我已经对它们进行了分类。问题在于,由于我无法对前N个样本进行训练(因为我只能存储N个样本,前N个样本需要被丢弃),而对接下来的N个样本的训练与前N个样本的超平面相矛盾。

如何从数据流中训练感知器?我是否需要存储所有样本,还是有其他替代方法?


回答:

你需要以某种方式总结之前的训练,然后将这个总结纳入新的训练中。

一种简单的方法是将每个类别表示为k(聚类人口)个聚类中心的副本。在训练每个新数据集时,包含代码以正确加权聚类中心。

类似的方法是修改你的训练算法,直接将该权重纳入你调整评估系数的方式中。这里“学习率”会很有用。

你也可以在线搜索关于使用流数据进行训练的工作;我只给你提供了一些启动方法的简单版本。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注