【多任务学习】多任务学习中的自动任务选择和自动混合(AUTOSEM: Automatic Task Selection and Mixing in Multi-Task Learning)(一)

2023-05-16

AUTOSEM:多任务学习中的自动任务选择和自动混合(一)背景知识

知识结构:

在这里插入图片描述
AUTOSEM: Automatic Task Selection and Mixing in Multi-Task Learning[1]
1) Supervised Learning of Universal Sentence Representations from Natural Language Inference Data[2]
2)Learning to select data for transfer learning with Bayesian Optimization[6]
(1)A Tutorial on Bayesian Optimization of Expensive Cost Functions, with Application to Active User Modeling and Hierarchical Reinforcement Learning[3]
(2)Effective Measures of Domain Similarity for Parsing[4]
(3)Domain Adaptation Using Domain Similarity- and Domain Complexity-based Instance Selection for Cross-domain Sentiment Analysis[5]

本文知识点结构如上述知识导图所示,在[1]中使用了许多已经存在的新知识[2-6],要想客观的了解[1]中的知识需要对其中所使用到的知识点、知识结构有所了解。在[2]中介绍了[1]中所使用的学习框架,这个框架主要是用来做word enbading 问题的。而[6]是一篇经典的迁移学习中使用贝叶斯优化来进行特征、数据选择的文章,给作者了很多的启发。而[3-5]又是[6]中的几个比较重要的使用方法。所以由思维导图可以看出整个文章的思想结构。

知识点总结:

这里介绍一种最新的多任务学习框架,这种方法采用了多臂赌博机架构,主任务和多个辅助任务作为多臂赌博机的各个臂,通过带汤普森优化的方法优化多臂赌博机的臂上权重。这种方式可以自动的选择对主任务有帮助的辅助任务,同时可以帮助人们通过实验间接了解不同数据之间的相似度关系。同大多数迁移学习方式采用数据之间的度量来衡量多个数据集之间的距离不同,本文介绍的方法将通过辅助任务对主任务的辅助效果作为评价标准。通过单一度量(如常用的MMD距离)或者是多个度量统一考虑以及通过学习自适应度量这三种基本方式在迁移学习中具有大量的应用,但这种方式具有一些问题:采用度量的方法找到最合适的度量再对主任务进行训练的方法没有考虑到主任务模型在训练过程中的变化问题,在一个模型训练过程中,不同阶段可能不同的辅助任务对主任务模型的帮助程度不同。同样的,在一个数据集中,不同的数据对主任务的帮助不同,我们不能使用一个固定的度量来衡量整个训练过程中辅助任务的选择。同时主任务、辅助任务的混合率也同样是一个很严重的问题,为了选择合适的混合率,我们需要进行多次的采样和实验来确定,这是一个expensive-cost 方程,对于这种问题,我们习惯于采用贝叶斯优化的方法来对模型进行优化,从而找到最合适的混合率。

基本模型:

本文基本模型引用自[2],模型输入如图1输入两个句子,通过将两个句子转化为文字向量,之后用神经网络分别提取特征,将特征进行整合之后分类即可。
在这里插入图片描述
图1
与[2]中的模型不同的是,在本文中面对的是一个多任务学习问题所以对图1中的模型在分类器部分经行扩展,在全连接层之后分出多个带全连层的分类器,如图2.同时增加BLSTM层作为特征提取的工具进行分类。
在这里插入图片描述
图2

贝叶斯优化:

