原文:https://arxiv.org/pdf/2108.02721.pdf
无监督特征表示(unsupervised feature representation)算是无监督聚类任务比较重要的一部分,其需要特征满足相同类别样本尽可能的靠近,不属于一个类别的样本特征之间尽可能远离。现有方法大致的思路都是先用encoder进行特征提取,之后利用相关方法寻找属于相同类别的样本集合,之后再返回去fine-tune之前的encoder,以此类推迭代训练。
可以发现这其中一个较为重要的点就是:如何正确的找到样本的正样本(具有相同类别)集合。传统方法是利用欧式距离度量每个样本的距离,并且认为距离较近的样本拥有相同的类标签,但作者认为,在样本映射到的流形空间上,样本之间的真实距离无法简单的用欧式距离来衡量,具体来说,如果我们用欧式距离去衡量较近的区域距离其实是可以近似真实距离,但如果两个样本间隔较远,则欧式度量与真实距离之间的差距就会很大,因此以往的方法会导致寻找到的距离较近的 k 个样本中存在不同类别的样本。
作者提出一个instance similatity learning(ISL)方法,利用GAN去挖掘潜在的流形空间,具体方法如图所示。
问题定义
X
ϵ
{
x
1
,
.
.
.
,
x
N
}
X\epsilon\left\{ x_{1},...,x_{N}\right\}
Xϵ{x1,...,xN}是大小为N的样本集合。
F
ϵ
{
f
1
,
.
.
.
,
f
N
}
F\epsilon\left\{ f_{1},...,f_{N}\right\}
Fϵ{f1,...,fN}是对应的特征表示。
S
ϵ
{
0
,
1
}
N
×
N
S\epsilon\left\{ 0,1\right\}^{N\times N}
Sϵ{0,1}N×N是样本语义间相似度矩阵(初始时为单位矩阵,代表每个样本只与自己语义相似度为1,与其余样本都为0),其中
S
i
j
S_{ij}
Sij表示样本
x
i
,
x
j
x_{i},x_{j}
xi,xj之间的语义相似度。
方法
对于每个样本,根据S采样一个包含anchor、正样本、负样本的三元组集合
{
f
i
a
,
f
i
p
,
f
i
n
}
\left\{ f_{i}^{a},f_{i}^{p},f_{i}^{n}\right\}
{fia,fip,fin},之后根据该三元组,Generator网络G生成一个proxy feature
f
i
g
f_{i}^{g}
fig,其主要有两个作用:
给定anchor
f
i
a
f_{i}^{a}
fia时辅助其扩大对应的正样本集合
P
i
P_{i}
Pi。更新样本的特征表示。
为了能够更好的挖掘到anchor对应的正样本,
f
i
g
f_{i}^{g}
fig需要具有以下两个属性:
f
i
g
f_{i}^{g}
fig需要与三元组中的负样本语义相似。 最开始时每个anchor的正样本集合中只有自己(即S初始化为单位矩阵),为了能够尽可能扩大正样本集合,需要让
f
i
g
f_{i}^{g}
fig与当前三元组中的负样本语义相似(因为当前的负样本有可能其实是正样本,只不过还没被识别出来)。论文的观点:迫使网络积极的去探索潜在的流形。
f
i
g
f_{i}^{g}
fig需要与三元组中的正样本语义相似。 让生成的proxy能够代表正样本。论文的观点:迫使网络能够更加精确的学习潜在的流形。
为了能够达到上述两个属性,作者同时构建了一个Discriminator网络D,其目的是计算
f
i
g
f_{i}^{g}
fig和正样本(或负样本)之间的语义相似度。具体方式:D需要区分真三元组
T
r
=
{
f
i
a
,
f
i
p
,
f
i
n
}
T_{r}=\left\{ f_{i}^{a},f_{i}^{p},f_{i}^{n}\right\}
Tr={fia,fip,fin}和伪三元组
T
s
p
=
{
f
i
a
,
f
i
g
,
f
i
n
}
T^{p}_{s}=\left\{ f_{i}^{a},f_{i}^{g},f_{i}^{n}\right\}
Tsp={fia,fig,fin}。该部分的损失函数为:
m
i
n
D
m
a
x
G
L
g
a
n
=
l
o
g
D
(
T
r
)
+
l
o
g
(
1
−
D
(
T
s
p
)
)
+
α
l
o
g
(
1
−
D
(
T
s
n
)
)
min_{D}max_{G}L_{gan}=logD(T_{r})+log(1-D(T_{s}^{p}))+\alpha log(1-D(T_{s}^{n}))
minDmaxGLgan=logD(Tr)+log(1−D(Tsp))+αlog(1−D(Tsn)) 其中构建伪三元组的
f
i
g
f_{i}^{g}
fig的计算方式为
f
i
g
=
G
(
T
r
)
f_{i}^{g}=G(T_{r})
fig=G(Tr),α为超参数。α越大,
f
i
g
f_{i}^{g}
fig越接近当前三元组中的负样本。 根据上述设定可以发现,
D
(
T
s
p
D(T_{s}^{p}
D(Tsp可以衡量proxy
f
i
g
f_{i}^{g}
fig和正样本
f
i
p
f_{i}^{p}
fip之间的语义相似性(因为
T
s
p
T_{s}^{p}
Tsp和
T
r
T_{r}
Tr之间的差距就是将
f
i
p
f_{i}^{p}
fip替换成了
f
i
g
f_{i}^{g}
fig),因此当一个样本
f
j
f_{j}
fj和
f
i
g
f_{i}^{g}
fig构成的三元组
T
s
p
T_{s}^{p}
Tsp的
D
(
T
s
p
)
D(T_{s}^{p})
D(Tsp)值很大,说明样本
f
j
f_{j}
fj有很大概率与当前anchor
f
i
a
f_{i}^{a}
fia类别相同,可以加入正样本集合
P
i
P_{i}
Pi(也要将其从负样本集中删除),则可以制定筛选规则如下:
f
j
=
{
f
j
∣
∥
f
i
g
−
f
j
∥
F
<
r
,
D
(
T
s
p
)
>
h
}
f_{j}=\left\{f_{j}| \left\|f_{i}^{g} -f_{j}\right\|_{F}< r,D(T_{s}^{p})>h\right\}
fj={fj∣∥fig−fj∥F
∥
⋅
∥
F
\left\| \cdot \right\|_{F}
∥⋅∥F表示Frobenius norm,即添加了额外的半径约束(在小范围内欧式度量还是可以近似真实距离的),r,h都是超参数。 作者认为由于
f
i
g
f_{i}^{g}
fig是G生成出来的,具有一定的随机性,因此最好要多生成几次找到一个最佳的proxy,即
f
i
g
∗
=
a
r
g
m
a
x
f
i
g
D
(
T
s
p
)
f_{i}^{g^{*}}=argmax_{f_{i}^{g}}D(T_{s}^{p})
fig∗=argmaxfigD(Tsp) 则挖掘正样本的公式就可以修改为
f
j
=
{
f
j
∣
∥
f
i
g
∗
−
f
j
∥
F
<
r
,
D
(
T
s
p
)
>
h
}
f_{j}=\left\{f_{j}| \left\|f_{i}^{g^{*}} -f_{j}\right\|_{F}< r,D(T_{s}^{p})>h\right\}
fj={fj∣∥∥∥fig∗−fj∥∥∥F
p
i
j
=
e
x
p
(
f
i
T
f
j
/
τ
)
∑
k
=
1
N
e
x
p
(
f
i
T
f
k
/
τ
)
p_{ij}=\frac{exp(f_{i}^{T}f_{j}/\tau )}{\sum_{k=1}^{N}exp(f_{i}^{T}f_{k}/\tau )}
pij=∑k=1Nexp(fiTfk/τ)exp(fiTfj/τ) 则如果二者是正样本,希望他们越接近好,因此构造损失如下:
L
1
=
−
∑
I
=
1
N
l
o
g
(
∑
f
k
ϵ
P
i
p
i
k
)
L_{1}=-\sum_{I=1}^{N}log(\sum_{f_{k}\epsilon P_{i}}^{}p_{ik})
L1=−I=1∑Nlog(fkϵPi∑pik) 根据以前的工作,困难正样本往往对训练益处更大,因此作者采取hard positive enhancemen(HPE)策略,作者定义对于anchor
f
i
f_{i}
fi的正样本中相似度
p
i
j
p_{ij}
pij最小的样本
f
j
f_{j}
fj被认为是困难正样本,记为
f
i
h
a
r
d
f_{i}^{hard}
fihard(对于初始正样本集合,其anchor自身经过数据增强之后的特征作为困难正样本),则构造损失如下:
L
2
=
∑
i
=
1
N
∑
k
=
1
N
p
i
k
l
o
g
p
i
k
h
a
r
d
p
i
k
L_{2}=\sum_{i=1}^{N}\sum_{k=1}^{N}p_{ik}log\frac{p_{ik}^{hard}}{p_{ik}}
L2=i=1∑Nk=1∑Npiklogpikpikhard 其中
p
i
k
h
a
r
d
p_{ik}^{hard}
pikhard为
f
i
h
a
r
d
f_{i}^{hard}
fihard和样本
f
j
f_{j}
fj之间的相似度。 总的损失如下:
L
=
L
1
+
λ
L
2
L=L_{1}+\lambda L_{2}
L=L1+λL2 最后为了减少计算每个特征相似度的计算量,作者构建了memory bank来存储样本的特征表示(初始化为N个随机向量),其更新方式如下:
f
^
i
=
η
f
i
+
(
1
−
η
)
f
^
i
\hat{f}_{i}=\eta f_{i}+(1-\eta )\hat{f}_{i}
f^i=ηfi+(1−η)f^i 其中
f
i
f_{i}
fi为最新学到的特征,
f
^
i
\hat{f}_{i}
f^i为memory bank里存储的特征。
转载于:https://zhuanlan.zhihu.com/p/420636676
精彩文章
发表评论