【论文阅读】Uncertainty-aware Self-training for Text Classification with Few Label

论文下载
GitHub
bib:

@INPROCEEDINGS{mukherjee-awadallah-2020-ust,title 		= "Uncertainty-aware Self-training for Few-shot Text Classification",author 		= "Subhabrata Mukherjee and Ahmed Hassan Awadallah",booktitle 	= "NeurIPS",year 		= "2020",pages      	= {21199--21212}
}

Notice:
这篇论文在arXiv上面的标题为 《Uncertainty-aware Self-training for Text Classification with Few Labels》,推测是发表后更改的。

1. 摘要

Recent success of pre-trained language models crucially hinges on fine-tuning them on large amounts of labeled data for the downstream task, that are typically expensive to acquire or difficult to access for many applications. We study selftraining as one of the earliest semi-supervised learning approaches to reduce the annotation bottleneck by making use of large-scale unlabeled data for the target task. Standard self-training mechanism randomly samples instances from the unlabeled pool to generate pseudo-labels and augment labeled data. We propose an approach to improve self-training by incorporating uncertainty estimates of the underlying neural network leveraging recent advances in Bayesian deep learning. Specifically, we propose (i) acquisition functions to select instances from the unlabeled pool leveraging Monte Carlo (MC) Dropout, and (ii) learning mechanism leveraging model confidence for self-training. As an application, we focus on text classification with five benchmark datasets. We show our methods leveraging only 20-30 labeled samples per class for each task for training and for validation perform within 3% of fully supervised pre-trained language models fine-tuned on thousands of labels with an aggregate accuracy of 91% and improvement of up to 12% over baselines.

预训练语言模型最近的成功关键取决于对下游任务的大量标记数据进行微调,这些数据通常获取成本昂贵或对于许多应用程序来说难以访问。我们将自我训练研究为最早的半监督学习方法之一,通过利用大规模未标记数据来完成目标任务,从而减少注释瓶颈。标准的自训练机制从未标记池中随机采样实例以生成伪标签并增强标记数据。我们提出了一种利用贝叶斯深度学习的最新进展,结合底层神经网络的不确定性估计来改进自我训练的方法。具体来说,我们提出(i)获取函数利用蒙特卡罗(MC)Dropout从未标记池中选择实例,以及(ii)利用模型置信度进行自我训练的学习机制。作为一个应用程序,我们专注于使用五个基准数据集进行文本分类。我们展示了我们的方法,每个任务仅利用每类 20-30 个标记样本进行训练和验证,其性能在完全监督的预训练语言模型的 3% 以内,该语言模型在数千个标签上进行了微调,总体准确度为 91%,并且改进了比基线高出 12%。

UncertainSelf-training的结合

2. 算法描述

Self-training process:
min ⁡ W E x l , y l ∈ D l [ − log ⁡ p ( y l ∣ x l ; W ) ] + λ E x u ∈ S u , S u ⊂ D u E y ∼ p ( y ∣ x u ; W ∗ ) [ − log ⁡ p ( y ∣ x u ; W ) ] (1) \begin{split} & \min_W{\mathbb{E}_{x_l,y_l \in D_l}[-\log{p(y_l|x_l;W)}]} \\ &+ \lambda \mathbb{E}_{x_u \in S_u, S_u \subset D_u} \mathbb{E}_{y \sim p(y|x _u;W^*)}[-\log p(y|x_u;W)] \end{split}\tag{1} WminExl,ylDl[logp(ylxl;W)]+λExuSu,SuDuEyp(yxu;W)[logp(yxu;W)](1)

