论文笔记:Learning how to Active Learn: A Deep Reinforcement Learning Approach
Learning how to Active Learn: A Deep Reinforcement Learning Approach
2018-03-11 12:56:04
1. Introduction:
对于大部分 NLP 的任务,得到足够的标注文本来进行模型的训练是一个关键的瓶颈。所以,active learning 被引入到 NLP 任务中以最小化标注数据的代价。AL 的目标是通过识别一小部分数据来进行标注,以此来降低 cost,选来最小化监督模型的精度。
毫无疑问的是,AL 对于其他语言来说,特别是 low-resource languages,是非常重要的,因为其 annotation 通常很难获取,标注预算不太大。这种设置是 AL 很自然的应用,然而,很少有工作完成这个部分。一个潜在的原因是:大部分AL algorithm 需要 data 的一小部分作为 “seed set” 来学习一个基础的分类器,可以用于后续的主动数据选择(Active data selection)。然而,在低资源设定下给定匮乏的数据,这个假设使得标准的方法变的不可实施。
本文中,我们提出 PAL,简称:Policy based Active Learning,是一种新颖的方法来从数据中,学习一个 dynamic AL strategy。这使得该策略可以应用于其他设定,如:cross-lingual applications。我们的算法不需要一个固定的 heuristic,而是去学习如何主动地选择数据,构成了一个强化学习问题。一个智能的 agent,必须决定是否序列的选择数据进行标注,其中,决策策略是利用 deep Q-network 来学习的。该策略是利用观测到的:句子的内容信息(content information),监督模型的分类及其置信度(the supervised model's classifications and its confidence)。对应的,一个丰富、动态的策略可以通过标注决策的历史序列来进行标注新的数据中进行学习。
此外, 为了降低目标语言对数据的依赖,而且可能是 low resource,我们可以在另一个语言中AL的策略迁移到目标语言当中(we first learn the policy of active learning on another language and then transfer it to the target language)。在一个 high resource language 上学一个策略是很简单的,因为有大量的数据,如:English。我们构建cross-lingual word embeddings 来学习匹配的数据表示,使得学习到的策略可以轻易地移植到其他语言中。
我们的工作与前人在 NLP 上 AL 的探索不同。大部分前人的 AL algorithms 是研发以基于一种语言用于 NER tasks,然后用于该语言。另一个主要的不同在于,许多 AL algorithms 利用固定数据的启发式选择(use a fixed data selection heuristic),例如:不确定性采样(uncertainty sampling)。然而,在我们的算法中,我们显示的利用 uncertainty information 作为RL agent 的一个主要观测。
2. Methodology:
2.1 Active learning as a decision process
AL 是用于标注数据的简单算法,首先从一个未标注的数据集中选择一些 instances,然后通过一个人工环节来进行标注,然后依次循环,直至满足某一停止标准,即:the annotation budget is exhausted。通常,这个选择函数是基于某一预先训练模型的估计,此时已经在每一个阶段拟合标注的数据集,其中,数据点,是依赖于该模型的预测不确定性进行选择的(the datapoints are selected based on the model's predictive uncertainty),or divergence in predictions over an ensemble。这些方法的关键 idea 在于:find the instances on which the model is most likely to make errors, 即:找到使得模型最可能犯错的那些数据点。这样,在他们的标注以及包含后,该模型在此类 unseen data 上变的鲁棒。
AL 算法的过程可以看做是 decision process,将 AL algorithm 看做是序列决策过程,AL的阶段对应系统的状态(the stages of active learning corresponding to the state of the system)。Accordingly,the state corresponds to the selected data for labelling and their labels, and each step in the active learning algorithm corresponding to a selction action, wherein the heuristic selects the next items from a pool. 当预算消耗完毕的时候,该过程终止。

2.2 Steam-based learning:
之所以会有这个假设,是因为想把 active learning 看做是序列决策问题,用 DRL 来解决。所以,这里抛弃了传统的基于 pool 的那种思路,用这种顺序处理的做法。
2.2.1 State:
由三个部分构成:
content representation : 用现有的 CNN 来提取句子的feature;
representation of marginals :
confidence of sequential prediction : 序列估计的置信度
2.2.2 Action:
动作就是选择 或者 不选择
2.2.3 Reward:
奖励是根据 held-out performance 进行评价的,即:根据选择某一动作后,是否使得验证集的性能得到了提升,给予 pos or neg 的奖励;
2.2.4 Budget:
总得需要标注的 instance 的个数
2.2.5 Reinforcement Learning:
这里用的就是 DQN 算法,具体可以参考其他博客。

2.3 Cross-lingual policy transfer :
这里进行跨语言策略迁移的目的是:为了处理数据量比较少的语言中的 active learning 问题。作者采用 Transfer learning 的方法,在数据量丰富的数据集上学习一个比较好的 policy,然后将这种策略应用到 数据量较少的 domain 或者 task 上。

可以看到这个 Algorithm 2 与 Algorithm 1 很大的不同在于输入多了一个 policy,而这个 policy 是在 source language 上学习出来的。
2.4 Cold-start transfer :
以上迁移学习方法有如下两个局限性:
1. the requirement for held-out evaluation data ; 需要 held-out 数据
2. the embedding of the oracle annotation inside the learning loop 循环内部需要手动标注
前者意味着需要更多的监督信息,后者需要实时处理,并且需要人工参与。
For this data and -communication-impverished setting, denoted as cold-start ,
==>> 我们仅仅允许一次给 target data 请求标注的机会;
==>> 不用 held-out data,不进行策略更新; 即: the agent can select a batch of unlabeled target instances for annotations, but can not use these resulting annotations or any other feedback to refine the selection.
在这种更加困难的情况下,我们采用 pre-trained model,使得 the agent 可以在缺乏 feedback 的情况下,做出更加具有信息量的决策。

论文笔记:Learning how to Active Learn: A Deep Reinforcement Learning Approach的更多相关文章
- 论文笔记之:Dueling Network Architectures for Deep Reinforcement Learning
Dueling Network Architectures for Deep Reinforcement Learning ICML 2016 Best Paper 摘要:本文的贡献点主要是在 DQN ...
- 论文笔记之:Active Object Localization with Deep Reinforcement Learning
Active Object Localization with Deep Reinforcement Learning ICCV 2015 最近Deep Reinforcement Learning算 ...
- 18 Issues in Current Deep Reinforcement Learning from ZhiHu
深度强化学习的18个关键问题 from: https://zhuanlan.zhihu.com/p/32153603 85 人赞了该文章 深度强化学习的问题在哪里?未来怎么走?哪些方面可以突破? 这两 ...
- 论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning
论文笔记之:Action-Decision Networks for Visual Tracking with Deep Reinforcement Learning 2017-06-06 21: ...
- Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记
Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记 arXiv 摘要:本文提出了一种 DRL 算法进行单目标跟踪 ...
- 论文笔记之:Asynchronous Methods for Deep Reinforcement Learning
Asynchronous Methods for Deep Reinforcement Learning ICML 2016 深度强化学习最近被人发现貌似不太稳定,有人提出很多改善的方法,这些方法有很 ...
- 论文笔记之:Deep Reinforcement Learning with Double Q-learning
Deep Reinforcement Learning with Double Q-learning Google DeepMind Abstract 主流的 Q-learning 算法过高的估计在特 ...
- 论文笔记之:Playing Atari with Deep Reinforcement Learning
Playing Atari with Deep Reinforcement Learning <Computer Science>, 2013 Abstract: 本文提出了一种深度学习方 ...
- 论文笔记之:Human-level control through deep reinforcement learning
Human-level control through deep reinforcement learning Nature 2015 Google DeepMind Abstract RL 理论 在 ...
随机推荐
- IIS8无法通过IP访问解决办法
今天配置在Windows server 2012 R2 上配置IIS8时,出现局域网内无法使用IP访问站点的问题,查找资料依然无法解决.最后发现IIS8配置好主机名后无法使用主机IP访问站点,只能使用 ...
- JavaScript--定时器setTimeout()、clearTimeout(var param)和setInterval()、clearInterval(var param)
1.setTimeout().clearTimeout(var param) setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,只调用一次 clearTimeout() 方法可取 ...
- KVM_webvirtmgr
一.webvirtmgr安装前说明: 1:操作做系统:centos7.2_x86_64 2:安装参考出处1:https://github.com/retspen/webvirtmgr/wiki/Ins ...
- JavaScript 函数声明与函数表达式的区别 函数声明提升(function declaration hoisting)
解析器在向执行环境中加载数据时,对函数声明和函数表达式并非一视同仁.解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问).至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真的被 ...
- Java函数接口实现函数组合及装饰器模式
摘要: 通过求解 (sinx)^2 + (cosx)^2 = 1 的若干写法,逐步展示了如何从过程式的写法转变到函数式的写法,并说明了编写"[接受函数参数]并返回[能够接受函数参数的函数]的 ...
- 20165305 苏振龙 《Java 程序设计》第一次测试总结
第一个代码运行结果截图 功能:从1到5305进行求和 第二个代码运行结果截图 代码托管 第三个代码运行结果截图 (1)源文件的名字为Person.java (2)生成2个字节码文件,名字为Person ...
- 使用Flask-CKEditor集成富文本编辑框
使用Flask-CKEditor集成富文本编辑框 富文本编辑器即所见即所得编辑器,类似于文本编辑软件.它提供一系列按钮和下拉列表来为文本设置格式,编辑状态的文本样式即最终呈现出来的样式.在Web程序中 ...
- JAVA中异常状况总结
之前在<会当凌绝顶>这本书中学到过对于异常处理的知识,当时也是根据书上的代码,自己进行编写大概知道是怎么回事儿,王老师给我们上了一节课之后,发现异常处理可以发挥很大的作用. 通过在网络上 ...
- Linux基础命令---文本过滤coi
col 过滤掉影响阅读的控制字符,使用重定向符把说明手册的内容输出到文本文件时,控制字符就成乱码.col指令可以过滤掉控制字符,使文本可读.col从标砖输入读取内容,输出到标准输出.col在读取字符时 ...
- golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题
golang学习笔记12 beego table name `xxx` repeat register, must be unique 错误问题 今天测试了重新建一个项目生成新的表,然后复制到旧的项目 ...