【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch,ICLR 2018

目录导引

  • 系列传送
  • A Core-Set Approach
    • 1 Abstract
    • 2 Introduction
      • 2.1 CNN
      • 2.2 AL
      • 2.3 Tailor an al method
    • 3 Related Works
      • 3.1 Active Learning
      • 3.2 Core-Set Selection
      • 3.3 Weakly-Supervised Deep Learning
    • 4 Method
      • 4.0 Problem Definition
      • 4.1 Active Learning as a Set Cover
      • 4.2 Core-Sets for CNNs
      • 4.3 Solving the K-Center Problem
        • 4.3.1 K-Greedy Algorithm
        • 4.3.2 Optimization
    • 5 Experiments
      • CIFAR-10 CIFAR-100 SVHN
  • Reference

系列传送

我的论文笔记频道

【Active Learning】
【论文笔记01】Learning Loss for Active Learning, CVPR 2019
【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch, ICLR 2018
【论文笔记03】Variational Adversarial Active Learning, ICCV 2019
【论文笔记04】Ranked Batch-Mode Active Learning,ICCV 2016

【Transfer Learning】
【论文笔记05】Active Transfer Learning, IEEE T CIRC SYST VID 2020
【论文笔记06】Domain-Adversarial Training of Neural Networks, JMLR 2016

【Differential Privacy】

【Universum Learning】

A Core-Set Approach

论文传送《Active Learning For ConvolutionalNeural Networks: A Core-Set Approch》
这篇文章数学证明部分非常多,有兴趣可以去原文附录阅读定理和引理的证明,文中还引用了很多非常重要的结论,有其他文章中的证明。

从第四节开始是重点,笔者花费了一定时间才理解作者的优化思路。

1 Abstract

使用普适的框架、在非常丰富的有监督数据上进行训练,就使得卷积神经网络被成功地应用在很多识别和学习任务上。但由于收集大量带标签图片代价很高,这样的方法在实践中显得过于严格。一种减轻这个问题的方法就是找到一些巧妙策略,从很大的收集来的数据中选择若干图像进行标注,也就是主动学习

作者的实证研究表明,很多文献(literature)中的主动学习经验规则(active learning heuristics)在应用到基于批量(查询)背景的CNN上并不高效。受他们的局限性启发,文章将主动学习问题定义为核心集合选择 core-set selection,也就是选择一个数据点集合,使得模型从中学习的成果在剩余的数据点上也有充满竞争力的表现。

作者更进一步提出一个理论成果,可以通过数据点的几何结构(geometry of the datapoints)来描绘任何被选择的子集的表现。作为主动学习算法,文章选择的子集应该要在选定的特征描述(characterization)下取得最好的结果。作者的实验表明他们提出的方法显著地超越了现有的图像分类实验的方法。

2 Introduction

2.1 CNN

  • 最主要的缺点: 大量参数需要大量有标记数据训练

2.2 AL

  • 目标: 在有限的标记预算下,什么样的找数据进行打标签方法可以在精度意义下达到最优。
  • 特点: 主动学习算法迭代进行,每一轮选择一个数据集合进行标注。
  • 局限: 已提出的主动学习算法在CNNs上的应用并不高效。作者认为主要的原因是批量抽样(batch acquisition/sampling)造成的 数据相关性

注意,在CNN上应用主动学习必须要批量选取数据进行查询,这和传统的分类背景不同,原因是:

  1. 由于局部优化方法(local optimization methods),单个数据点的加入对于卷积神经网络的精度不会有统计意义上显著的影响
  2. 每一次迭代都需要对模型在新的有标签数据集上训练到收敛,以准备进行下一轮查询。对于CNNs这么做代价也太大。

关于数据相关性,我的理解是:

让模型一次查询多个样本,模型会选择不确定但是相似的几个数据打包查询,这样实际上带来了冗余,也就是数据之间高度相关。

2.3 Tailor an al method

  • 做法: Core-set selection
  • 目标: In order to attack the unlabeled core-set problem for CNNs, we provide a rigorous bound between an average loss over any given subset of the dataset and the remaining data points via the geometry of the data points. As an active learning algorithm, we try to choose a subset such that this bound is minimized. Moreover, minimization of this bound turns out to be equivalent to the k-Center problem (Wolf, 2011) and we adopt an efficient approximate solution to this combinatorial optimization problem.
  • 实证: We further study the behavior of our proposed algorithm empirically for the problem of image classification using three different datasets. Our empirical analysis demonstrates state-of-the-art performance by a large margin.

3 Related Works

3.1 Active Learning

3.2 Core-Set Selection

因为作者把主动学习任务定义为核心集合选择问题(Core-Set Selection),文献中最接近的问题自然是核心集合选择。这个问题是对一个完全标记的数据集进行挑选,选出一个子集以使模型在这上面训练的效果尽可能接近模型在完整训练集上的训练效果。作者总结具体的算法有:

  • Core-sets for SVM
  • Core-sets for k-Means and k-Medians
  • 但没有 Core-sets for CNNs