贝叶斯优化的主要目的是与大部分机器学习算法类似,学习模型的表达形式 ,在一定范围内求一个函数的最大(小)值。 max ⁡ π = x f ( x ) \max _{\pi=x} f(x) maxπ=xf(x)
这类 f ( x ) f(x) f(x)往往很特殊:

  1. 没有解析表达或者形式未知,故而没办法用跟梯度有关的优化方法;
  2. f ( x ) f(x) f(x) 值的确定会受到一些外界干预(如人的干预)。
    贝叶斯优化算法核心步骤如下:
    (1).通过样本点 D = { ( x 1 : , y 1 : ) } D=\left\{\left(x_{1 :}, y_{1 :}\right)\right\} D={(x1:,y1:)}对高斯过程 进行估计和更新。(后简称高斯过程)
    (2).通过提取函数 a ( x ) a(x) a(x) (acquisition function)来指导新的采样。(后简称提取函数)
    高斯过程:假设我们需要估计的模型服从高斯过程,即:
    f ( x ) ∼ G P ( E ( x ) , K ( x , x ′ ) ) f(x) \sim G P\left(E(x), K\left(x, x^{\prime}\right)\right) f(x)GP(E(x),K(x,x))
    这里的协方差矩阵要用到内积的核化,笔者理解为拓展了高斯过程表达其他过程的能力,毕竟在实际问题上直接假设一个过程服从高斯过程稍微有点牵强。
    假设有一组样本点 D = { ( x 1 : t , y 1 t ) } D=\left\{\left(x_{1 : t}, y_{1 t}\right)\right\} D={(x1:t,y1t)}
    为了简便推导,先假设数据提前被中心化,即 f ( x ) ∼ G P ( 0 , K ) f(x) \sim G P(0, K) f(x)GP(0,K),其中:
    K = [ k ( x 1 , x 1 ) … k ( x 1 , x t ) ⋮ ⋱ ⋮ k ( x t , x 1 ) … k ( x t , x t ) ] K=\left[\begin{array}{ccc}{k\left(x_{1}, x_{1}\right)} & {\dots} & {k\left(x_{1}, x_{t}\right)} \\ {\vdots} & {\ddots} & {\vdots} \\ {k\left(x_{t}, x_{1}\right)} & {\dots} & {k\left(x_{t}, x_{t}\right)}\end{array}\right] K=k(x1,x1)k(xt,x1)k(x1,xt)k(xt,xt)
    对于一个新样本 X t + 1 \mathcal{X}_{t+1} Xt+1 ,由于新样本的加入会更新高斯过程的协方差矩阵:
    k = [ k ( x t + 1 , x 1 ) , k ( x t + 1 , x 2 ) , … , k ( x t + 1 , x t ) ] k=\left[k\left(x_{t+1}, x_{1}\right), k\left(x_{t+1}, x_{2}\right), \ldots, k\left(x_{t+1}, x_{t}\right)\right] k=[k(xt+1,x1),k(xt+1,x2),,k(xt+1,xt)]
    协方差矩阵更新过程如下:
    K = [ K k T k k ( x t + 1 , x t + 1 ) ] K=\left[\begin{array}{ll}{K} & {k^{T}} \\ {k} & {k\left(x_{t+1}, x_{t+1}\right)}\end{array}\right] K=[KkkTk(xt+1,xt+1)]
    有了更新后的协方差矩阵就可以通过前t个样本估计出 f t + 1 f_{t+1} ft+1的后验概率分布:
    P ( f t + 1 ∣ D 1 : t , x t + 1 ) ∼ N ( μ , σ 2 ) μ = k T K − 1 f 1 : t σ 2 = k ( x t + 1 , x t + 1 ) − k T K − 1 k \begin{array}{l}{P\left(f_{t+1} | D_{1 : t}, x_{t+1}\right) \sim N\left(\mu, \sigma^{2}\right)} \\ {\mu=k^{T} K^{-1} f_{1 : t}} \\ {\sigma^{2}=k\left(x_{t+1}, x_{t+1}\right)-k^{T} K^{-1} k}\end{array} P(ft+1D1:t,xt+1)N(μ,σ2)μ=kTK1f1:tσ2=k(xt+1,xt+1)kTK1k
    从上述高斯过程可以看出,通过采样可以得到目标函数 f ( x ) f(x) f(x)的概率描述。那么很自然地,我们希望通过采样来精确这种描述。我们看论文的时候经常会在论述acquisition function 的地方看到两种采样思路,一种是explore和exploit:
    Explore:探索新的空间,这种采样有助于估计更准确的 f ( x ) f(x) f(x)
    Exploit:在已有结果附近(一般是已有最大值附近)进行采样,从而希望找到更大的 f ( x ) f(x) f(x)

