Active Learning 主动学习
最近读了一篇paper,题目是An MRF Model-Based Active Learning Framework for the Spectral-Spatial Classification of Hyperspectral Imagery。(题目这么长我也不想的......)这篇文章主要说了马尔科夫随机场还有active learning (AL)结合的问题。刚开始让给我学习AL的时候我是拒绝的,因为网上根本很少资料好吗?!居然还有一大堆关于如何教育孩子的相关结果......所以我就决定为我们机器学习领域的AL正名,它可不是教育孩子的方法哦~~
PS:如果你把机器学习算法看作自己的孩子,上面那句话当我没说....另外,请收下我的膝盖...
絮絮叨叨一大堆,让我们进入正题吧~~关于AL的定义,似乎一直没有很确切的定论,那么首先让我们看看维基百科是怎么说的:
主动学习是半监督机器学习的一个特例,在主动学习中,一个学习算法可以交互式的询问用户(或其他信息源)来获得在新的数据点所期望的输出。
Active learning is a special case of semi-supervised machine learning in which a learning algorithm is able to interactively query the user (or some other information source) to obtain the desired outputs at new data points.
不知道大家感觉怎么样,反正我感觉这个解释很差强人意。根据维基百科的描述,主动学习算法的一部分训练样本的标签是在算法运行的过程中主动询问用户才得到的。那么我认为这并不算是一种半监督的学习方法。众所周知,半监督学习方法是在不需要人工干预的条件下由算法自行完成对无标记数据的利用,这明显与上面的说明相悖。
鉴于维基百科上给出的定义让我很不满意(画外音:卧槽,你以为你是谁啊!!!),所以我根据论文中对主动学习的描述以及自身的理解从AL适用范围的角度做出下面的定义:
在某些情况下,没有类标签的数据相当丰富而有类标签的数据相当稀少,并且人工对数据进行标记的成本又相当高昂。在这种情况下,我们可以让学习算法主动地提出要对哪些数据进行标注,之后我们要将这些数据送到砖家那里让他们进行标注,再将这些数据加入到训练样本集中对算法进行训练。这一过程叫做主动学习。
简直通俗易懂有木有~~从我给出的定义上我们可以看出来,主动学习最重要的部分就是选择策略,即选择哪些数据提出标注请求。当然,通常我们对这种策略的要求是迭代次数尽量少并且结果尽量更加精确。
另外,由于是学习算法自己对样本提出要求,那么用来训练的样本数量一般是远远低于普通的学习方法的。这个道理很好理解啊,因为只有算法自己最了解自己吗~~就像女人最了解女人一样,所以女生的心思不要去猜,猜也猜不到,说不定还会付出比她真正需要的多很多倍的努力,结果却不一定很完美,这真是个悲伤的故事~~跑题了,跑题了....sorry!!!
下面我们就来建立以下主动学习(AL)的模型吧~~
首先当然是notation啦~我们定义为最开始的训练样本集,当然,这里面的数据都是有标记的。定义
为未被标记的候选集,简称备胎。OK,就这两个数据集就可以说明问题了。
我们不妨形象的比喻一下,从前有个白富美叫做学习算法,她的目标就是经历众多的男人从而完善自身。在她出生时,她的父亲算法工程师给她安排了一个男人列表,也就是。可惜,在睡遍,哦不,是经历遍
里面的男人后,她还是觉得自己不够完美,用数据量化一下就是她的全局精确度(OA)不够高。既然这样,学习算法小姐就开始在备胎里也就是
里寻找下一个男人。一旦有男人满足了学习算法小姐的某种需求(也就是我们后面要讲到的选择策略),那么这个男人就会被挑出来,送往专家那里打上诸如“高富帅”,“欧巴”等等的标签中的一种,然后被收入后宫
中。然后这个循环就会这样继续下去,直到学习算法小姐的全局精确度(OA)达到了要求,她就变成了女神喽~~(说起来真是个悲伤的故事...)
从上面的故事可以看出,主动学习这个过程最重要的就是两点:一、由学习算法主动提出对未标记的样本的标记需求;二、选择策略相当重要。另外,我从论文中的数据看出,主动学习过程的收敛也是很快的。
下面我想说说选择策略的问题,论文中提到了三种策略,分别是RS,LC和BT。为了一般化,我在这里只对多分类(也就是有很多种类标签)的情况进行说明。
RS:
即random selected,随机选择。顾名思义,这种方法是在中随机选择未标记的数据。
LC:
,策略公式如上所示。其中y为类标签,m为一实数,是标签的种类。这个式子的意思是寻找
中,最难判别类别的数据
,也就是说,对于这个
,现有的分类器没有足够的自信心。这样的数据应该被人工标注,因为它的信息量很大。
BT:
,策略公式如上所示。其中m+指的是使式子前半部分取最大值的m,后半部分取最大值时,要去除掉这个m。我们不妨设使前半部分最优的m值为m1,后半部分为m2。如果要达到最优化的目标,那这式子前后两部分的结果应该十分相近,也就说明了这个样点很难区分到底是m1和m2哪一类的。这样的数据应该被人工标注,因为它的信息量很大。
选择策略也说完了,关于选择策略可能有些地方说的不清楚,如果大家不满意的话,可以直接去看我最开始提到的那篇论文,说得更加明白。
Active Learning 主动学习的更多相关文章
- Active Learning主动学习
Active Learning主动学习 我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好.但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家 ...
- [Active Learning] 01 A Brief Introduction to Active Learning 主动学习简介
目录 什么是主动学习? 主动学习 vs. 被动学习 为什么需要主动学习? 主动学习与监督学习.弱监督学习.半监督学习.无监督学习之间的关系 主动学习的种类 主动学习的一个例子 主动学习工具包 ALiP ...
- 简要介绍Active Learning(主动学习)思想框架,以及从IF(isolation forest)衍生出来的算法:FBIF(Feedback-Guided Anomaly Discovery)
1. 引言 本文所讨论的内容为笔者对外文文献的翻译,并加入了笔者自己的理解和总结,文中涉及到的原始外文论文和相关学习链接我会放在reference里,另外,推荐读者朋友购买 Stephen Boyd的 ...
- Active Learning
怎么办?进行Active Learning主动学习 Active Learning是最近又流行起来了的概念,是一种半监督学习方法. 一种典型的例子是:在没有太多数据的情况下,算法通过不断给出在决策边界 ...
- 主动学习——active learning
阅读目录 1. 写在前面 2. 什么是active learning? 3. active learning的基本思想 4. active learning与半监督学习的不同 5. 参考文献 1. ...
- 【主动学习】Variational Adversarial Active Learning
本文记录了博主阅读ICCV2019一篇关于主动学习论文的笔记,第一篇博客,以后持续更新哈哈 论文题目:<Variational AdVersarial Active Learning> 原 ...
- 主动学习(Active Learning)
主动学习简介 在某些情况下,没有类标签的数据相当丰富而有类标签的数据相当稀少,并且人工对数据进行标记的成本又相当高昂.在这种情况下,我们可以让学习算法主动地提出要对哪些数据进行标注,之后我们要将这些数 ...
- Recorder︱深度学习小数据集表现、优化(Active Learning)、标注集网络获取
一.深度学习在小数据集的表现 深度学习在小数据集情况下获得好效果,可以从两个角度去解决: 1.降低偏差,图像平移等操作 2.降低方差,dropout.随机梯度下降 先来看看深度学习在小数据集上表现的具 ...
- [Machine Learning] Active Learning
1. 写在前面 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi ...
随机推荐
- 【redis 学习系列07】Redis小功能大用处01 慢查询分析以及Redis Shell
Redis提供了5种数据结构已经足够强大,但除此之外,Redis还提供了诸如慢查询分析.功能强大的Redis Shell.Pipeline.事务与Lua脚本.Bitmaps.HyperLogLog.发 ...
- 本地访问weblogic控制台无反应,关闭linux操作系统防火墙
有时候,我们在Linux操作系统上成功启动了weblogic,也查看了7001端口的状态是开启的.但是访问weblogic控制台没有反应,也没有报错. 使用 netstat -ano | grep 7 ...
- arcgis python RefreshActiveView CLEAR_SELECTION
import arcpy mxd = arcpy.mapping.MapDocument("CURRENT") df = arcpy.mapping.ListDataFrames( ...
- react-native-swiper设定高度的方法(设置rn轮播图所占高度)
效果图: 直接上解决方案: 1.在Swiper标签外套一层View <View style={styles.container}> <Swiper style={styles.wra ...
- 提高 python 效率的一些细节方式
在列表里面计数 性能:第二种计数方法比第一种快6290倍,为啥因为Python原生的内置函数都是优化过的,所以能用原生的计算的时候,尽量用原生的函数来计算. 过滤一个列表 性能:第二种方法比第一种慢近 ...
- 8and9 pod控制器
Pod控制器: 自主定义的pod资源删除后不会被重启,被Pod控制器管理的pod资源被删除后会重启. pod控制器的种类: ReplicationController: (最早使用,现在已经被废弃,太 ...
- coreDNS一直处于创建中解决
https://blog.csdn.net/gsying1474/article/details/53256599 执行: [root@lab1 coredns]# kubectl delete -f ...
- mysql innodb阻塞分析
http://blog.csdn.net/hw_libo/article/details/39080809
- Vue对象提供的属性功能
一. 过滤器 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 定义过滤器的方式有两种: 1. 使用Vue.filter()进行全局定义 示例: < ...
- 【Web网站服务器开发】Apache 和 Tomcat的区别及配置
Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. apache是web服 ...