day3--SIATL模型

SIATL模型

SiATL是一个标准的基于预训练模型,并把它的权重迁移到一个分类器并增加了一个任务特定层。

下面是它的一个图例:

ULMFiT & SiATL

ULMFiT (Universal Language Model Fine-tuning) 使用和ELMo类似的流程:

  1. 使用通用数据预训练LM,模型使用了3层的AWD-LSTM。

  2. 在特定任务数据上精调LM,其中使用到差异精调和倾斜三角lr两个策略。

  3. 以LM作为初始值,精调特定任务分类模型,其中使用到逐层解冻、差异精调和倾斜三角lr三个策略。经过AWD-LSTM之后,输出给分类器的向量为三个向量的拼接: 

  • 最后一层最后一个词对应的向量;

  • 最后一层每个词向量做max pooling;

  • 最后一层每个词向量做mean pooling。

论文中提出了几个优化策略,能够提升精调后模型的最终效果。

论文中的实验主要针对各种分类任务,相比于之前最好的结果,ULMFiT把分类错误率降低了18-24%。

论文中也设计了实验来说明流程中第二步(在特定任务数据上精调LM)的作用。结果表明第二步的加入,能够让第三步的分类任务在很少的数据量下获得好的结果。只要使用 1%~10%的标注数据,就能达到不加第二步时的模型效果。

作者也设计了去除实验验证论文中提出的三个策略的效果:差异精调(discr)、倾斜三角lr(stlr)、逐层解冻(Freez)。结果表明相比于其他人提出的策略,这几个策略能获得更好的结果。而且,相比于不使用discr和stlr机制的精调策略(Full),ULMFiT模型更稳定,没出现灾难性遗忘。

之后的另一篇论文 An Embarrassingly Simple Approach for Transfer Learning from Pretrained Language Models 建议了一些新的策略,解决精调时的灾难性遗忘问题。模型称为 SiATL (Single-step Auxiliary loss Transfer Learning)。SiATL只包含两个步骤:无监督数据预训练LM、精调分类模型。但在精调分类模型时,SiATL把LM作为辅助目标加入到优化目标函数当中。SiATL的第二步相当于把ULMFiT的第二步和第三步一起做了。所以它们的流程其实是一样的。

预训练模型使用的是两层LSTM+Linear,而分类模型在预训练模型的上面增加了一层带self-attention的LSTM和输出层。SiATL建议的几个策略:

论文发现辅助LM目标对于小数据集更有用,可能是辅助LM减轻了小数据集上的过拟合问题。其中的系数  ,论文实验发现初始取值为 0.2,然后指数下降到 0.1效果最好。  的取值需要考虑到  和  的取值范围。这个结论和ULMFiT中验证第二步流程作用的实验结果相同,也侧面说明了它们本质上差不多。 

另一个发现是如果预训练用的无监督数据和任务数据所在领域不同,序贯解冻带来的效果更明显。这也是合理的,领域不同说明灾难性遗忘问题会更严重,所以迁移知识时要更加慎重,迁移过程要更慢。序贯解冻主要就是用途就是减轻灾难性遗忘问题。

论文还发现,和ULMFiT相比,SiATL在大数据集上效果差不多,但在小数据集要好很多。

总结下 ULMFiT 和 SiATL:

  • ULMFiT使用序贯训练的方式组合特定任务LM和任务目标函数,而SiATL使用同时训练的方式,也即加入辅助LM目标函数。

  • 它们建议的策略都是在解决灾难性遗忘问题,也都解决的不错。可以考虑组合使用这些策略。

  • 它们在小数据集上都提升明显,只要使用 1%~10% 的标注数据,就能达到之前的效果。

  • 虽然它们只在分类任务上验证了各自的效果,但这些策略应该可以推广到其他任务上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆有库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值