解决的问题
一句比较有意思的调侃是,人工智能是先人工后智能,即先有大量的人工的数据标注,然后才能以此训练一个高效的网络。
码隆科技2018 ECCV的这篇论文提出了一种训练方法,能够在数据没有或者只有少量人工标注和清洗的情况下,仍然能利用这些噪声数据训练出一个高性能的深度学习模型。
方法
Overview
整个网络的Pipeline包含三个部分:
- initial features generation
- curriculum design
- curriculum learning
第一步是用全部的数据去学习一个初始化的模型;第二步,我们训练一个初始化网络的目的是,将训练的数据映射到特征空间中,来发现每一个类别的图片的底层的结构和图片之间的关系,提出了一个有效的定义图像复杂度的方法,进而通过复杂度来设计learning curriculum,它能够将每个分类中所有的图片分成一些按照复杂度排序的子集;第三步,然后我们用curriculum learning的思想从复杂度简单的包含所有类别的子集开始训练,然后逐步的用更复杂的数据去进行训练,以提高模型的能力。
Curriculum Design
具体的来说,将整个训练集分成了多个子集,这些子集从具有干净的图像和更可靠标签的简单子集到包含大量含噪声或者错误标签的图像进行排序
收到聚类算法的启发,在每个类别中进行下面的操作,第一步就是用全部的数据集去初始化一个inception_v2结构的模型,然后就是通过使用初始化模型的fc-layer特征将每个类别中的所有的图像都投影到深度特征空间中,对每一个图像
P
i
P_i
Pi去执行
P
i
→
f
(
P
i
)
P_i\rightarrow f(P_i)
Pi→f(Pi),然后去求欧氏距离矩阵
D
⊆
R
n
×
n
D\sube \R^{n\times n}
D⊆Rn×n
n
n
n指的是当前类别的图片的数量,
D
i
j
D_{ij}
Dij表示的是
D
i
D_i
Di和
D
j
D_j
Dj之间的相似度(一个较小的
D
i
j
D_{ij}
Dij意味着
P
i
P_i
Pi和
P
j
P_j
Pj之间有更高的相似度)。
首先,计算每张图片的局部密度
p
i
p_i
pi:
其中
其中
d
c
d_c
dc是通过对
D
⊆
R
n
×
n
D\sube \R^{n\times n}
D⊆Rn×n中的
n
2
n^2
n2个距离从小到大进行排序来确定的,并选择一个
k
k
k%的数字作为
d
c
d_c
dc,
p
i
p_i
pi是指到
i
i
i的距离小于
d
c
d_c
dc的样本数量。对于具有正确标签的图像来说,他们的外观是相似的,对应的他们的投影的距离应该就比较相近,这就产生了一个较大的局部密度,反之对于噪声大的图像,他们的局部密度就比较小。
对于每个图像的距离定义为
δ
i
\delta_i
δi
对于聚类中心的选择是最关键的地方,
δ
i
\delta_i
δi是每张图片的距离,对于有
p
j
>
p
i
p_j>p_i
pj>pi的图片
I
j
I_j
Ij,
δ
i
=
=
D
i
,
j
^
\delta_i==D_{i,\widehat{j}}
δi==Di,j
,
j
^
\widehat{j}
j
是数据中离
i
i
i最近的样本,如果说
δ
i
\delta_i
δi是所有密度中最大的一个,那么
p
j
p_j
pj就是
i
i
i和距离
i
i
i最远的数据点之间的距离,具有最大局部密度的点就具有最大的
δ
\delta
δ,这个点被选为这一类的聚类中心。选择好了聚类中心,然后就是用k-mean算法进行聚类,根据数据点到聚类中心的距离,将数据点分成若干簇。
对于整个的训练策略是比较简单的,首先是用所有的数据去训练一个inception_v2的结构,然后使用全连接层的特征来计算欧氏距离,进而去计算聚类中心,然后用k-mean算法进行聚类,将每一个类别的照片分为三个子集,按照复杂度进行排序,clean subsets、noise subsets and highly noise sunsets(对应的是他们在特征空间中的密度值是由高到低的)。第二步是,仅用clean subsets去训练一个standard convolutional architecture(sunch as inception_v2),这能够使这个模型去学习每个类别的一个基础的但是比较清晰的视觉信息,作为接下来过程的基础特征,然后当模型在第一阶段拟合之后,增加噪音数据继续学习,也就是noise subsets,虽然说这些数据中有不正确的标签,但是它大致保留了数据的主要结构,从而导致性能的提高。最后,就是用highly noise subsets去继续训练,需要说明的是,我们在前两个阶段已经获得了深度特征,最后这个阶段的highly noise subsets没有对模型产生消极影响,反而是增加了模型的泛化能力。