符号定义

  • 主动学习每一次迭代选择的样本数量为一个 budget
  • 训练集中初始无标签数据集记为 unlabeled data,\(\bm{u}^0\)
  • 训练集中初始有标签数据集记为 initial labeled data,\(\bm{s}^0\)

查询策略:Core-set

k-Center-Greedy

主动学习每一轮将选择 budget 个样本,core-set 方法将这个过程视为寻找一个当前最佳集合的问题,顺序从 unlabeled data 中选出 budget 个样本加入集合 \(\bm{s}\),新加入的点 \(u\) 需要满足与集合 \(\bm{s}\) 的距离最大。

一个无标记样本点 \(u\) 与集合 \(\bm{s}\) 的距离为:该点 \(u\) 与集合 \(\bm{s}\) 各个点距离的最小值,论文中距离采用 L2-norm。

注意:同一次迭代选出的无标记样本点有先后之分,计算点 \(u\) 与集合 \(\bm{s}\) 的距离时,同一次迭代已经选出的无标记样本点都看作加入了集合 \(\bm{s}\),参与距离计算。

Robust k-Center

在 k-Center-Greedy 的基础上,进行修改。通过 k-Center-Greedy,得到无标记数据集中距离 \(s^g\) 最远的距离,设为 \(\delta_{2-OPT}\),此时所有的样本点都会在包括在这个半径 \(\delta_{2-OPT}\) 内。

计算 Feasible 函数,去找到一组符合 Feasible 函数的解(可以理解是 \(u_i, \omega_{i, j}, \xi_{i, j}\) 这些值),使得 Feasible 内所有约束条件都满足,如果找到了,那么说明此时的半径 \(\delta\) 不会使 outlier 的数量超过自己定的界限 \(\Xi\),半径 \(\delta\) 可以缩小,即缩小上界 \(ub\);如果没有找到,那么说明此时的半径 \(\delta\) 会使得 outlier 数量超过界限 \(\Xi\),需要扩大半径,即扩大下界 \(lb\)。(outlier 为不能被 \(s^0 \cup s^1\) 中元素在半径 \(\delta\) 内覆盖到的样本)

直到最后,\(ub - lb\) 相等或者相差不大,算法停止。

算法详情


Algorithm 2 用 Gurobi 进行 MIP(mixed integer program)优化,运行较慢。Algorithm 1 比 Algorithm 2 简单,速度很快,但论文中效果稍微不如后者。

实现代码

GitHub - ozansener/active_learning_coreset (Source code)
GitHub - google/active-learning/sampling_methods/kcenter_greedy.py
GitHub - dsgissin/DiscriminativeActiveLearning/query_methods.py

提出论文:

Sener, O., & Savarese, S. (2018). Active Learning for Convolutional Neural Networks: A Core-Set Approach. In ICLR (pp. 1–13). Retrieved from http://arxiv.org/abs/1708.00489

被引论文:

[1] Yoo, D., & Kweon, I. S. (2019). Learning Loss for Active Learning. CVPR, 93–102. Retrieved from http://arxiv.org/abs/1905.03677
[2] Sinha, S., Ebrahimi, S., & Darrell, T. (2019). Variational Adversarial Active Learning. ICCV. Retrieved from http://arxiv.org/abs/1904.00370

[主动学习--查询策略] 01 Core-set的更多相关文章

  1. Active Learning主动学习

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

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

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

  3. zz2019年主动学习有哪些进展?答案在这三篇论文里

    2019年主动学习有哪些进展?答案在这三篇论文里 目前推广应用的机器学习方法或模型主要解决分类问题,即给定一组数据(文本.图像.视频等),判断数据类别或将同类数据归类等,训练过程依赖于已标注类别的训练 ...

  4. Cookies 初识 Dotnetspider EF 6.x、EF Core实现dynamic动态查询和EF Core注入多个上下文实例池你知道有什么问题? EntityFramework Core 运行dotnet ef命令迁移背后本质是什么?(EF Core迁移原理)

    Cookies   1.创建HttpCookies Cookie=new HttpCookies("CookieName");2.添加内容Cookie.Values.Add(&qu ...

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

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

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

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

  7. 主动学习——active learning

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

  8. 调用weka模拟实现 “主动学习“ 算法

    主动学习: 主动学习的过程:需要分类器与标记专家进行交互.一个典型的过程: (1)基于少量已标记样本构建模型 (2)从未标记样本中选出信息量最大的样本,交给专家进行标记 (3)将这些样本与之前样本进行 ...

  9. MySQL学习——查询表里的数据

    MySQL学习——查询表里的数据 摘要:本文主要学习了使用DQL语句查询表里数据的方法. 数据查询 语法 select [distinct] 列1 [as '别名1'], ..., 列n [as '别 ...

随机推荐

  1. 【CSS】323- 深度解析 CSS 中的“浮动”

    对于浮动这篇文章解析的狠透彻 ~ 写在最前 习惯性去谷歌翻译看了看 float 的解释: 其中有一句这样写的: she relaxed, floating gently in the water 瞬间 ...

  2. Matlab Robotics Toolbox 仿真计算:Kinematics, Dynamics, Trajectory Generation

    1. 理论知识 理论知识请参考: 机器人学导论++(原书第3版)_(美)HLHN+J.CRAIG著++贠超等译 机器人学课程讲义(丁烨) 机器人学课程讲义(赵言正) 2. Matlab Robotic ...

  3. eclipse配置svn导出项目

    eclipse安装svn 菜单栏help-->eclipse marketspace-->find中搜索subclipse,安装-->ok windows-->show vie ...

  4. spring源码学习(三)--spring循环引用源码学习

    在spring中,是支持单实例bean的循环引用(循环依赖)的,循环依赖,简单而言,就是A类中注入了B类,B类中注入了A类,首先贴出我的代码示例 @Component public class Add ...

  5. 使用Power BI Desktop 制作并发布到Power BI 服务,使用Power BI Mobile查询报表

    上节内容中,我们介绍了Power BI的基本概念,本节我们分享以下一个简单报表从使用Power BI Desktop制作,到发布到Power BI 服务,到从Power BI Mobile上查阅报表的 ...

  6. ASP.NET操作Excel

    使用NPOI操作Excel,无需Office COM组件 部分代码来自于:https://docs.microsoft.com/zh-tw/previous-versions/ee818993(v=m ...

  7. Gradle-任务

    任务结果标签 当 Gradle 执行一个任务时,它会在控制台和 Tooling API 根据任务结果给任务打标签. 这些标签是根据任务是否有操作,是否应该执行操作,是否执行了操作以及这些操作做了哪些改 ...

  8. 微言Netty:分布式服务框架

    1. 前言 几年前,我就一直想着要设计一款自己的实时通讯框架,于是出来了TinySocket,她是基于微软的SocketAsyncEventArgs来实现的,由于此类提供的功能很简洁,所以当时自己实现 ...

  9. React-Native三种断点调试方式的流程和优缺点比较

    RN的调试和web端的调试虽然相似,但是也有一些不同,下面就来比较一下三种断点调试方法的差异 总结: 感觉还是第一种好一些 1.React-Native-Debugger工具调试法 1.1 首先我们得 ...

  10. VS2019 开发Django(四)------models

    导航:VS2019开发Django系列 继上篇我们匆匆迁移数据库成功之后,又花了一个晚上研究了Django的模型,这里的模型其实就是ORM模型中的Entity,.Net里边用的比较多的有Entity ...