Uncertain-aware Self-training process:
min ⁡ W , θ E x l , y l ∈ D l [ − log ⁡ p ( y l ∣ x l ; W ) ] + λ E x u ∈ S u , S u ⊂ D u E W ~ ∼ q θ ( W ∗ ) E y ∼ p ( y ∣ f W ~ ( x u ) ) [ − log ⁡ p ( y ∣ f W ( x u ) ) ] (2) \begin{split} & \min_{W, \theta}{\mathbb{E}_{x_l,y_l \in D_l}[-\log{p(y_l|x_l;W)}]} \\ &+ \lambda \mathbb{E}_{x_u \in S_u, S_u \subset D_u} \mathbb{E}_{\widetilde{W} \sim q_\theta(W^*)}\mathbb{E}_{y \sim p(y|f^{\widetilde{W}}(x_u))}[-\log p(y|f^{W}(x_u))] \end{split}\tag{2} W,θminExl,ylDl[logp(ylxl;W)]+λExuSu,SuDuEW qθ(W)Eyp(yfW (xu))[logp(yfW(xu))](2)

其中:

  • q θ ( W ∗ ) q_\theta(W^*) qθ(W)表示Dropout distribution,是一种预估模型不确定性的一种方案,也叫做 Monte-Carlo Dropout
  • E \mathbb{E} E 可以看作是一种平均值,其中它的下标表示所有的可能方案。
  • 对于预测概率 p ( y ∣ f W ( x u ) ) p(y|f^{W}(x_u)) p(yfW(xu))为什么要 log ⁡ \log log计算,可能是为了方便计算,最大似然中将乘法转化为加法。

Account for the teacher uncertain for the pseudo-labels in terms of their predictive variance:

min ⁡ W , θ E x l , y l ∈ D l [ − log ⁡ p ( y l ∣ x l ; W ) ] + λ E x u ∈ S u , S u ⊂ D u E W ~ ∼ q θ ( W ∗ ) E y ∼ p ( y ∣ f W ~ ( x u ) ) [ log ⁡ p ( y ∣ f W ( x u ) ) ⋅ log ⁡ V a r ( y ) ] \begin{split} & \min_{W, \theta}{\mathbb{E}_{x_l,y_l \in D_l}[-\log{p(y_l|x_l;W)}]} \\ &+ \lambda \mathbb{E}_{x_u \in S_u, S_u \subset D_u} \mathbb{E}_{\widetilde{W} \sim q_\theta(W^*)}\mathbb{E}_{y \sim p(y|f^{\widetilde{W}}(x_u))}[\log p(y|f^{W}(x_u)) \cdot \log Var(y)] \end{split} W,θminExl,ylDl[logp(ylxl;W)]+λExuSu,SuDuEW qθ(W)Eyp(yfW (xu))[logp(yfW(xu))logVar(y)]

其中:

  • log ⁡ V a r ( y ) \log Var(y) logVar(y) 表示per-sample weight。对于单个样本 x u x_u xu的损失是 − log ⁡ p ( y ) -\log p(y) logp(y) log ⁡ 1 V a r ( y ) \log \frac{1}{Var(y)} logVar(y)1的组合。这会在老师更确定的错误分类实例(即低方差样本)上对学生模型进行更多惩罚,反之亦然。更加重视低方差样本。
  • Var(y)的定义。
    V a r ( y ) = V a r [ E ( y ∣ W , x ) ] + E [ V a r ( y ∣ W , x ) ] = V a r ( softmax ( f W ( x ) ) ) + σ 2 ≈ ( 1 T ∑ t = 1 T y t ∗ ( x ) T y t ∗ ( x ) − E ( y ) T E ( y ) ) + σ 2 \begin{aligned} Var(y) &=Var[\mathbb{E}(y|W, x)] + \mathbb{E}[Var(y|W, x)] \\ &=Var(\text{softmax}(f^W(x))) + \sigma^2\\ &\approx(\frac{1}{T}\sum_{t=1}^T y_t^*(x)^\mathsf{T}y_t^*(x) - E(y)^\mathsf{T}E(y)) + \sigma^2\\ \end{aligned} Var(y)=Var[E(yW,x)]+E[Var(yW,x)]=Var(softmax(fW(x)))+σ2(T1t=1Tyt(x)Tyt(x)E(y)TE(y))+σ2

