原文: Jian Wu 等. Multi-Label Active Learning Algorithms for Image Classification: Overview and Future Promise, ACM Computing Surveys, Vol. 53, No. 2, Article 28. Publication date: March 2020
我报着学习与研讨的态度来写贴子, 难免与原作者的观点有诸多不同, 并没有不尊重原作者的意思.
Abstract
- These algorithms can be categorized into two top groups from two aspects respectively: sampling and annotation.
我以前在做主动学习的时候, 一般思考的是如何抽样, 样本送给专家标注就获得了正确结果. 所以很少关心后者. 换言的, 我需要知道后者究竟有什么花样可以玩. - … that actively selects the examples with the highest informativeness from an unlabeled data pool, according to various information measures.
从作者的观点, uncertainty, representativeness 这些都是为计算 informativeness 而存在的 (中间) 指标.
1. Introduction
- However, obtaining a large number of labeled images is time-consuming and needs a lot of manpower and resources.
不清楚 manpower 是否标准说法, 我有时用 human endeavor.
2. Problem definition
- According to various ways of querying, active learning algorithms can be categorized into three paradigms: membership query synthesis active learning [4, 45, 46, 48, 69], stream-based selective active learning [14, 16, 22, 47, 69, 109], and pool-based active learning [15, 50].
我们做的一般是 pool-based. stream-based 也有很好的实际意义, 它是指对象一个个地来, 我们需要立即确定是否标注它. - Definition 1 里的数学表达与我们的习惯不符
- { x i , Y i } \{x_i, Y_i\} {xi,Yi} 表示一个对象, 花括号一般是集合专用, 因此我们使用小括号;
- 既然 x i x_i xi 和 Y i Y_i Yi 都表示向量, 都应统一成小写;
- y i , l 1 y_{i, l_1} yi,l1 这种描述太繁琐, l 1 l_1 l1 直接写成 1 1 1 就行了.
- 将 Y i Y_i Yi 称为一个 label set 很奇怪, 它不是一个集合, 而是一个 0, 1 向量.
- 如果按我的习惯, 可以写为
The data is represented by a matrix X = [ x i j ] N × M ∈ R N × M \mathbf{X} = [x_{ij}]_{N \times M} \in \mathbb{R}^{N \times M} X=[xij]N×M∈RN×M, where N N N and M M M are the number of instances and features, respectively. The i i i-th row, denoted by x i \mathbf{x}_i xi, represents an instance. The labels are represented by a matrix Y = [ y i l ] N × L ∈ { − 1 , + 1 } N × L \mathbf{Y} = [y_{il}]_{N \times L} \in \{-1, +1\}^{N \times L} Y=[yil]N×L∈{−1,+1}N×L, where L L L is the number of labels. The i i i-th row, denoted by y i \mathbf{y}_i yi, is the label array of x i \mathbf{x}_i xi. y i l = − 1 y_{il} = -1 yil=−1 indicates x i \mathbf{x}_i xi has the label, while y i l = + 1 y_{il} = +1 yil=+1 indicates no.
- In a typical multi-label active learning scenario, there is an example set
X
X
X including a small labeled training set
L
L
L and a large unlabeled dataset
U
U
U.
这种说法把 semi-supervised learning 过来了, 不一定合适. 对于 active learning, 开始时可以一个标签都没有, 可称之为 cold-start. 作者非要说 typical 问题也不大, 但这样会使得符号表达变得复杂.
3. Overview of topics
3.1 Sampling
抽样是主动学习的重点.
3.1.1 Sampling granularity
- Example based
- In an example-based algorithm, all the labels of the selected examples are supposed to be annotated simultaneously.
这种方案没有针对多标签, 意义相对较弱. - 每次选信息量最大的样本:
x ∗ = arg max x ∈ U I n f o ( x ) (1) \mathbf{x}^* = \argmax_{\mathbf{x} \in \mathbf{U}} Info(\mathbf{x}) \tag{1} x∗=x∈UargmaxInfo(x)(1) - 如果有多种评价指标就将它们加权和:
I n f o ( x ) = ∑ s α s I s ( x ) s.t. α s ∈ [ 0 , 1 ] , ∑ s α s = 1 (2) Info(\mathbf{x}) = \sum_s \alpha_s I_s(\mathbf{x}) \textrm{ s.t. } \alpha_s \in [0, 1], \sum_s \alpha_s = 1 \tag{2} Info(x)=s∑αsIs(x) s.t. αs∈[0,1],s∑αs=1(2) - 还可以用另一种方式融合:
I n f o ( x ) = I 1 ( x ) α I 2 ( x ) 1 − α (3) Info(\mathbf{x}) = I_1(\mathbf{x})^{\alpha} I_2(\mathbf{x})^{1 - \alpha} \tag{3} Info(x)=I1(x)αI2(x)1−α(3) - 利用已标记数据训练
Θ
0
=
[
f
1
0
,
…
,
f
m
0
]
\Theta^0 = [f_1^0, \dots, f_m^0]
Θ0=[f10,…,fm0], 即每个标签一个 SVM 分类器. 根据不同的
α
\alpha
α 取值可以选择一批未标记数据, 记为
S
\mathbf{S}
S. 对于任意
x
′
∈
S
\mathbf{x}' \in \mathbf{S}
x′∈S, 预测其标签
y
′
\mathbf{y}'
y′, 并将该数据加入数据集 (使用的是伪标签), 训练新的多标签分类器
Θ
=
[
f
1
,
…
,
f
m
]
\Theta = [f_1, \dots, f_m]
Θ=[f1,…,fm].
x
′
\mathbf{x}'
x′ 及其标签带来的改变量为
ε ( x ′ ) = ∑ j = 1 n u max y p ′ = 1 [ 1 − f p ( x j ) ] + + max y p ′ = 0 [ 1 + f p ( x j ) ] + (4) \varepsilon(\mathbf{x}') = \sum_{j = 1}^{n_u} \max_{\mathbf{y}_p' = 1}\left[1 - f_p(\mathbf{x}_j)\right]_+ + \max_{\mathbf{y}_p' = 0}\left[1 + f_p(\mathbf{x}_j)\right]_+ \tag{4} ε(x′)=j=1∑nuyp′=1max[1−fp(xj)]++yp′=0max[1+fp(xj)]+(4)
其中,- 求和表示考虑所有的未标记样本;
- 第一个 ∑ \sum ∑ 表示被分类为正例中最大的偏差, 第二个 ∑ \sum ∑ 表示被分类为反例中最大的偏差. 下标的正号就需要看原文才知道涵义了. 从这里可以看也反例的标签应该为 − 1 -1 −1 而不是 0 0 0
- In an example-based algorithm, all the labels of the selected examples are supposed to be annotated simultaneously.
参数选择就使用
α
∗
=
arg min
α
k
∈
V
∑
x
′
∈
S
k
ε
(
x
′
)
(5)
\alpha^* = \argmin_{\alpha_k \in \mathbf{V}} \sum_{\mathbf{x}' \in \mathbf{S}_k} \varepsilon(\mathbf{x}') \tag{5}
α∗=αk∈Vargminx′∈Sk∑ε(x′)(5)
说了半天还是 (3) 式中的参数选择. 从
V
=
{
0.1
,
0.2
,
…
,
1.0
}
\mathbf{V} = \{0.1, 0.2, \dots, 1.0\}
V={0.1,0.2,…,1.0} 中选一个最好的.
-
Example-label-based
( x , y ) ∗ = arg max x j ∈ U , y j k ∈ U L ( x j ) I n f o ( x j , y j k ) (6) (\mathbf{x}, y)^* = \argmax_{\mathbf{x}_j \in \mathbf{U}, y_{jk} \in UL(\mathbf{x}_j)} Info(\mathbf{x}_j, y_{jk}) \tag{6} (x,y)∗=xj∈U,yjk∈UL(xj)argmaxInfo(xj,yjk)(6)
其中:- 选择的是对象-标签对, 也可以表示为 ( j ∗ , k ∗ ) (j^*, k^*) (j∗,k∗);
-
y
j
k
∈
U
L
(
x
j
)
y_{jk} \in UL(\mathbf{x}_j)
yjk∈UL(xj) 表示相应标签未知. 从这个意义上讲
x
j
∈
U
\mathbf{x}_j \in \mathbf{U}
xj∈U 就冗余了.
因此我把这个式子改为:
( i ∗ , k ∗ ) = arg max x i ∈ U , k ∈ U L ( x i ) I n f o ( x i , k ) (6’) (i^*, k^*) = \argmax_{\mathbf{x}_i \in \mathbf{U}, k \in UL(\mathbf{x}_i)} Info(\mathbf{x}_i, k) \tag{6'} (i∗,k∗)=xi∈U,k∈UL(xi)argmaxInfo(xi,k)(6’)
还是可以使用多种指标的加权和:
I n f o ( x j , y j k ) = ∑ s α s I s ( x j , y j k ) s.t. α s ∈ [ 0 , 1 ] , ∑ s α s = 1 (7) Info(\mathbf{x}_j, y_{jk}) = \sum_s \alpha_s I_s(\mathbf{x}_j, y_{jk}) \textrm{ s.t. } \alpha_s \in [0, 1], \sum_s \alpha_s = 1 \tag{7} Info(xj,yjk)=s∑αsIs(xj,yjk) s.t. αs∈[0,1],s∑αs=1(7)
与基于实例的方案相比, 基于实例-标签的方案更能节约标注量, 因此它比前者更加主流. 但同时需要考虑算法的时间复杂度. 这方面的研究也非常有借鉴意义, 如 - Qi 等 [63] 不但考虑实例空间 X \mathbf{X} X, 还考虑标签空间 Y \mathbf{Y} Y. 需要查证后者是否使用了矩阵分解;
- Wu 等 [94] 首先提出实例-标签的不确定性. 这与单标签的实例不确定性有本质区别, 是多标签特有的;
- Zhang 等 [112] 使用批量方式;
- Guo 等 [91] 结合了低秩映射, 这个也需要查证与矩阵分解的关系.
-
Mixed-mode-based
混合方式首先选择 n s n_s ns 个最具代表性的实例, 再选择这些实例的标签. 最具有代表性的实例为:
x ∗ = arg max x ∈ U I n f o 1 ( x ) (8) \mathbf{x}^* = \argmax_{\mathbf{x} \in \mathbf{U}} Info_1(\mathbf{x}) \tag{8} x∗=x∈UargmaxInfo1(x)(8)
信息量最大的标签为
Y s u b ∗ = arg max y ∗ , k ∈ U L ( x ∗ ) I n f o 2 ( y ∗ , k ) (9) Y_{sub}^* = \argmax_{y_{*, k} \in UL(\mathbf{x}^*)} Info_2(y_{*, k}) \tag{9} Ysub∗=y∗,k∈UL(x∗)argmaxInfo2(y∗,k)(9)
我将其修改为:
y s u b ∗ ( x ) = arg max k ∈ U L ( x ) I n f o 2 ( x , k ) (9’) y_{sub}^*(\mathbf{x}) = \argmax_{k \in UL(\mathbf{x})} Info_2(\mathbf{x}, k) \tag{9'} ysub∗(x)=k∈UL(x)argmaxInfo2(x,k)(9’)
可以认为混合方式是实例-标签方式的一种特例. 它比后者更省时间. -
Batch-mode-based methods.
该方式主要用于节约标注者的等待时间.- 文献 [10] 中, 未标记样本的信息量被定义单个标签的平均熵. 两个未标记样本的多样性使用一个矩阵来计算. 多样性避免在同一批中查询相似样本.
- Jiao 等 [38, 39] 使用 kernel k-means 进行预聚类, 然后使用高斯计算每簇中最具信息量的样本.
- Zhang 等 [111, 112] 提出高阶标签相关性方案. 并将批量选择定义为一个整数规划问题.
- Reyes 等 [68] 将它定义为一个多目标 (信息量、代表性、多样性) 优化问题, 这个需要仔细读下.
3.1.2 Informativeness Measure
总结出了 6 个指标: uncertainty, label correlation, representativeness, diversity, noise content, expected error reduction.
3.1.2.A. Uncertainty
U
n
c
:
{
R
M
→
R
,
example-based
;
R
M
×
[
1..
L
]
→
R
,
example-label-based
.
(10)
Unc: \left\{\begin{array}{ll} \mathbb{R}^M \rightarrow \mathbb{R}, & \textrm{example-based};\\ \mathbb{R}^M \times [1 .. L] \to \mathbb{R}, & \textrm{example-label-based} .\end{array}\right. \tag{10}
Unc:{RM→R,RM×[1..L]→R,example-based;example-label-based.(10)
这个式子与原文的有些不同, 但意思是一样的. Example-based 仅从样本的条件属性来计算样本的不确定性, 而 Example-label-based 要指定相应的标签, 即获得样本-标签对的不确定性.
从直觉的角度, 样本 (样本-标签) 的不确定性越大, 则其信息量越大, 越有利于提高分类器的质量. Singh et al. [73] 使用 SVM 预测对象的各个标签, 然后根据 margin 计算标签的不确定性, 再将不同标签的不确定性取一个均值作为样本的不确定性. 我的想法与这个的前半部分一致, 但考虑 example-label 就不需要最后一步的求均值.
Reyes et al. [66] 将 margin 与排序结合,
m
a
r
i
,
k
=
∣
p
(
y
i
k
=
1
∣
x
i
)
−
p
(
y
i
k
=
0
∣
x
i
)
∣
(11)
mar_{i, k} = \vert p(y_{ik} = 1 \vert \mathbf{x}_i) - p(y_{ik} = 0 \vert \mathbf{x}_i)\vert \tag{11}
mari,k=∣p(yik=1∣xi)−p(yik=0∣xi)∣(11)
这个式子的含义是两个概率之差的绝对值. 该值越接近于 0, 表示不确定性越强; 越接近于 1, 表示不确定性越弱. 使用它构建向量
M
(
x
i
)
=
[
m
a
r
i
1
,
…
,
m
a
r
i
L
]
M(\mathbf{x}_i) = [mar_{i1}, \dots, mar_{iL}]
M(xi)=[mari1,…,mariL].
未完待续