self-ensemble label filtering自集成标签滤波
模型将噪声标签剔除出来,仅对干净的数据训练。
剔除数据
主要思路:模型在训练时,对于那些噪声标签的样本的预测值常常飘忽不定(文章是这么指出的,准备做复现的时候试一试),因此采用信号处理中的滤波,而实现的方法是对模型求均值。
-
Model ensemble:在训练过程中对模型的参数进行移动平均,当训练数据更新normal model参数时,通过权重的指数移动平均来维护teacher model,同时利用正则项来令两个model尽量保持一致,最后用teacher model的输出作为预测结果;
-
Predictions ensemble:在不同的epoch上对teacher model的预测值取平均,公式很简单, 对于第j个epoch,计算模型输出 z 的指数移动平均z = a * z(j-1) + (1-a) * z,其中 a 是momentum参数。
这样就可以根据平均的预测结果识别出噪声样本,检查该样本的标签和teacher model是否一致,若一致则会被认定为干净样本,否则想、在这个epoch将会被认定为噪声样本且被踢出下一个epoch的训练
从右图可以看出,做了移动平均之后,噪声标签y的预测概率不高,所以不会参与下一epoch训练
SELF模型流程图
算法流程
- 让Mean-Teacher模型对所有样本进行预测
- 计算预测值的指数移动平均,检查其最大预测值的类别标签是否与给定的标签一致,若不一致则暂时排除出训练集
- 用过滤后的数据集来训练Mean-Teacher模型
- 不断重复上述步骤,直到模型在验证集上的性能不再提高
Mean Teacher
算法的整体包括两个网络,teacher网络 和 student网络
teacher 是 student网络的一份复制,因此网络结构相同,但是网络更新的方式不同,因此是两个独立的网络
其中 student模型 权重 θ \theta θ 输入噪声 η \eta η,
teacher模型 权重 θ ′ \theta' θ′ 输入噪声 η ′ \eta' η′
定义了一致性损失(consistency cost) J 衡量 t和s 的预测的距离
J ( θ ) = E x , η ′ , η [ ∥ f ( x , θ ′ , η ′ ) − f ( x , θ , η ) ∥ ] J(\theta)=\mathbb{E}_{x,\eta',\eta}\left [ \left | f(x,\theta',\eta') - f(x,\theta,\eta) \right | \right ] J(θ)=Ex,η′,η[∥f(x,θ′,η′)−f(x,θ,η)∥]
student通过梯度下降更新参数,teacher通过student的参数更新
-
teacher的参数更新
teacher的参数通过EMA得到training step θt: θ t = α θ(t − 1) ′ + ( 1 − α ) θ t
-
student的参数更新
SGD