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. equals()源码

    equals():ONE.重写了equal()的类 1.String 重写结果,比较的是字符串的内容是否相等 2.自定义类默认给出的重写方法(Student) 重写结果,比较自定义类的成员变量是否相同 ...

  2. dos切换其他目录加参数/D

    D:\>cd /D c:\Windows c:\Windows> 不加参数/D 无法切换到另一个盘符

  3. Java 多线程:什么是线程安全性

    线程安全性 什么是线程安全性 <Java Concurrency In Practice>一书的作者 Brian Goetz 是这样描述"线程安全"的:"当多 ...

  4. ios真机调试教程(不上架App Store安装到手机)

    原文 不上架App Store安装到手机调试测试,需要用到ios真机调试证书打包的ipa才能安装到非越狱的手机使用. 2017年最新整理的ios真机调试的详细图文步骤流程,轻松的把你开发的ios ap ...

  5. Linux设备驱动程序 之 poll和select

    使用非阻塞IO的应用程序经常使用select,poll,epoll系统调用:它们的功能本质上是一样的:都允许进程决定是否可以对一个或者多个打开的文件做非阻塞的读取或者写入:这些电泳也会阻塞进程,直到给 ...

  6. DataFactory连接MySQL数据库

    1.下载驱动 https://dev.mysql.com/downloads/connector/odbc/ 需要使用oracle登录账号密码后才能下载 下载完成后进行安装,一路下一步即可 2.连接m ...

  7. angcyo

    https://github.com/angcyo https://github.com/angcyo/UIKit https://github.com/angcyo/RHttpServer http ...

  8. CentOS7 源码安装 PostgreSQL 12

    PostgreSQL 12 源码安装 Table of Contents 1. 下载 2. 准备环境 3. 编译安装 4. 设置环境变量 5. 初始化数据库 6. 配置参数文件 6.1. postgr ...

  9. 前端与后台可能需要使用交互的表单form,input标签

    前端与后台可能需要使用交互的表单标签 form表单和input标签 textarea文本域表单 select,option下拉列表表单 fieldset和legend组合表单 label标签 form ...

  10. BCNF/3NF的判断方法

    判断是否是 3NF 的条件: 对于 R 上的每个函数依赖 X->A (X 是关系 R 属性的一个子集,A 是 R 的一个属性) ,以下条件中的一个成立:1 X ∈ A2 X 是超码3 A 是 R ...