[主动学习--查询策略] 01 Core-set
符号定义
- 主动学习每一次迭代选择的样本数量为一个 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的更多相关文章
- Active Learning主动学习
Active Learning主动学习 我们使用一些传统的监督学习方法做分类的时候,往往是训练样本规模越大,分类的效果就越好.但是在现实生活的很多场景中,标记样本的获取是比较困难的,这需要领域内的专家 ...
- [Active Learning] 01 A Brief Introduction to Active Learning 主动学习简介
目录 什么是主动学习? 主动学习 vs. 被动学习 为什么需要主动学习? 主动学习与监督学习.弱监督学习.半监督学习.无监督学习之间的关系 主动学习的种类 主动学习的一个例子 主动学习工具包 ALiP ...
- zz2019年主动学习有哪些进展?答案在这三篇论文里
2019年主动学习有哪些进展?答案在这三篇论文里 目前推广应用的机器学习方法或模型主要解决分类问题,即给定一组数据(文本.图像.视频等),判断数据类别或将同类数据归类等,训练过程依赖于已标注类别的训练 ...
- 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 ...
- 【主动学习】Variational Adversarial Active Learning
本文记录了博主阅读ICCV2019一篇关于主动学习论文的笔记,第一篇博客,以后持续更新哈哈 论文题目:<Variational AdVersarial Active Learning> 原 ...
- 简要介绍Active Learning(主动学习)思想框架,以及从IF(isolation forest)衍生出来的算法:FBIF(Feedback-Guided Anomaly Discovery)
1. 引言 本文所讨论的内容为笔者对外文文献的翻译,并加入了笔者自己的理解和总结,文中涉及到的原始外文论文和相关学习链接我会放在reference里,另外,推荐读者朋友购买 Stephen Boyd的 ...
- 主动学习——active learning
阅读目录 1. 写在前面 2. 什么是active learning? 3. active learning的基本思想 4. active learning与半监督学习的不同 5. 参考文献 1. ...
- 调用weka模拟实现 “主动学习“ 算法
主动学习: 主动学习的过程:需要分类器与标记专家进行交互.一个典型的过程: (1)基于少量已标记样本构建模型 (2)从未标记样本中选出信息量最大的样本,交给专家进行标记 (3)将这些样本与之前样本进行 ...
- MySQL学习——查询表里的数据
MySQL学习——查询表里的数据 摘要:本文主要学习了使用DQL语句查询表里数据的方法. 数据查询 语法 select [distinct] 列1 [as '别名1'], ..., 列n [as '别 ...
随机推荐
- jqurey(尺寸,css操作,效果,遍历)
尺寸: height():设置或返回元素的高度(不包括内边距.边框或外边距). width():设置或返回元素的宽度(不包括内边距.边框或外边距). 例如: $("#box").h ...
- Orleans 初接触(二) 测试用例
[返回导航] 在简单了解了Orleans 之后我们可以通过几个例子去加深印象 一.快速入门示例 这个例子也是跟着<Microsoft Orleans 之 入门指南>(https://www ...
- vue-cli3抽离配置文件,动态修改打包后配置
由于项目有外部部署需求,对不同的环境前端调用后台的地址不一样,且不能提前预知必须到部署现场后才能确定后端地址,故需要将调用后端相关的配置抽离到文件中,打包后部署人员在方便现场修改. 思路如下: 1.由 ...
- java之构造器
1.构造方法的作用:在new创建对象时为其赋值. 2.构造方法的分类: ①无参构造public 同类名(){},有参构造public 同类名(参数列表){语句}. ②构造方法没有方法名,没有返回值类型 ...
- TypeScript引入moment.js报错“无法找到moment模块”及解决方法
npm i moment下载moment完成后,在ts文件中引入 import * as moment from "moment"; 结果疯狂报错,未找到moment模块. 一开始 ...
- mysql中msvcr120.dll文件丢失问题
安装VC++2013 若是以上方法不能解决,需要下载安装VC++2013,这是微软官网的链接 https://www.microsoft.com/zh-cn/download/confirmation ...
- Ubuntu1804中重新认识docker
这又是一篇充数的笔记……之前在Ubuntu中折腾过好几次了,但是关于他俩之间的故事总是参杂着第三者,不太纯粹,这一次只说她两之间的故事. 上一篇笔记弄好了Ubuntu环境.之后就是准备迎娶docker ...
- JUC-5-CountDownLatch 闭锁
CountDownLatch 闭锁 同步辅助类 一组操作中,多个线程完成, 闭锁会允许一个或多个线程一直等待. 即 所有线程都完成才继续执行
- 从eslint规则学点JavaScript知识
在知识星球陆续发了些eslint小知识,意在通过eslint知识去了解规则内部的原理,汇总在此: prefer-const 含义:始终用const定义你从不修改的变量,如果会被修改则使用let,永不使 ...
- Python语法规则
Python基本语法 Python的语法相对比C,C++,Java更加简洁,比较符合人的正常思维.本篇介绍Python的基本语法,通过本篇文章你可以学到以下内容. 掌握Python的基本语法 识别Py ...