级联、多任务与半监督学习

在处理自然语言时,我们常常会遇到多个任务相互依赖的情形。例如,句法分析器以词性标记作为输入,而词性标记本身也是由一个统计模型自动预测得到的。将一个模型的预测结果作为另一个模型的输入,当两个模型相互独立时,称为一个流水线(pipeline)系统。另一种方法是模型级联(model cascading)。在模型级联中,不是将模型A的预测结果作为模型B(句法分析器)的输入,而是将有助于词性预测的中间表示作为句法分析器的输入。换言之,传递给句法分析器的并不是某种特定的词性标注决策,而是标注的不确定性。模型级联在深度学习系统中非常容易实现,只需传递argmax操作之前的向量,甚至是隐层向量之一即可。
一种相关的技术是多任务学习(multi-task learning)。在多任务学习中,我们有多个相关的预测任务(或相互依赖),并期望利用其中一种任务中所蕴涵的信息来提升其他任务的准确率。在深度学习框架下,解决思路是</font color=red>对于不同的任务使用不同的网络,而这些网络之间共享部分结构与参数。通过这种方式,模型的一个核心预测组件(共享结构)将受到所有任务的影响,且一种任务的训练数据可能有助于改善其他任务的预测。
模型级联方法可以很自然的应用于多任务学习框架:我们不只是将词性标注器的中间输出传递给句法分析器,而是将用来计算词性标注表示的计算子图作为句法分析器计算图的输入,并且将句法分析器的误差反向传播至词性标注部分。
另一类相关且相似的方法是半监督学习(semi-supervised learning)。在半监督学习中,我们有任务A的有监督训练数据,希望同时利用其他任务的有标注或者无标注数据来提升任务A的性能。
在半监督学习中,我们对于所关心的任务有少量的训练数据,同时还有其他任务的额外训练数据。我们希望使用附加任务中的监督信息(或者创造合适的附加任务)来提升主任务的预测准确率。在深度学习框架中,可以通过学习基于附加任务的表示,然后将其作为主任务的补充输入或者初始化的方式来进行半监督学习。半监督学习的其它办法还有:在小标注数据上训练一个或多个模型,在对大量未标注数据进行标注。然后再在这些自动标注的数据(可能会根据模型之间的一致性或者其他置信度衡量标准来进行质量筛选)上训练一个新的模型,或者为已有的模型提供额外的特征。这些方法可以归入自学习(self-learning)的领域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值