无监督子集选择算法 是和作者的工作最相近的算法,It uses a facility location problem to find a diverse cover for the dataset. 作者的算法稍有不同,使用了一个不一样的facility location problem的公式。原来是用min-sum,作者用的是minimax的形式。更重要的是,作者是第一次把这种算法应用到主动学习问题上,并对于CNNs给出了理论上的保证。

3.3 Weakly-Supervised Deep Learning

4 Method

4.0 Problem Definition

Notation Explanation
X X X 特征空间
Y = 1 , . . . , C Y={1,...,C} Y=1,...,C 标签空间
l ( ⋅ , ⋅ ; w ) : X × Y − > R l(·,·;w) : X \times Y -> R l(,;w):X×Y>R 损失函数
η c ( x ) = p ( y = c ∥ x ) \eta_c(x)=p(y=c\|x) ηc(x)=p(y=cx) 各类专用的回归函数, λ η − L i p s c h i t z \lambda^\eta-Lipschitz ληLipschitz连续
Z = X × Y Z = X \times Y Z=X×Y 总体
{ x i , y i } i ∈ [ n ] \{x_i, y_i\}_{i\in[n]} { xi,yi}i[n] 从总体概率分布 p z p_z pz中i.i.d抽出 n n n个无标签数据
s 0 = { s 0 ( j ) ∈ [ n ] } j ∈ [ m ] s^0=\{s^0(j)\in[n]\}_{j\in[m]} s0={ s0(j)[n]}j[m] 初始化有标签数据集,大小为 m m m
A s A_s As 用有标签数据集 s s s进行训练得到的参数
b b b 每一轮查询的预算,即查询的个数

基于池的主动学习第一轮查询的目标被定义为
min ⁡ s 1 : ∣ s 1 ∣ ≤ b E x , y ∈ Z [ l ( x , y ; A s 0 ∪ s 1 ) ] (1) \mathop {\min }\limits_{ {s^1}:|{s^1}| \le b} {E_{x,y\in{Z}}}[l(x,y;{A_{ {s^0} \cup {s^1}}})] \tag{1} s1:s1bminEx,yZ[l(x,y;As0s1)](1)
k + 1 k+1 k+1轮查询的目标实际上就是
min ⁡ s k + 1 : ∣ s k + 1 ∣ ≤ b E x , y ∈ Z [ l ( x , y ; A s 0 ∪ s 1 . . . ∪ s k + 1 ) ] (2) \mathop {\min }\limits_{ {s^{k+1}}:|{s^{k+1}}| \le b} {E_{x,y\in{Z}}}[l(x,y;{A_{ {s^0} \cup {s^1}...\cup {s^{k+1}}}})] \tag{2} sk+1:sk+1bminEx,yZ[l(x,y;As0s1...sk+1)](2)
每一轮查询完数据之后都要对模型进行重新的训练,然后进行评估。训练可以采用两种方式

  • 纯监督
  • 半监督,把 ∈ [ n ] a n d ∉ s \in [n] and \notin s [n]and/s的无标签数据也拿来用

4.1 Active Learning as a Set Cover

E x , y ∈ Z [ l ( x , y ; A s ) ] ≤ ∣ E x , y ∈ Z [ l ( x , y ; A s ) ] − 1 n ∑ i ∈ [ n ] l ( x i , y i ; A s ) ∣ + 1 ∣ s ∣ ∑ j ∈ s l ( x j , y j ; A s ) + ∣ 1 n ∑ i ∈ [ n ] l ( x i , y i ; A s ) − 1 ∣ s ∣ ∑ j ∈ s l ( x j , y j ; A s ) ∣ (3) {E_{x,y\in Z}}[l(x,y;{A_s})] \le \\ |{E_{x,y\in Z}}[l(x,y;{A_s})] - \frac{1}{n}\sum\limits_{i \in [n]} {l({x_i},{y_i};{A_s})} | + \\ \frac{1}{ {|s|}}\sum\limits_{j \in s} {l({x_j},{y_j};{A_s})} +\\ |\frac{1}{n}\sum\limits_{i \in [n]} {l({x_i},{y_i};{A_s})} - \frac{1}{ {|s|}}\sum\limits_{j \in s} {l({x_j},{y_j};{A_s})} | \tag{3} Ex,yZ[l(x,y;As)]Ex,yZ[l(x,y;As)]n1i[n]l(xi,yi;As)+s1jsl(xj,yj;As)+n1i[n]l(xi,yi;As)s1jsl(xj,yj;As)(3)

