为更新数据训练神经网络
Training neural network for updated data
我有一个在某些数据集上训练过的神经网络。假设数据集最初有 10k 个数据点,现在又添加了 100 个数据点。有没有办法让我的神经网络无需从头开始训练就可以学习整个(更新的)数据集?此外,灾难性干扰是否适用于此?我知道当 NN 尝试学习 "new information" 时,灾难性干扰适用,但我不确定 "updated (due to insertions) information" 是否算作 "new information"。
确实,不幸的是灾难性干扰(或遗忘)适用于您的情况。
但是有一个深度学习的分支专注于这个问题,叫做 Continual Learning。
Online Learning 指适应增量可用/连续输入数据流的模型。
灾难性干扰确实是个问题,具体取决于您的模型、数据和问题。
如果您假设:
- 你的新数据 D2 是 i.i.d,从与原始数据集 D1
相同的分布中采样
- 您的原始模型是使用 'mini-batches' 数据集
训练的
- D2 的大小 >= 使用的小批量的大小
您可以将 D2 拆分成新的 mini-batches 并从您停止的地方继续训练。
但如果不是这种情况,它确实很可能容易受到灾难性遗忘的影响,因为任务名义上是相同的,但领域(数据的基本分布)正在发生变化。在这种情况下,如果对整个(更新的)数据集进行再训练不可行,您将需要研究 Continual Learning 专门用于缓解这种情况的方法。
我有一个在某些数据集上训练过的神经网络。假设数据集最初有 10k 个数据点,现在又添加了 100 个数据点。有没有办法让我的神经网络无需从头开始训练就可以学习整个(更新的)数据集?此外,灾难性干扰是否适用于此?我知道当 NN 尝试学习 "new information" 时,灾难性干扰适用,但我不确定 "updated (due to insertions) information" 是否算作 "new information"。
确实,不幸的是灾难性干扰(或遗忘)适用于您的情况。 但是有一个深度学习的分支专注于这个问题,叫做 Continual Learning。
Online Learning 指适应增量可用/连续输入数据流的模型。
灾难性干扰确实是个问题,具体取决于您的模型、数据和问题。
如果您假设:
- 你的新数据 D2 是 i.i.d,从与原始数据集 D1 相同的分布中采样
- 您的原始模型是使用 'mini-batches' 数据集 训练的
- D2 的大小 >= 使用的小批量的大小
您可以将 D2 拆分成新的 mini-batches 并从您停止的地方继续训练。
但如果不是这种情况,它确实很可能容易受到灾难性遗忘的影响,因为任务名义上是相同的,但领域(数据的基本分布)正在发生变化。在这种情况下,如果对整个(更新的)数据集进行再训练不可行,您将需要研究 Continual Learning 专门用于缓解这种情况的方法。