Active Learning 主动学习

2015年09月30日 14:49:29 qrlhl 阅读数 21374 文章标签: 算法机器学习 更多

分类专栏: 机器学习
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

最近读了一篇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 主动学习的更多相关文章

  1. Active Learning主动学习

    Active Learning主动学习 我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好.但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家 ...

  2. [Active Learning] 01 A Brief Introduction to Active Learning 主动学习简介

    目录 什么是主动学习? 主动学习 vs. 被动学习 为什么需要主动学习? 主动学习与监督学习.弱监督学习.半监督学习.无监督学习之间的关系 主动学习的种类 主动学习的一个例子 主动学习工具包 ALiP ...

  3. 简要介绍Active Learning(主动学习)思想框架,以及从IF(isolation forest)衍生出来的算法:FBIF(Feedback-Guided Anomaly Discovery)

    1. 引言 本文所讨论的内容为笔者对外文文献的翻译,并加入了笔者自己的理解和总结,文中涉及到的原始外文论文和相关学习链接我会放在reference里,另外,推荐读者朋友购买 Stephen Boyd的 ...

  4. Active Learning

    怎么办?进行Active Learning主动学习 Active Learning是最近又流行起来了的概念,是一种半监督学习方法. 一种典型的例子是:在没有太多数据的情况下,算法通过不断给出在决策边界 ...

  5. 主动学习——active learning

    阅读目录 1. 写在前面 2. 什么是active learning? 3. active learning的基本思想 4. active learning与半监督学习的不同 5. 参考文献   1. ...

  6. 【主动学习】Variational Adversarial Active Learning

    本文记录了博主阅读ICCV2019一篇关于主动学习论文的笔记,第一篇博客,以后持续更新哈哈 论文题目:<Variational AdVersarial Active Learning> 原 ...

  7. 主动学习(Active Learning)

    主动学习简介 在某些情况下,没有类标签的数据相当丰富而有类标签的数据相当稀少,并且人工对数据进行标记的成本又相当高昂.在这种情况下,我们可以让学习算法主动地提出要对哪些数据进行标注,之后我们要将这些数 ...

  8. Recorder︱深度学习小数据集表现、优化(Active Learning)、标注集网络获取

    一.深度学习在小数据集的表现 深度学习在小数据集情况下获得好效果,可以从两个角度去解决: 1.降低偏差,图像平移等操作 2.降低方差,dropout.随机梯度下降 先来看看深度学习在小数据集上表现的具 ...

  9. [Machine Learning] Active Learning

    1. 写在前面 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi ...

随机推荐

  1. Spring+shiro session与线程池的坑

    在java web编程中,经常使用shiro来管理session,也确实好用 shiro来获取session的方式 SecurityUtils.getSubject().getSession() 其中 ...

  2. Python中的变量、对象

    由于没时间系统学习下Python 只能见一个问题探究一个问题了 一.初级 - 对象 关于Python中的数据类型,今天重新认识了下.[参考] 首先,Python中,对象才有类型, 变量是没有类型的,它 ...

  3. Java 比较两个字符串的相似度算法(Levenshtein Distance)

    转载自: https://blog.csdn.net/JavaReact/article/details/82144732 算法简介: Levenshtein Distance,又称编辑距离,指的是两 ...

  4. ZT:在mybatis的Mapping文件写入表名 出现异常ORA-00903: 表名无效 的解决

    简而言之,把#{tablename}换成${tablename}就能解决问题. 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:htt ...

  5. curl 使用笔记

    一.使用案例 curl -H "cookie:userName=shangyy" www.baidu.com 二.使用 1.从Netscape的网页服务器上获得该网站的主页: cu ...

  6. 【8583】ISO8583各域段的说明

    [ISO8583各域段的说明] 1,信息类型(message type)定义位图位置:-格式:定长类型:N4描述:数据包的第一部分,定义数据包的类型.数据类型由数据包的发起者设定,应遵循以下要求:数据 ...

  7. LC 813. Largest Sum of Averages

    We partition a row of numbers A into at most K adjacent (non-empty) groups, then our score is the su ...

  8. 【JVM学习笔记】线程上下文类加载器

    有许多地方能够看到线程上下文类加载的设置,比如在sun.misc.Launcher类的构造方法中,能够看到如下代码 先写一个例子建立感性认识 public class Test { public st ...

  9. Redis4.0新特性 -Lazy Free

    Redis4.0新增了非常实用的lazy free特性,从根本上解决Big Key(主要指定元素较多集合类型Key)删除的风险.笔者在redis运维中也遇过几次Big Key删除带来可用性和性能故障. ...

  10. v-for与v-if的优先级

    原文地址 永远不要把 v-if 和 v-for 同时用在同一个元素上. 一般我们在两种常见的情况下会倾向于这样做: 为了过滤一个列表中的项目 (比如 v-for="user in users ...