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迭代过程,在无标签的数据上:

  1. 高置信度的样本被分类器打上标签,加入到训练集中(伴随着弱人工验证),主要在后期分类器越来越稳定的时候
  2. 低置信度的样本被人工标注,加入到训练集中,主要在前期分类器的学习训练时

本文作者声称是**首个在人脸识别中提出模型自动标注置信度高、人工标注置信度低的**。

Self-Paced Learning

SPL是课程式学习更易于实施的方式,或者说把CL课程式学习抽象成简洁的优化模型就是SPL,公式化描述就是:
min⁡w,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]nmin​i=1∑n​vi​L(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

  1. *CNN预训练:*在搭建ASPL框架前,先在其他人脸数据集上预训练一个CNN用来提取特征,这里用AlexNet。在之后有了额外的有标签数据后,再fine-tune CNN。
  2. *初始化:*在当前数据集上随机选一部分图像,用预训练好的CNN来提取特征,然后人工标注,作为起始点。
  3. *分类器更新:*用一个one-vs-all的线性SVM作为分类器。刚开始只有一小部分样本有标签,对于每个样本都训练一个初始化分类器。当ASPL框架成熟之后,再用所有样本重新训练这些分类器。
  4. *高置信度样本伪标签:*用当前分类器,对所有无标签样本按重要程度排序,例如用hinge loss排序然后对top-k的样本打伪标签。
  5. *低置信度样本标注:*根据制定的主动学习策略人工标注。
  6. *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)相关推荐

  1. 浅谈主动学习(Active Learning)

    1背景概述 在机器学习领域有很多学习模式,比方说监督学习.半监督学习.强化学习.无监督学习等.平时大家接触比较多的一般都是监督学习,在监督学习里面,比方说要做个人和鱼的图像分类模型,假设有200张图片 ...

  2. 主动学习(Active Learning)概述及最新研究

    作者 | 你Sony@知乎 来源 | https://zhuanlan.zhihu.com/p/422180658 编辑 | 极市平台 导读 作者将自己对于主动学习的理解和最新研究的感悟都整理为这篇文 ...

  3. 主动学习(Active learning)简介

    文章目录 Labeling faster vs. labeling smarter 1. 什么是主动学习? 2. 主动学习如何运行? 2.1 Stream-based Active Learning ...

  4. 半监督学习:semi-supervised learning 直推学习:transductive learning 主动学习:active learning

    目前,利用未标记示例的主流学习技术主要有三大类:半监督学习(semi-supervised learning).直推学习(transductive learning)和主动学习(active lear ...

  5. 主动学习(Active Learning)系列介绍(三)搜索假设空间(Searching Through the Hypothesis Space)

    本文介绍主动学习Active Learning中的第二种query selection framework -- 搜索假设空间Searching Through the Hypothesis Spac ...

  6. 【论文汇总】人工智能顶会深度主动学习(Deep Active Learning)相关论文

    汇总2017年至今,ICCV\CVPR\NIPS\ECCV会议上发表的深度主动学习(Deep Active Learning)相关文章,根据原文中report的实验数据集划分为 图像分类 . 语义分割 ...

  7. 主动学习(Active Learning)系列介绍(一)基本概念及应用场景

    目录 一个小假设 有监督学习思想 主动学习思想 研究背景 主动学习 问题场景 1. Query Synthesis 2. Stream-based Selective Sampling 3. Pool ...

  8. 主动学习综述(ACTIVE LEARNING)

    2019独角兽企业重金招聘Python工程师标准>>> Active learning process 算法:主动学习算法伪代码描述 输入:未标记样本U,标记样本集L,学习引擎LE, ...

  9. 主动学习(Active Learning) 概述、策略和不确定性度量

    主动学习是指对需要标记的数据进行优先排序的过程,这样可以确定哪些数据对训练监督模型产生最大的影响. 主动学习是一种学习算法可以交互式查询用户(teacher 或 oracle),用真实标签标注新数据点 ...

  10. 主动学习(Active Learning)简介综述汇总以及主流技术方案

    0.引言 在机器学习(Machine learning)领域,监督学习(Supervised learning).非监督学习(Unsupervised learning)以及半监督学习(Semi-su ...

最新文章

  1. 基于redis AE异步网络架构
  2. Log4Net日志分类和自动维护
  3. 程序员面试100题之六:最长公共子序列
  4. python输出文本 去掉引号_Python可以在文本文件中读取时从字符串中删除双引号吗?...
  5. java tomcat自动安装教程_Tomcat:基础安装和使用教程
  6. 小程序入门学习04--数据绑定、条件渲染、列表渲染
  7. Canvas实现简单刮刮乐效果
  8. python 检查域名是否可以访问_糖尿病人是否都要做喝糖水的检查?结果可以说明胰岛功能水平吗?...
  9. c语言编程 通讯录排序,C语言实现一个通讯录
  10. 天线学习笔记——HFSS简单阵列天线
  11. “accountsservice:依赖: libaccountsservice0(= 0.6.40-2ubuntu11.3)但是0.6.40-2ubuntu11.6已经安装”解决方法
  12. HTTP 返回状态码
  13. 2022年数学类保研经验整理(信息与计算科学、计算数学、计算机)
  14. 常见的 Git 错误解决方法
  15. 如何在CSDN写笔记_写笔记前的插件安装
  16. gps网络对时Linux,gps网络时间对时服务器的功能简介
  17. 几个有关智能的小问题
  18. 说说 kooxoo 酷讯吧
  19. 我又双叒叕倒在了年初立下的flag里
  20. 我常用的 15 个 Sketch Plugins

热门文章

  1. c语言信封比大小,从C打印信封#
  2. [单片机框架][DFU] Dfu升级例子 带crc校验+超时机制+led指示灯+芯片加锁+芯片自擦
  3. vs中开发web项目IIS Express支持局域网连接
  4. 计算机按键去抖动的方式,机械按键如何去处理按键抖动的问题
  5. [转载]Swift GYB
  6. 2021Fall - 欧陆CS转交互留学项目信息整理
  7. C#实现QQ窗体的步骤和总结
  8. 欢迎使用CSDN-markdown编辑器11345
  9. ZlycerQan的 八云蓝(ran )
  10. c语言头文件inistd,Windows10 VS2017 C++ ini解析(使用simpleini头文件)