灾难性遗忘"/>
灾难性遗忘
有时,你需要对预先训练的模型进行微调,以添加新标签或纠正某些特定错误。这可能会出现“灾难性遗忘”的问题。而伪排练是一个很好的解决方案:使用原始模型标签实例,并通过微调更新进行混合。
当你优化连续两次的学习问题可能会出现灾难性遗忘问题,第一个问题的权重被用来作为第二个问题权重的初始化的一部分。很多工作已经进入设计对初始化不那么敏感的优化算法。理想情况下,我们的优化做到最好,无论权重如何初始化,都会为给定的问题找到最优解。但显然我们还没有达到我们的目标。这意味着如果你连续优化两个问题,灾难性遗忘很可能发生。
这一点在Hal Daumé博客文章得到了很好的体现,最近在Jason Eisner的Twitter上重申了这一点。Yoav Goldberg也在他的书中讨论了这个问题,并提供了关于使用预先训练的矢量的更好的技术细节。
spaCy中的多任务学习
灾难性的遗忘问题最近对于spaCy用户变得更加相关,因为spaCy v2的部分语音,命名实体,句法依赖和句子分割模型都由一个卷积神经网络产生的输入表示。这允许各种型号共享了大部分的权重,使得整个模型非常小 – 最新版本只有18MB,而之前的线性模型几乎有1GB。多任务输入表示法也可以通过该doc.tensor属性用于其他任务,例如文本分类和语义相似度判定。
SPACY V2.0.0A10
为了帮助你避免灾难性遗忘问题,最新的spaCy v2.0 alpha模型将多任务CNN与本地CNN进行混合,具体到每个任务。它允许你单独更新任务,而无需写入共享组件。
然而,在所有这些模型之间共享权重存在一个微妙的陷阱。假设你正在解析短命令,那么你有很多例子
更多推荐
灾难性遗忘
发布评论