一、相关理论
- 文献《Mean teachers are better role models》, 提出采用权重平均来取代以前所用的预测 label 结果平均的方案。由于教师模型是连续学生模型的平均值,我们将其称为均值教师方法。
- 与对抗网络类似,其整体架构包含了两个网络:teacher 网络、student 网络。不过与对抗网络不同的是:这两个网络结构是相同的,teacher网络参数通过 student 网络计算得到;student网络参数通过损失函数 L = L 1 + L 2 L=L1+L2 L=L1+L2 梯度下降更新得到。
- 分类成本(classification cost )将学生模型的Softmax输出与One-Hot Label进行比较,并使用一致性成本将其与教师输出进行比较。
- consistency cost 是Student Model的预测值Ys1、Ys2,Teacher Model的预测值Yt1、Yt2对应的差异。
二、算法流程
假设,训练样本为X1,X2,其中X1是带标签的数据(标签L1),X2为无标签数据,Ys1、Ys2为Student Model的预测值,Yt1、Yt2为Teacher Model的预测值,具体过程:
三、伪代码
- 设计一个监督网络结构作为student 网络,并拷贝一份作为 teacher 网络;
- 在每次训练选代的时候,选择同样的一批样本中image分别加入随机噪声,输入网絡student、teacher网络;
- 增加 student 和 teacher 的 consistency cost 损失函数,即MSE;
- 更新 student 权重,根据 L = L 1 + L 2 L=L1+L2 L=L1+L2 进行梯度下降,求解更新Student网络参数;
- 根据更新后的student 权重,计算teacher 权重。
a的选择: 在网络最开始训练阶段,由于参数是随机初始化而来,其对于类别的分类肯定也是大部分不正确的,所以teacher 和student 输出标签不同比较正常,所以一开始的时侯a值得选择,不应该选择太大,应该从零开始,直到teacher 网络到达一定的准确率后才开始增加,随着训练的进行进行递增到 0.99。
扩充噪声: 对于同样的输入样本X,我们通过扩充变换、加入噪声等,然后得到输入 teacher、student 网络数据,这样由于加了噪声,所以teacher 和student 的输入有可能是不同的,这样训练出来的网络,同时也让网络具备抗噪声的能力,得到的精度更高。
四、半监督框架
半监督算法的理论:一致性正则化,伪标记,熵最小化
一般而言,通过对原始样本和其扰动版本的分类器输出进行衡量,即可实现一致性正则化,常见的衡量方式有MSE、KL散度、JS散度等。在MixMatch中通过对图像的标准数据增强(水平翻转、裁剪)实现扰动(Augment),采用MSE准则方式衡量。
-
MixMatch文章解读+算法流程+核心代码详解,MixMatch抓住了半监督算法的两个重要观点:第一是熵最小化;第二是一致性正则化。结合这两个观点的算法就形成了MixMatch。有代码。
-
FixMatch文章解读+算法流程+核心代码详解,FixMatch算法抓住了半监督算法的两个重要观点,第一个是一致性正则化,第二个是伪标记。多出来一个阈值来判断是否可以当成伪标签, 其他与MT相似,有代码。
-
Virtual Adversarial Training文章解读+算法流程+核心代码详解,代码核心就一个VAT_Loss的计算。 virtual adversarial training的创新在于能在无标记样本上实现扰动的计算,因为没用使用标签进行运算,而是用模型预测的结果替代标签,类似于persudo label,这就是virtual的含义。
-
MisMatch, Learning Morphological Feature Perturbations for Semi-Supervised Segmentation。该文章主要是一个编码,两个解码,感觉两个解码头有点问题,但是没看代码,后面再看。
-
Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks,提出加入了伪标签和去噪自编码器。DeepLabv3+网络,spatial pyramid pooling module(SPP)可以捕获更多尺度信息,encoder-decoder结构可以更好恢复物体的边缘信息 ,DeepLabv3+网络将上面两个有点都用到来构建网络。V2以后主要是引入了atrous spatial pyramid pooling(ASPP),利用不同膨胀因子的空洞卷积融合多尺度信息 。其实就是利用空洞卷积(带孔卷积)用不同的rate来对图像特征进行操作的。
-
ST++: Make Self-training Work Better for Semi-supervised Semantic Segmentation(让自我训练更好地用于半监督语义分割 ),通过对未标记的图像引入强数据增强来构建一个用于半监督语义分割的强自训练基线,以期减轻过度拟合的噪声标签,并解耦教师和学生之间的相似预测。此外,还提出了一种先进的框架来逐步利用未标记的图像。
-
信号数据扩增方法,对image进行翻转、旋转、加噪,说明翻转优于旋转优于加噪,且加噪效果很差。
-
自适应增强Adaboost算法原理分析和实例+代码(简明易懂),前一个基本分类器被错误分类的样本的权值会增大,而正确分类的样本的权值会减小,并再次用来训练下一个基本分类器。同时,在每一轮迭代中,加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数才确定最终的强分类器。
-
YOLOv7来临:论文解读附代码解析,提出的方法是一种新的标签分配方法 ,通过引导头的预测来引导辅助头以及自身。换句话说,首先使用引导头的prediction作为指导,生成从粗到细的层次标签,分别用于辅助头和引导头的学习,
五、医学图像中的应用
- ※ 半监督3D医学图像分割(一):Mean Teacher,可以试试。代码LASeg
- ※ 半监督3D医学图像分割(二):UA-MT,代码可用,再MT基础上增加了不确定性自感知模型(Uncertainty-Aware Self-ensembling Model),train_UAMT.py、UA-MT
- ※ MTCL :用于肝血管分割的平均教师辅助置信学习
- 半监督3D医学图像分割(三):URPC
- 半监督3D医学图像分割(四):SASSNet
- ※ MeanTeacher文章解读+算法流程+核心代码详解,代码可用。
- ※ 知识蒸馏综述:代码整理,损失和代码。
- ※ 浅谈计算机视觉中的知识蒸馏,理论 。
参考文献
[1] 有监督、半监督、无监督、弱监督、自监督的定义和区别
[2] 深度学习(七十四)半监督Mean teachers
[3] Entropy(熵)、Cross_Entropy(交叉熵)、KL散度
[4] Conditional Convolutions for Instance Segmentation知识点总结
[2] 半监督学习(Semi-Supervised Learning, SSL)-简述及论文整理