多臂赌博机

Multi-Armed Bandit问题是一个十分经典的强化学习(RL)问题,翻译过来为“多臂抽奖问题”。对于这个问题,我们可以将其简化为一个最优选择问题。
假设有K个选择,每个选择都会随机带来一定的收益,对每个个收益所服从的概率分布,我们可以认为是Banit一开始就设定好的。举个例子,对三臂Bandit来说,每玩一次,可以选择三个臂杆中的任意一个,那么动作集合Actions = [1, 2, 3],这里的1、2、3分别表示一号臂杆,二号臂杆和三号臂杆。掰动一号号臂杆时,获得的收益服从均匀分布U(-1, 1),也就是说收益为从-1到1的一个随机数,且收益的均值为0。那么二号臂杆和三号臂杆也同样有自己收益的概率分布,分别为正态分布N(1, 1)和均匀分布U(-2, 1)。这里所需要解决关键问题就是,如何选择动作来确保实验者能获得的收益最高。
我们可以从收益的概率分布上发现二号臂杆的收益均值最高,所以每次实验拉动二号即可,最优选择即为二号。但是对于实验者来说收益概率分布是个黑箱,并不能做出直接判断,所以我们使用RL来估计出那个最优的选择。
最简单的做法就是贪心,模型想办法计算每一个action的回报,然后选择回报最大的action进行操作。这种贪心的做法问题就是没有完全探索其它奖励概率的可能性,很容易丢掉最优解。
有一种高级贪心的策略就是按照概率epsilon进行探索,按照uniform distribution选择一个臂进行尝试,按照1-epsilon的概率选择当前情况下回报率最大的action。尽管这种做法比纯贪心的情况好,但是对于下面这种情况,我们通过探索知道action 2的概率远远小于action 1,但还是会以一定的概率反复测试action 2,加大了损失。
Thompson Sampling将多臂赌博机每一个action的回报概率看做一个Beta分布,我们给分布先验概率参数alpha和beta,那么action的回报分布可以被描述成以下函数:
f ( x ; α , β ) =  constant  ⋅ x α − 1 ( 1 − x ) β − 1 = x α − 1 ( 1 − x ) β − 1 ∫ 0 1 u α − 1 ( 1 − u ) β − 1 d u = Γ ( α + β ) Γ ( α ) Γ ( β ) x α − 1 ( 1 − x ) β − 1 = 1 B ( α , β ) x α − 1 ( 1 − x ) β − 1 \begin{aligned} f(x ; \alpha, \beta) &=\text { constant } \cdot x^{\alpha-1}(1-x)^{\beta-1} \\ &=\frac{x^{\alpha-1}(1-x)^{\beta-1}}{\int_{0}^{1} u^{\alpha-1}(1-u)^{\beta-1} d u} \\ &=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha) \Gamma(\beta)} x^{\alpha-1}(1-x)^{\beta-1} \\ &=\frac{1}{\mathrm{B}(\alpha, \beta)} x^{\alpha-1}(1-x)^{\beta-1} \end{aligned} f(x;α,β)= constant xα1(1x)β1=01uα1(1u)β1duxα1(1x)β1=Γ(α)Γ(β)Γ(α+β)xα1(1x)β1=B(α,β)1xα1(1x)β1
这里我们利用gamma函数对分布就行归一化处理,当我们收集到越来越多的实验结果后,我们可以对分布的参数alpha和beta进行更新:
( α k , β k ) ← { ( α k , β k )  if  x t ≠ k ( α k , β k ) + ( r t , 1 − r t )  if  x t = k \left(\alpha_{k}, \beta_{k}\right) \leftarrow\left\{\begin{array}{ll}{\left(\alpha_{k}, \beta_{k}\right)} & {\text { if } x_{t} \neq k} \\ {\left(\alpha_{k}, \beta_{k}\right)+\left(r_{t}, 1-r_{t}\right)} & {\text { if } x_{t}=k}\end{array}\right. (αk,βk){(αk,βk)(αk,βk)+(rt,1rt) if xt̸=k if xt=k
Beta分布有很多与生俱来的性质,随着我们观测到的结果越多,分布的置信区间就越窄,比方说最开始alpha=1, beta=1,当我们观测到3次正回报,5次负回报后,(alpha, beta)=(4, 6),就产生了上图中action 3的概率分布。当我们观测到599次回报和399次零回报的动作后,(alpha, beta)=(600, 400),就产生了上图中action 1的概率分布。
我们可以在K=10的多臂赌博机上对比一下Epsilon-Greedy和Thompson Sampling的实验效果,当轮数较少时,Thompson Sampling可能会以比较大的概率进行探索,较少的情况使用最佳动作,产生比较高的regret,但是轮数上升后,Thompson Sampling的尝试收敛了,总regret数也随着收敛。
在这里插入图片描述
引用:
[1] Han Guo , Ramakanth Pasunuru and Mohit Bansal AUTOSEM: Automatic Task Selection and Mixing in Multi-Task Learning. arXiv:1904.04153.
[2] Alexis Conneau, Douwe Kiela, Holger Schwenk, Loic Barrault, and Antoine Bordes. 2017. Supervised learning of universal sentence representations from natural language inference data. arXiv preprint arXiv:1705.02364.
[3] Eric Brochu, Vlad M Cora, and Nando De Freitas. 2010. A tutorial on bayesian optimization of expensive cost functions, with application to active user modeling and hierarchical reinforcement learning. arXiv preprint arXiv:1012.2599
[4] Barbara Plank, Gertjan van Noord, Effective Measures of Domain Similarity for Parsing, Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics, pages 1566–1576,Portland, Oregon, June 19-24, 2011. c 2011 Association for Computational Linguistics.
[5] Robert Remus ,Domain Adaptation Using Domain Similarity- and Domain Complexity-based Instance Selection for Cross-domain Sentiment Analysis, 2012 IEEE 12th International Conference on Data Mining Workshops.
[6] Sebastian Ruder and Barbara Plank. 2017. Learning to select data for transfer learning with bayesian optimization. arXiv preprint arXiv:1707.05246.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【多任务学习】多任务学习中的自动任务选择和自动混合(AUTOSEM: Automatic Task Selection and Mixing in Multi-Task Learning)(一) 的相关文章

  • 机器学习基础——彻底搞懂Precision\Recall\F1\P-R\ROC

    一直以为自己理解这些概念 xff0c 但是其实只是听说过而已 这些概念的释义来自于周志华教授的 机器学习 xff0c 都属于对机器学习算法的性能度量 一 错误率与精度 还是使用书上的定义写的明确 xff0c test set中所有样本预测对
  • [交叉熵损失函数的由来:KL散度] & [softmax+交叉熵损失函数求梯度 推导]

  • SSH基础操作

    这里写自定义目录标题 SSH基础操作SSH免密登录客户端 快捷登录服务器端 sshd配置配置完成后重启服务器端sshd服务 SSH基础操作 span class token function ssh span span class toke
  • Linux下screen的使用

    关掉xshell之后网站也随着关闭 xff0c 我们可以使用screen命令 xff0c 来让保证退出ssh之后程序继续在后台跑 利用SSH远程连接服务器 xff0c 运行程序需要保证在此期间窗口不能关闭并且连接不能断开 xff0c 否则当
  • SAI 串行音频接口学习

    SAI 简介 串行音频接口 xff08 SAI xff09 xff0c SAI具有灵活性高 配置多样的特点 SAI 通过两个完全独立的音频子模块来实现这种灵活性与可配置型 xff0c 每个音频子模块与多达4个引脚 xff08 SD SCK
  • Tensorflow笔记1:Graph

    参考内容都出自于官方API教程tf Graph 一 Graph类调用 这里使用的是1 15版本 xff0c TF官方为了能够在2 0 43 版本中保持兼容 xff0c 因此调用时使用了tf compat v1 Graph 若安装的就是1 1
  • Tensorflow笔记2:Session

    参考内容都出自于官方API教程tf Session 一 Session类基本使用方法 这里使用的是1 15版本 xff0c TF官方为了能够在2 0 43 版本中保持兼容 xff0c 因此调用时使用了tf compat v1 Session
  • Tensorflow笔记3:Variable

    调用Variable类即可向Graph中添加变量 Variable在创建之后需要给定初始值 xff0c 可以是任意type shape的Tensor 一旦使用初始值完成了初始化 xff0c type和shape都固定 xff0c 除非使用a
  • TensorFlow-Slim API 官方教程

    https blog csdn net u014061630 article details 80632736 TF Slim 模块是 TensorFlow 中最好用的 API 之一 尤其是里面引入的 arg scope model var
  • Tensorflow笔记4:Saver

    Saver类位于tf train中 xff0c 属于训练过程中要用到的方法 xff0c 主要作用就是保存和加载save amp restore ckpt 最简单的保存应用举例 xff1a saver span class token pun
  • Tensorflow笔记4:学习率衰减策略tf.train.cosine_decay_restarts

    TF在learning rate decay py中提供了几种非常骚气的学习率下降方法 xff0c 今天就来玩一玩 只需要简单的参数设定 xff0c 就能够产生神奇的lr衰减效果 首先简介lr的一般使用方法 xff1a lr span cl
  • ffmpeg使用笔记

    视频压缩 ffmpeg i lt input gt vcodec libx264 crf 25 lt output gt 分辨率调整 ffmpeg i 123 mp4 s 960x540 1 mp4 视频截取 截取 xff08 t1 43
  • Pytorch 入门

    1 加载模型 seg model 61 torchvision models detection maskrcnn resnet50 fpn pretrained 61 True seg model 61 seg model cuda 1
  • 小白之通俗易懂的贝叶斯定理

    原文链接 xff1a https zhuanlan zhihu com p 37768413 概率论与数理统计 xff0c 在生活中实在是太有用了 xff0c 但由于大学课堂理解不够深入 xff0c 不能很好地将这些理论具象化并应用到实际生
  • tf.variable_scope中的reuse

    一 两种scope xff1a variable与name tf variable scope 是对变量进行命名管理 xff0c 而tf name scope 是对算子 op 进行命名管理 xff0c 二者相互不影响 见下例 xff1a i
  • HTML+CSS 简易搜索框

    搜索框是页面中很常见的一种 xff0c 下面分享一段简单搜索框案例 xff0c 直接上代码 HTML部分 lt DOCTYPE html gt lt html gt lt head gt lt meta charset 61 34 UTF
  • frp内网穿刺/反向代理教程

    文章目录 前言一 明确基本概念二 frp下载与使用1 云服务器做为Server端2 GPU服务器做为Client端3 远程访问 三 云服务器防火墙端口开启 前言 frp 是一个高性能的反向代理应用 xff0c 可以帮助开发者轻松地进行内网穿
  • Keras模型基本流程

    文章目录 前言一 Keras流程二 Keras中的模型定义1 基于Sequential 类2 基于函数式API 前言 目前打算看tensorflow probability模块 xff0c 但是发现整个都是适配Keras的 xff0c 很多
  • pytorch自动混合精度训练

    from torch cuda amp import autocast GradScaler Init Step 1 Create Model model device start epoch 61 create model opt if
  • Linux系统查看CPU个数&超线程&线程数

    小命令 xff1a Linux查看CPU详细信息 简书 jianshu com Intel CPU产品规范 xff1a 英特尔 产品 xff1a 处理器 xff0c 英特尔 NUC 迷你电脑 xff0c 内存和存储 xff0c 芯片组 in

随机推荐