原文:
Wang, R., Kwong, S., Wang, X., & Jia, Y. (2021). Active k-labelsets ensemble for multi-label classification. Pattern Recognition, 109, 107583.
符号系统
符号 | 含义 | 说明 |
---|---|---|
L = { l 1 , l 2 , ⋯ , l M } \mathbb{L}=\{l_1,l_2,\cdots,l_M\} L={l1,l2,⋯,lM} | 标签集合 | |
S = { ( x i , Y i ) } i = 1 N \mathbb{S}=\{(\mathbf{x}_i,\mathcal{Y}_i)\}_{i=1}^N S={(xi,Yi)}i=1N | 数据集 | |
x i = ( x i 1 , ⋯ , x i n ) ∈ R n \mathbf{x}_i=(x_{i1},\cdots,x_{in})\in \mathcal{R}^n xi=(xi1,⋯,xin)∈Rn | n维特征向量 | |
Y i \mathcal{Y_i} Yi | 标签集 | 样本 x i 对应的标签集合 \mathbf{x}_i对应的标签集合 xi对应的标签集合 |
h : R n → L \mathcal{h:R^n\rightarrow\mathbb {L}} h:Rn→L | 学习的模型 |
LP:
将多标签问题转换成了单标签多分类问题。使用
f
L
:
2
L
→
N
f_L:2^{\mathbb {L}}\rightarrow \mathbb{N}
fL:2L→N将标签组合由自然数来反映,其中
N
=
{
1
,
2
,
⋯
,
2
∣
L
∣
}
\mathbb{N=\{1,2,\cdots,2^{\mid L\mid}\}}
N={1,2,⋯,2∣L∣}(没有考虑空集),重新构建的数据集可以表示为:
S
∗
=
{
(
x
i
,
f
L
(
Y
i
)
)
}
i
=
1
N
\mathbb{S}^*=\{(\mathbf{x}_i,f_L(\mathcal{Y}_i))\}_{i=1}^N
S∗={(xi,fL(Yi))}i=1N,通过该数据集可以获得一个回归器
h
:
R
n
→
C
L
,
C
L
⊂
N
h:\mathcal{R}^n\rightarrow \mathbb{C_L},\mathbb{C_L\subset N}
h:Rn→CL,CL⊂N,最后通过映射函数的反函数获得标签:
f
L
−
1
:
N
→
2
L
f_L^{-1}:\mathbb{N}\rightarrow 2^{\mathbb {L}}
fL−1:N→2L。
例如:当前有猫、狗、鼠三种标签,则映射关系可表示为:
猫 | 狗 | 鼠 | N |
---|---|---|---|
✘ | ✘ | ✔ | 1 |
✘ | ✔ | ✘ | 2 |
✘ | ✔ | ✔ | 3 |
✔ | ✘ | ✘ | 4 |
✔ | ✘ | ✔ | 5 |
✔ | ✔ | ✘ | 6 |
✔ | ✔ | ✔ | 7 |
如果经过预测得到自然数5,则表明有猫和鼠两个标签。
LP的缺点:
- 自然数的规模随标签的种类呈指数型增长,随着 ∣ L ∣ \mid\mathbb{L}\mid ∣L∣增大,计算复杂度也呈指数型增加。
- 该方法容易造成数据饥饿。例如,有猫、狗、鼠三种标签,在所有的样本中满足同时包含猫、狗、鼠三者的样本几乎没有,这样会导致类别不平衡,训练出来的模型的效果不理想。
- (不知道我理解的正不正确:我认为这还是跟数据饥饿有关,比如我们当前的训练集有很多样本满足同时包含猫和鼠、或者猫和狗,如果在预测时,突然来了一个包含狗和鼠的样本,模型难以正确地预测标签)
Usually, C L \mathbb{C_L} CL is a subset of N \mathbb{N} N; i.e., the transformed classes in C L \mathbb{C_L} CL cannot cover all the natural numbers in N \mathbb{N} N.Thus, the model will lose effectiveness when the testing sample is from a new class in N ∖ C L \mathbb{ N \setminus C_L} N∖CL .
RA
k
k
kEL:
在原有的标签空间中随机产生大小为
k
k
k的标签子集,将一个大的LP 问题划分成一系列小的LP问题。划分后,标签子集可以表示为:
L
a
=
{
l
a
1
,
⋯
,
l
a
k
}
⊂
L
,
a
∈
[
1
,
m
]
\mathcal{L_a}=\{l_{a1},\cdots,l_{ak}\}\subset \mathbb{L},a\in[1,m]
La={la1,⋯,lak}⊂L,a∈[1,m],其中
m
m
m表示将整个标签集合划分为大小为
k
k
k的子集个数。RAkEL把空集也认为是一种状态,所以全面考虑了标签的分布情况。划分标签后,根据各个子集标签的分布,需要在训练集中找到与该子集中的标签相关的样本,其中相关的标签用
Y
i
a
\mathcal{Y_{ia}}
Yia表示。同时,用
f
L
a
:
2
L
a
→
N
a
\mathcal{f_{L_a}}:2^\mathcal{L_a}\rightarrow \mathbb{N}_a
fLa:2La→Na实现标签的映射,其反函数可以表示为:
f
L
a
−
1
:
N
a
→
2
L
a
\mathcal{f_{L_a}}^{-1}:\mathbb{N}_a\rightarrow 2^\mathcal{L_a}
fLa−1:Na→2La。那么,现在各个标签子集所对应的训练数据集可表示为:
S
a
∗
=
{
(
x
i
,
f
L
a
(
Y
i
a
)
)
}
i
=
1
N
,
a
∈
[
1
,
m
]
\mathbb{S}^*_a=\{(\mathbf x_i,\mathcal{f_{L_a}(Y_{ia})})\}_{i=1}^N,a\in[1,m]
Sa∗={(xi,fLa(Yia))}i=1N,a∈[1,m]。由
m
m
m个训练数据集可以训练出
m
m
m个回归器:
h
a
:
R
n
→
C
L
a
,
a
∈
[
1
,
m
]
h_a:\mathcal{R}^n\rightarrow \mathbb{C_{L_a}},a\in[1,m]
ha:Rn→CLa,a∈[1,m],最后通过
f
L
a
−
1
\mathcal{f_{L_a}}^{-1}
fLa−1获得对应的标签。
对于一个预测样本
x
^
\mathbf{\hat{x}}
x^,需要经过
m
m
m个模型的预测,得到
m
m
m个预测结果,最终的预测结果由投票决定:
h
(
x
^
)
=
{
l
j
∣
v
o
t
e
j
(
x
^
)
v
o
t
e
j
max
>
0.5
,
j
∈
[
1
,
M
]
}
\mathbf{h(\hat x)}=\lbrace l_j\mid \frac{vote_j(\mathbf{\hat x})}{vote_j^{\max}}\gt 0.5,j\in[1,M]\rbrace
h(x^)={lj∣votejmaxvotej(x^)>0.5,j∈[1,M]}
其中,
v
o
t
e
j
(
x
^
)
=
∑
a
=
1
m
I
f
L
a
−
1
(
h
a
(
x
^
)
)
(
l
j
)
vote_j(\mathbf{\hat x})=\sum\limits_{a=1}^m\mathbb{I}_{\mathcal{f_{L_a}}^{-1}(h_a(\mathbf{\hat x}))}(l_j)
votej(x^)=a=1∑mIfLa−1(ha(x^))(lj),
v
o
t
e
j
max
=
∑
a
=
1
m
I
L
a
(
l
j
)
vote_j^{\max}=\sum\limits_{a=1}^m\mathbb{I}_{\mathcal{L}_a}(l_j)
votejmax=a=1∑mILa(lj)。
理解这个投票:咱们有一共m个模型,其中有
v
o
t
e
j
max
vote_j^{\max}
votejmax个模型的训练数据的标签都包含
l
j
l_j
lj,当预测到一个样本时,所有模型的预测结果中有
v
o
t
e
j
(
x
^
)
vote_j(\mathbf{\hat x})
votej(x^)个模型预测出有
l
j
l_j
lj标签,那么当
v
o
t
e
j
(
x
^
)
vote_j(\mathbf{\hat x})
votej(x^)大于
v
o
t
e
j
max
vote_j^{\max}
votejmax一半的时候,我们就认为该预测样本中是包含标签
l
j
l_j
lj的。
通俗理解:在所有模型中,其中3个模型的训练样本都包含了猫这个标签,当我们预测一个样本的时候,其中有两个模型都预测该样本有猫,那么咱们就认为该样本有猫;相反,如果只有1个模型预测出有猫,其它两个模型都没预测出,那么我们就认为这个预测出有猫的模型出错了,选择相信另外两个模型的结果。
RAkEL的缺点:
随机采样的方式并不能保证有效性;确认标签子集的过程中,并没有考虑到样本的特征信息;在各个标签子集中仍可能存在类别失衡的问题;子集中的类别可分离性影响着模型的性能。
AC
k
k
kEL:
相比RA
k
k
kEL,它的创新点在于划分子集这一部分,考虑了划分后子集形成的密集的可分性和类别平衡问题。
类别可分性是线性分析的引申(理论看得似懂非懂);通过标签的联合熵来平衡类别(没懂)。
基分类器就是
S
V
M
SVM
SVM,最后仍然是投票的方式决定标签是否存在。
总结
LP:考虑标签组合的所有形式,但复杂度高且容易数据饥饿;
RA
k
k
kEL:是将“大”的多标签问题化成“小”的多标签问题,在“小”的多标签问题中采用LP的方式解决问题;
AC
k
k
kEL:与RA
k
k
kEL思路一样,但在划分的过程中考虑了可分性和类别平衡等因素,使其效果更好。虽然套路懂了,但公式和推理还是超出了理解范围,准备二刷吧。
这篇已经在草稿箱放好久了,后面再补充内容吧。