【主动学习 03】Active Self-Paced Learning for Cost-Effective and Progressive Face Identification (PAMI‘18)
Active Self-Paced Learning for Cost-Effective and Progressive Face Identification (PAMI’18)
这篇工作的核心思想是“Cost-less-Earn-more”,意思是:
- Self-annotation for high-confident instances
- Oracle annotation for low-confident instances
brief Introduction
在Active learning中,低置信度的样本是很好的数据用来重训练模型;在Self-Paced Learning中,学习过程是由易到复杂,因此简单样本会得到高置信度。可以看出这两类学习算法选择样本的准则是完全相反的,因此把二者结合起来可以互补。
所以先pretrain CNN,然后在少量样本上训练,之后开始ASPL迭代过程,在无标签的数据上:
- 高置信度的样本被分类器打上标签,加入到训练集中(伴随着弱人工验证),主要在后期分类器越来越稳定的时候
- 低置信度的样本被人工标注,加入到训练集中,主要在前期分类器的学习训练时
本文作者声称是**首个在人脸识别中提出模型自动标注置信度高、人工标注置信度低的**。
Self-Paced Learning
SPL是课程式学习更易于实施的方式,或者说把CL课程式学习抽象成简洁的优化模型就是SPL,公式化描述就是:
minw,v∈[0,1]n∑i=1nviL(w;xi,yi)+f(v;λ)\min _{\mathbf{w}, \mathbf{v} \in[0,1]^{n}} \sum_{i=1}^{n} v_{i} L\left(\mathbf{w} ; \mathbf{x}_{i}, y_{i}\right)+f(\mathbf{v} ; \lambda) w,v∈[0,1]nmini=1∑nviL(w;xi,yi)+f(v;λ)
s.t. v∈Ψ\text { s.t. } \mathbf{v} \in \Psi s.t. v∈Ψ
其中D={(xi,yi)}i=1n\mathcal{D}=\left\{\left(x_{i}, y_{i}\right)\right\}_{i=1}^{n}D={(xi,yi)}i=1n对应训练集,L(w;xi,yi)L\left(\mathbf{w} ; \mathbf{x}_{i}, y_{i}\right)L(w;xi,yi)代表预测值和真实值yiy_iyi之间的损失函数,w\mathbf{w}w是模型参数。v=[v1,v2,⋯,vn]T\mathbf{v}=\left[v_{1}, v_{2}, \cdots, v_{n}\right]^{T}v=[v1,v2,⋯,vn]T是反应样本重要性的权重变量。λ\lambdaλ控制学习步长。这里f(v;λ)f(\mathbf{v} ; \lambda)f(v;λ)就对应着self-paced regularizer。
ASPL framework
- *CNN预训练:*在搭建ASPL框架前,先在其他人脸数据集上预训练一个CNN用来提取特征,这里用AlexNet。在之后有了额外的有标签数据后,再fine-tune CNN。
- *初始化:*在当前数据集上随机选一部分图像,用预训练好的CNN来提取特征,然后人工标注,作为起始点。
- *分类器更新:*用一个one-vs-all的线性SVM作为分类器。刚开始只有一小部分样本有标签,对于每个样本都训练一个初始化分类器。当ASPL框架成熟之后,再用所有样本重新训练这些分类器。
- *高置信度样本伪标签:*用当前分类器,对所有无标签样本按重要程度排序,例如用hinge loss排序然后对top-k的样本打伪标签。
- *低置信度样本标注:*根据制定的主动学习策略人工标注。
- *CNN fine-tuning:*当迭代一定次数之后,用所有有标签的数据来fine-tuning CNN。
Annotated Sample Verifying
值得注意的是在ASPL中有一个Verification过程,分类器对所有有标签的数据进行预测,然后对误差特别大的样本的标签进行人工验证。比如每次主动学习过程中除了有要标记的无标签样本,还**“加塞”**了LLL个验证样本重标记(LLL是一个小数字,比如5,取决于对错标几率的悲观程度)。这样就进一步验证了Top-L最不确定的样本,提高了AL过程的鲁棒性。
实验结果
实验可以看出ASPL中效果很好,而且ASPL中每个组件都是有用的。
小结
这篇文章是18年PAMI期刊,实际工作是17年的了,不太明白为什么选用SVM作为分类器,这样需要维护nnn个SVM,nnn是图像类别数目。
我觉得这篇文章的工作聪明的一个点是,每次都从已标记样本中采集一部分最“可疑”的样本进行验证,加塞进主动学习的标注过程中,这样的人工成本似乎比随机抽样检查更聪明一些。
Tri-partition cost-sensitive active learning through kNN
顺便提一下这篇文章,idea和上面那篇比较像,时间更早一些,17年发在CCF C类期刊soft computing上,感觉几个图做的也不错。
这篇文章所提的Tri-partition是指每次迭代过程,将无标签数据划分为三部分:
- 第一部分:认为分类器的误分类代价要小于人标的(置信度高),自动打上标签
- 第二部分:专家标注
- 第三部分:依然保留
下图显示了整个迭代过程:
这个图直观的反映出了整个迭代过程结束后,大部分数据都被模型成功标注。
【主动学习 03】Active Self-Paced Learning for Cost-Effective and Progressive Face Identification (PAMI‘18)相关推荐
- 浅谈主动学习(Active Learning)
1背景概述 在机器学习领域有很多学习模式,比方说监督学习.半监督学习.强化学习.无监督学习等.平时大家接触比较多的一般都是监督学习,在监督学习里面,比方说要做个人和鱼的图像分类模型,假设有200张图片 ...
- 主动学习(Active Learning)概述及最新研究
作者 | 你Sony@知乎 来源 | https://zhuanlan.zhihu.com/p/422180658 编辑 | 极市平台 导读 作者将自己对于主动学习的理解和最新研究的感悟都整理为这篇文 ...
- 主动学习(Active learning)简介
文章目录 Labeling faster vs. labeling smarter 1. 什么是主动学习? 2. 主动学习如何运行? 2.1 Stream-based Active Learning ...
- 半监督学习:semi-supervised learning 直推学习:transductive learning 主动学习:active learning
目前,利用未标记示例的主流学习技术主要有三大类:半监督学习(semi-supervised learning).直推学习(transductive learning)和主动学习(active lear ...
- 主动学习(Active Learning)系列介绍(三)搜索假设空间(Searching Through the Hypothesis Space)
本文介绍主动学习Active Learning中的第二种query selection framework -- 搜索假设空间Searching Through the Hypothesis Spac ...
- 【论文汇总】人工智能顶会深度主动学习(Deep Active Learning)相关论文
汇总2017年至今,ICCV\CVPR\NIPS\ECCV会议上发表的深度主动学习(Deep Active Learning)相关文章,根据原文中report的实验数据集划分为 图像分类 . 语义分割 ...
- 主动学习(Active Learning)系列介绍(一)基本概念及应用场景
目录 一个小假设 有监督学习思想 主动学习思想 研究背景 主动学习 问题场景 1. Query Synthesis 2. Stream-based Selective Sampling 3. Pool ...
- 主动学习综述(ACTIVE LEARNING)
2019独角兽企业重金招聘Python工程师标准>>> Active learning process 算法:主动学习算法伪代码描述 输入:未标记样本U,标记样本集L,学习引擎LE, ...
- 主动学习(Active Learning) 概述、策略和不确定性度量
主动学习是指对需要标记的数据进行优先排序的过程,这样可以确定哪些数据对训练监督模型产生最大的影响. 主动学习是一种学习算法可以交互式查询用户(teacher 或 oracle),用真实标签标注新数据点 ...
- 主动学习(Active Learning)简介综述汇总以及主流技术方案
0.引言 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi-su ...
最新文章
- 基于redis AE异步网络架构
- Log4Net日志分类和自动维护
- 程序员面试100题之六:最长公共子序列
- python输出文本 去掉引号_Python可以在文本文件中读取时从字符串中删除双引号吗?...
- java tomcat自动安装教程_Tomcat:基础安装和使用教程
- 小程序入门学习04--数据绑定、条件渲染、列表渲染
- Canvas实现简单刮刮乐效果
- python 检查域名是否可以访问_糖尿病人是否都要做喝糖水的检查?结果可以说明胰岛功能水平吗?...
- c语言编程 通讯录排序,C语言实现一个通讯录
- 天线学习笔记——HFSS简单阵列天线
- “accountsservice:依赖: libaccountsservice0(= 0.6.40-2ubuntu11.3)但是0.6.40-2ubuntu11.6已经安装”解决方法
- HTTP 返回状态码
- 2022年数学类保研经验整理(信息与计算科学、计算数学、计算机)
- 常见的 Git 错误解决方法
- 如何在CSDN写笔记_写笔记前的插件安装
- gps网络对时Linux,gps网络时间对时服务器的功能简介
- 几个有关智能的小问题
- 说说 kooxoo 酷讯吧
- 我又双叒叕倒在了年初立下的flag里
- 我常用的 15 个 Sketch Plugins
热门文章
- c语言信封比大小,从C打印信封#
- [单片机框架][DFU] Dfu升级例子 带crc校验+超时机制+led指示灯+芯片加锁+芯片自擦
- vs中开发web项目IIS Express支持局域网连接
- 计算机按键去抖动的方式,机械按键如何去处理按键抖动的问题
- [转载]Swift GYB
- 2021Fall - 欧陆CS转交互留学项目信息整理
- C#实现QQ窗体的步骤和总结
- 欢迎使用CSDN-markdown编辑器11345
- ZlycerQan的 八云蓝(ran )
- c语言头文件inistd,Windows10 VS2017 C++ ini解析(使用simpleini头文件)