半监督分类算法_【源头活水】Mixtext 半监督分类

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

作者:知乎—杨帆

地址:https://www.zhihu.com/people/yang-fan-27-12

深度学习的成功一半要归功于模型和计算力,另一半则要归功于数据。
在深度学习的很多领域,监督学习已经取得了很好的成果。当然,前提是需要有大量且高质量的标注数据集,通常没有标注的数据集是很多且容易获得的,在深度学习初始阶段,为了解决这个问题,很多公司雇佣廉价劳动力来做数据标注,费时费力还不讨好,当手上有部分标注好的数据集大量未标注数据的时候,如何彻底利用这些数据来建立一个泛化性能能够比肩拥有大量标注数据集的监督学习模型是一个值得深入研究的问题。

01

背景 在NLP分类任务中同样存在标注数据少的问题,现有的半监督学习:(1)利用VAEs(variational auto encoders )变分自编码重构句子,通过学习重构句子的隐藏变量预测句子的标签(2)通过self-training使模型对无标签的数据输出预测的置信度再加入到训练集去训练模型(3)使用添加扰动(对抗训练)或者数据增强的形式进行训练(4)使用无标签数据训练再用有标签数据微调。上述提及到的方法没有同时使用有标签和无标签数据,在训练过程中可能会过拟合有标签的数据,造成模型泛化性能的降低。Mixtext要做的就是在训练过程中同时利用有标签数据和无标签数据来生成新样本,以增强模型的泛化性能。

02

亮点 1. 隐空间向量插值
63bb68fe133347c1f9a2f8d0c4639115.png Mixtext示意图
对于两个有标签的样本,在隐空间内进行线性插值获得新的样本,新样本的标签也采用原样本标签的线性插值: 148aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg NLP采用了embedding的思想把句子映射到高维空间,在高维空间内插值是合理的,最近 (Jawa-har et al., 2019) 研究表明Bert的不同层有不同的作用,这些层抓住了信息表达的不同形式,从语法层次到语义层次。例如第9层,语义任务表现最出色,第3层预测句子长度最出色。在插值的时候需要考虑  178aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  的取值和选定的隐含层。 178aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  的选取采用lambda分布: 198aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg 其中  1b8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  为人为选定的参数,在各个类别比较少的时候,取值偏大,论文中选为2或16,这个时候  178aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  越在0.5左右,此时会产生新的样本,当各个样本的数量大于200时,论文选取的值为0.2或者0.4,这个时候  178aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  越在0.1左右,此时会产生相似样本,只是样本被添加了部分噪音。
2e3bc1a0b3e4b04bb73cc97febe60282.png 半监督插值
上图为Mixtext的结构示意图,输入 238aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  ,  248aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  分别为有标签数据、无标签数据、无标签数据的增强数据,  258aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  采用回译法获得。对应的标签为  278aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  。其中无标签数据的Label靠猜测获得。  298aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  和 2a8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  相同。 将数据输入模型就能获得模型对其标签分布的预测,再对无标签数据及其增强数据的标签概率做加权平均作为其预测标签。其中  2b8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  和  2e8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  大小由人为给定,论文中直接给定的是1和0。 2f8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg 再对标签锐化,使得其更像真实标签: 318aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg T取为0.5 。 这样所有的样本就有了标签,在训练的时候,Mixtext随机从  338aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  中抽取两个样本在隐空间内作插值。 2. 损失函数设计 样本的损失函数包括两大类: (1)样本都来自有标签数据集  358aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  ,直接采用有监督学习的损失函数。 (2)样本都来  378aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  ,采用一致性损失,无标签数据和增强数据的分布一致性,代表为KL散度。 398aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg (3)标签猜测最小熵,认为只有猜测的标签熵最小才是准确的猜测,通过损失函数来控制猜测行为。 3a8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg 最终的损失函数表达为: 3d8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg

03

实验结果

34a3ac3b9d070fcd7eae13e3912860d2.png
作者在四个不同的数据上做了测试,在样本比较少的时候有明显的提升,在样本量比较大是基本上就没有效果了。
ffa286d3b0202a6ecc2613184da2944d.png
另外对比了一下不同的学习模型的表现,说明了mixtext的多训练几个epoch也不会严重过拟合。
941b1dacc2fc9c303845f43d6511b96c.png
最后研究了一下选取哪些层对结果提升最大,发现对于bert-base(12层)选取7,9,12的表现最好。

04

个人实验和思考 显然mixtext是一个很有趣的研究,隐空间插值这个很容易想到,但是能做出这么多花样,作者还是下了不少功夫的。我在看到这篇论文以后也是很兴奋的跑到中文数据集上去做测试,结果并没有我想的那么美好。 (1)我在测试时,没有对无标签数据集数据增强,因为google翻译的api实在是太拉垮了。后来查阅了相关文献发现,上面提到的一致性损失对半监督学习十分重要,对无标签数据,希望微小扰动下数据输出基本没有变化,在mixtext中这种微小扰动表现在回译法引起的输入扰动和无标签数据的插值增强的扰动,因此数据增强是体现一致性损失的重要环节。 (2)测试了  1b8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  的取值,确实对于各个样本的量大于200时,选取0.2或者0.4的效果是要好于2或16的,在大样本时插值新样本效果并不好。在插值的时候限制了  448aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  的权重更大,插值得到的结果被认为是  448aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  的增强,此时假设混合体的标签更接近  488aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  是合理的,这和一致性损失的要求是一致的,而当  178aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  接近0.5时再假设标签是线性混合可能已经不再正确。 (3)测试了选取不同bert的层,发现确实是{7,9, 12}层的表现好于低层。

05

可能的改进方向 (1)采用小的  178aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  ,那么可以认为新数据是原数据的增强数据,如果  4b8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  ,则  4c8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  。  4b8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  ,则  4e8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  。则计算损失函数时,监督的按照监督的算交叉熵,无监督的按照无监督的算一致性损失,一致性损失可以用KL散度也可以用L2 Norm,另外对所有的数据都可以使用熵最小损失。 (2)尝试不同的NLP数据增强,包括回译法,同义词替换,语句翻转等。 (3)  4f8aa0eb-ad3c-eb11-8da9-e4434bdf6706.svg  可以随着时间的增加,从零开始逐渐增大到最大值,因为越是往后训练模型越是准确。

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。

db527b5060f6ea923ab9b4a01e63a2ce.png

源头活水”历史文章

  • “她”教你从失败中学习

  • 丢弃Transformer,FCN也可以实现E2E检测

  • 目标检测新范式!港大同济伯克利提出Sparse R-CNN

  • Meta Transfer Learning for Few Shot Learning

  • 浅谈多任务与联邦学习

  • Stacked Capsule AutoEncoder-堆叠的胶囊自编码器

  • 针对强化学习中策略迁移的选择性探索算法

  • 详解Transformer (Attention Is All You Need)

  • 浅谈图上的自监督学习——对比学习

  • 想为特征交互走一条新的路

  • Grad-CAM论文总结

  • CNN中编码了多少位置信息?

  • ICLR 2020 所有RL papers全扫荡

  • NeurIPS 2020 | Glance and Focus: 通用、高效的神经网络自适应推理框架

  • 经典重温:CVPR 2010 "What is an object?"

更多源头活水专栏文章,

请点击文章底部“阅读原文”查看

653746d09b625f230b2e1fc4c02a6516.png 0dc230c525cf51c3c753c724119a0b70.gif

分享、点赞、在看,给个三连击呗!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值