第一部分:generalization error 由于是同分布,泛化能力好。而且被系统研究过,可以把这部分误差界定住(Xu & Mannor(2012))
第二部分:training error 可以非常非常小
第三部分:core-set error 本文关注的关键部分

后文作者假设training error == 0generalization error 也忽略了

根据文中的定理,我们对core-set error可以求出这样的上界
∣ 1 n ∑ i ∈ [ n ] l ( x i , y i ; A s ) − 1 ∣ s ∣ ∑ j ∈ s l ( x j , y j ; A s ) ∣ ≤ δ ( λ l + λ μ L C ) + L 2 log ⁡ ( 1 / γ ) 2 n (4) |\frac{1}{n}\sum\limits_{i \in [n]} {l({x_i},{y_i};{A_s})} - \frac{1}{ {|s|}}\sum\limits_{j \in s} {l({x_j},{y_j};{A_s})} | \le \delta ({\lambda ^l} + {\lambda ^\mu }LC) + \sqrt {\frac{ { {L^2}\log (1/\gamma )}}{ {2n}}} \tag{4} n1i[n]l(xi,yi;As)s1jsl(xj,yj;As)δ(λl+λμLC)+2nL2log(1/γ) (4)
其中,损失函数 l ( ⋅ , y ; w ) l(·,y;w) l(,y;w) 对于任意固定的 y , w y, w y,w 满足 λ l − L i p s c h i t z \lambda^l-Lipschitz λlLipschitz 连续条件,回归函数满足 λ η − L i p s c h i t z \lambda^\eta-Lipschitz ληLipschitz 连续条件,s 是训练集 { x i , y i } i ∈ [ n ] \{x_i, y_i\}_{i\in[n]} { xi,yi}i[n] 的一个 δ s \delta_s δs 覆盖,并且有概率 1 − γ 1-\gamma 1γ 使得 l ( x s ( j ) , y s ( j ) ; A s ) = 0 , ∀ j ∈ [ m ] l(x_{s(j)}, y_{s(j)};A_s)=0, \forall j \in[m] l(xs(j),ys(j);As)=0,j[m]

由于假设training error == 0,上式左侧可以直接写为 1 n ∑ i ∈ [ n ] l ( x i , y i ; A s ) \frac{1}{n}\sum\limits_{i \in [n]} {l({x_i},{y_i};{A_s})} n1i[n]l(xi,yi;As)

上界部分可以简略地写成阶的形式,文中还给出了这张可视化图:
【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch,ICLR 2018_第1张图片蓝色的点就是有标签数据集 s s s 中的点,红色的就是 [n]\s 中的点,对每一个蓝色点做半径为 δ s \delta_s δs 的邻域,并集就是一个覆盖。上界只和 δ s \delta_s δs 1 n \sqrt{\frac{ {1}}{ {n}}} n1 有关,但是 n n n 在一个问题中固定,我们就只需要最小化 δ s \delta_s δs 来让总体损失最小化

4.2 Core-Sets for CNNs

最后目标就化简成了让 δ \delta δ覆盖最小化:
min ⁡ s 1 : ∣ s 1 ≤ b ∣ δ s 0 ∪ s 1 {\min _{ {s^1}:|{s^1} \le b|}}{\delta _{ {s^0} \cup {s^1}}} s1:s1bminδs0s1
更直白的
min ⁡ s 1 : ∣ s 1 ≤ b ∣ max ⁡ i min ⁡ j ∈ s 1 ∪ s 0 Δ ( x i , x j ) (5) \mathop {\min }\limits_{ {s^1}:|{s^1} \le b|} \mathop {\max }\limits_i \mathop {\min }\limits_{j \in {s^1} \cup {s^0}} \Delta ({x_i},{x_j}) \tag{5} s1:s1bminimaxjs1s0minΔ(xi,xj)(5)
最小化覆盖半径 δ \delta δ就是让无标签数据离有标签数据最近距离的最大值最小化。

4.3 Solving the K-Center Problem

4.3.1 K-Greedy Algorithm

这是一个NP问题,但是可以用K-Greedy算法得到一个** 2-OPT solution**,这样得到的结果有理论保证,如果设
O P T = min ⁡ s 1 : ∣ s 1 ∣ ≤ b max ⁡ i min ⁡ j ∈ s 1 ∪ s 0 Δ ( x i , x j ) OPT = \mathop {\min }\limits_{ {s^1}:|{s^1}| \le b} \mathop {\max }\limits_i \mathop {\min }\limits_{j \in {s^1} \cup {s^0}} \Delta ({x_i},{x_j}) OPT=s1:s1bminimaxjs1s0minΔ(xi,xj)
那么有
max ⁡ i min ⁡ j ∈ s 1 ∪ s 0 Δ ( x i , x j ) ≤ 2 ∗ O P T \mathop {\max }\limits_i \mathop {\min }\limits_{j \in {s^1} \cup {s^0}} \Delta ({x_i},{x_j}) \le 2*OPT imaxjs1s0minΔ(xi,xj)2OPT
语言表达起来就是贪心算法选择的查询集合不一定导致最优的 δ s 0 ∪ s 1 \delta_{s^0\cup s^1} δs0s1 但是不会超过两倍的最优值。即加载 O P T OPT OPT 2 O P T 2OPT 2OPT 之间。