D ( X ) = V a r ( X ) = E ( X 2 ) − [ E ( X ) ] 2 D(X) = Var(X) = E(X^2) - [E(X)]^2 D(X)=Var(X)=E(X2)[E(X)]2

注意的是,在代码实现中, σ 2 \sigma^2 σ2表示数据本身存在的噪声,这一步不在置信度考量范围,实际上也没有对此建模。
伪代码:
在这里插入图片描述
回过头来看伪代码,就很清楚了,这里还有几点想要说明一下:

  • S u S_u Su是随机采样的,这是为了节约计算资源,还有就是为了给算法带来随机性,就像是全局梯度下降与随机梯度下降一样。原文中是说使用简单样本还是探索困难样本。
  • R R R是基于BALD指标选择的,是进一步的提高伪标签的质量。

3. 总结

大厂出品必属精品。我读下来本文的核心就是将不确定性(主要是模型不确定性)融入了Self-training中,数学符号语言很丰富,值得学习。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/225290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于嵌入式开发的一些信息汇总:C标准、芯片架构、编译器、MISRA-C

关于嵌入式开发的一些信息汇总:C标准、芯片架构、编译器、MISRA-C 关于C标准芯片架构是什么?架构对芯片有什么作用?arm架构X86架构mips架构小结 编译器LLVM是什么?前端在干什么?后端在干什么? MISRA C的诞生…

​LeetCode解法汇总1631. 最小体力消耗路径

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 描述: 你准备参…

【Linux】使用官方脚本自动安装 Docker(Ubuntu 22.04)

前言 Docker是一种开源平台,用于开发、交付和运行应用程序。它利用了容器化技术,使开发人员能够将应用程序及其依赖项打包到一个称为Docker容器的可移植容器中。这些容器可以在任何运行Docker的机器上快速、一致地运行,无论是开发环境、测试…

make没有更新最新的uImage

在 LCD 驱动的时候发现,linux logo一直弄不出来,猜想可能是因为uImage的问题,就看了一眼 uImage 时间: ​ 我现在的时间是 ,那可能就是没有更新make的时候没有更新,就上网搜了一下用下面的命令输出 uImage&…

数据结构(七):树介绍及面试常考算法

一、树介绍 1、定义 树形结构是一种层级式的数据结构,由顶点(节点)和连接它们的边组成。 树类似于图,但区分树和图的重要特征是树中不存在环路。树有以下特点: (1)每个节点有零个或多个子节点…

为什么 GAN 不好训练

为什么 GAN 不好训练?先看 GAN 的损失: 当生成器固定时,堆D(x)求导,推理得到(加号右边先对log求导,再对负项求导) 然后在面对最优Discriminator时,Generator的优化目标就变成了&…

微积分-三角函数2

三角函数 在上一节中,讨论了如何在直角三角形中定义三角函数,限制让我们扩展三角函数的定义域。 事实上我们可以取任意角的正弦和余弦,而不只是局限于 0 0 0~ π 2 \frac{\pi}{2} 2π​当中。 当然需要注意的是,正切函数对不是对…

指数分布的随机变量

如果连续型随机变量的概率密度满足如下条件: 其中为常数,那么就称服从参数为的指数分布。 指数分布的重要性质---无记忆性:

数据结构(7.5)-- 树扩展之字典树

一、字典树 1、字典树介绍 字典树,也称为“前缀树”,是一种特殊的树状数据结构,对于解决字符串相关问题非常有效。典型 用于统计、排序、和保存大量字符串。所以经常被搜索引擎系统用于文本词频统计。它的优点是: 利用字符串的…

(1)(1.8) MSP(MultiWii 串行协议)(4.1 版)

文章目录 前言 1 协议概述 2 配置 3 参数说明 前言 ArduPilot 支持 MSP 协议,可通过任何串行端口进行遥测和传感器。这允许 ArduPilot 将其遥测数据发送到 MSP 兼容设备(如大疆护目镜),用于屏幕显示(OSD&#xff…

VR智慧眼:为各行业打造3D数字化业务协同平台

自改革开放以来,城镇化建设一直在不断推进实施,如今各城市化速度虽然在不断加快,但随之而来的部分城市开始出现资源短缺、环境污染、交通拥堵、安全隐患等问题,因此为了满足智慧城市大型区域场景数字化升级需求,助力区…

【深入浅出SpringCloud源码探究】「Netflix系列之Ribbon+Fegin」微服务化的负载均衡组件源码剖析与实战开发全流程(Ribbon篇)

微服务化的负载均衡组件源码剖析与实战开发全流程 什么是负载均衡负载均衡的种类服务器端负载均衡(S-LB)客户端负载均衡(C-LB)注解LoadBalancedLoadBalancerAutoConfiguration类LoadBalancerClient类源码分析 ServiceInstanceChoo…

ToolLLM model 以及LangChain AutoGPT Xagent在调用外部工具Tools的表现对比浅析

文章主要谈及主流ToolLLM 以及高口碑Agent 在调用Tools上的一些对比,框架先上,内容会不断丰富与更新。 第一部分,ToolLLM model 先来说主打Function Call 的大模型们 OpenAI GPT 宇宙第一LLM,它的functionCall都知道&#xff0…

python 小程序学生选课系统源码

开发工具: PyCharm,mysql5.7,微信开发者工具 技术说明: python django html 小程序 功能介绍: 学生: 登录,选课(查看课程及选择),我的成绩,…

Axure中动态面板使用及轮播图多种登录方式左侧导航栏之案列

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《产品经理如何画泳道图&流程图》 ⛺️ 越努力 ,越幸运 目录 一、轮播图简介 1、什么是轮播图 2、轮播图有什么作用 3、轮播图有什么特点 4、轮播图适应范围 5、…

解决Chrome同一账号在不同设备无法自动同步书签的问题

文章目录 一、问题与原因?2. 解决办法 一、问题与原因? 1.问题 使用谷歌Chrome浏览器比较头疼的问题就是:使用同一个Google账号,办公电脑与家用电脑的数据无法同步。比如:办公电脑中的书签、浏览记录等数据&#xff0…

C语言----文件操作(二)

在上一篇文章中我们简单介绍了在C语言中文件是什么以及文件的打开和关闭操作,在实际工作中,我们不仅仅是要打开和关闭文件,二是需要对文件进行增删改写。本文将详细介绍如果对文件进行安全读写。 一,以字符形式读写文件&#xff…

Nessus漏洞扫描报错:42873 - SSL Medium Strength Cipher Suites Supported (SWEET32)

个人搭建的windows server 2019服务器,被Nessus工具扫描出现三个漏洞,修复比较过程比较坎坷,特记录下 首先:报错信息: 42873 - SSL Medium Strength Cipher Suites Supported (SWEET32) 104743 - TLS Version 1.0 Protocol Detection 157288 - TLS Version 1.1 Protocol …

uni-app微信小程序隐藏左上角返回按钮

官方文档链接:uni.setNavigationBarTitle(OBJECT) | uni-app官网 (dcloud.net.cn) 首先要明确的是页面间的跳转方式有几种、每一种默认的作用是什么。 uniapp五种跳转方式 第一:wx.navigatorTo 【新页面打开,默认会有返回按钮】第二&#x…

阿里云服务器ECS安全组开启端口教程

阿里云服务器安全组开启端口教程 云服务器 ECS(Elastic Compute Service) 云服务器 ECS(Elastic Compute Service)是一种安全可靠、弹性可伸缩的云计算服务,助您降低 IT 成本,提升运维效率,使您…