贪心算法流程图:
【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch,ICLR 2018_第2张图片
在一次迭代中选择b个无标签数据,分b次选择。每一次选择与当前有标签数据点距离最远的那个无标签数据,并把它加入到有标签数据之中。故需要注意这b次选择和直接选b个不同。

4.3.2 Optimization

  1. 混合整数规划问题(Mixed Integer Program,MIP)
    • 该规划问题含参数 δ \delta δ
    • 规划问题有解(feasble)的时候. 说明 O P T ≤ δ OPT \le \delta OPTδ
    • 该规划问题允许有标签数据的 δ \delta δ 覆盖放空 Ξ \Xi Ξ 个点,不被覆盖。用于提升模型的鲁棒性,免受个别 o u t l i e r outlier outlier 的影响。
  2. 通过二分查找(binary search)找到OPT的确切值
  3. 将OPT确切值带入规划问题,解出哪些点应该被当作有标签数据,完成迭代。

MIP具体形式如下:
【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch,ICLR 2018_第3张图片对其中的符号做如下解释

Notation Explanation
u j u_j uj 当一个数是有标签的, u j = 1 u_j=1 uj=1
ξ i , j \xi_{i,j} ξi,j 当数据 i i i 离有标签数据 j j j 最近且不在 δ \delta δ 覆盖内 ξ i , j = 1 \xi_{i,j}=1 ξi,j=1
w i , j w_{i,j} wi,j 数据 i i i 离有标签数据 j j j 最近,被覆盖或者属于上面那类
Δ ( x i , x j ) \Delta(x_i,x_j) Δ(xi,xj) 两个数据输出的概率分布之间的 l 2 l_2 l2距离
Ξ \Xi Ξ 可以当作 o u t l i e r outlier outlier不被覆盖的个数

算法结构如下:
【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch,ICLR 2018_第4张图片
一开始先用贪心算法做了一个初始化的查询集合 s g s_g sg。之后通过二分查找获得 O P T OPT OPT 的真实值,在 M I P MIP MIP 中代入 δ = O P T \delta = OPT δ=OPT 求解出 { i s . t . u i = 1 } \{i s.t.u_i = 1\} { is.t.ui=1}

关于其中的二分查找,稍作说明。
算法流程中的 u b ub ub 就是 O P T OPT OPT u p p e r b o u n d upper bound upperbound l b lb lb 就是 O P T OPT OPT l o w e r b o u n d lower bound lowerbound。 因为通过贪心算法得到的 δ 2 − O P T ≤ 2 O P T \delta_{2-OPT} \le 2OPT δ2OPT2OPT,那么有 δ 2 − O P T 2 ≤ O P T ≤ δ 2 − O P T \frac{ {\delta_{2-OPT}}}{ {2}} \le OPT \le \delta_{2-OPT} 2δ2OPTOPTδ2OPT 我们把两端分别作为 u b ub ub l b lb lb 的初始化值,然后就进行二分查找,直到 u b = l b ub=lb ub=lb,就找到了 O P T OPT OPT 的值。

查找的过程中,如果 M I P MIP MIP 问题有解,说明 l b ≤ O P T ≤ l b + u b 2 lb \le OPT \le \frac{ {lb+ub}}{ {2}} lbOPT2lb+ub,那我们需要把 u b ub ub 变小;反之亦然,这就是 i f − e l s e if-else ifelse的作用。

5 Experiments

CIFAR-10 CIFAR-100 SVHN

【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch,ICLR 2018_第5张图片
上图是作者的方法与其他方法对比的结果,上面一排是进行弱监督学习,即在有标签数据集 s s s 之外,也利用了 [n]\ s s s 的信息。下面一排是纯监督学习,只利用 s s s
【论文笔记02】Active Learning For Convolutional Neural Networks: A Core-Set Approch,ICLR 2018_第6张图片作图说明作者方法和基于不确定性查询相比,查询的结果在 F e a t u r e M a p Feature Map FeatureMap 上分布更加均匀,有利于总体分布的表现,效果更好。

右下角的图说明对于贪心算法2-OPT solution的优化是有明显效果的。

Reference

[1] Sener O, Savarese S. Active learning for convolutional neural networks: A core-set approach[J]. arXiv preprint arXiv:1708.00489, 2017.
[2] https://arxiv.org/pdf/1708.00489.pdf),

你可能感兴趣的:(论文笔记,主动学习,机器学习,人工智能,深度学习)