参考了论文Pseudo-Label : The Simple and Efficient Semi-Supervised Learning Method for Deep Neural Networks

对于unlabeled date,选择预测概率最大的作为该样本的伪label,如下式:

y = egin{cases} 1 &	ext{if } i = argmax_{i} f(x) \ 0 &	ext otherwise end{cases}

不同的是:pseudo label用在了fine-tune阶段。

Pre-trained Model用labeled和unlabeled的数据一起训练

总结的Loss形式如下:

L = frac{1}{n}sum_{m=1}^{n}sum_{i=1}^{C}L(y_i^m,f_i^m)+alpha(t)frac{1}{n}sum_{m=1}^{n}sum_{i=1}^{C}L({y}_i^m,{f}_i^m)

n和n为mini batch的大小,C为类别个数,f为网路输出,y和y分别为Label和pseudo label,α为平衡系数,是关于训练时间t的函数。首先,在一开始α为0,模型只训练有标记的样本,从而尽快学习,之后α开始缓慢增加,知道达到某个迭代次数后,停止增加。从而实现半监督学习。

alpha(t) = egin{cases} 0 &	ext{ } t<T_1 \ frac{t-T_1}{T_2-T_1}alpha_f &	ext{} T_1 le t le T_2 \ alpha_f &	ext{} T_2 le t end{cases}


使用pseudo label作为ground truth来训练下一个网路,看了师兄paper reading上讲的那两篇,都是用Unlabeled data先过一遍网路得到pesudo label,后面的训练在用这些pesudo label作为GT进行有监督的学习,损失函数的形式也是各个部分以平衡系数相加。

1. Multiple Instance Detection Network with Online Instance Classifier Refinement (ICCV2017)

- 输入:使用SS生成大约2000个object proposals

  • 网路组成:一个base network(MIDN)用来作为基础的instance分类网路,loss为多分类交叉熵,输出的结果进一步进行多次refinement,文章进行了两次refinement
  • loss:总的形式:

第一项为基础网路的交叉熵loss,其中 φc由加权的sum pooling得到,值在(0,1)之间

第二项为各轮refinement的Loss和,第k轮的refinement的Loss形式如下:

其中 y{cj}^k = 1 代表第j个proposal在k轮refinement中与Proposal (j{c}^{k-1}) 的交叠比很高,则令proposal j为第c类。R为proposal集合

2.Tell Me Where to Look: Guided Attention Inference Network

  • 网路框架

  • loss三部分构成

L_{ext}=L_{cl}+alpha L_{am}+wL_e

Attention mining loss

L_{am}=frac{1}{n}sum_{c}s^c(I^{*c})

其中是 I^{c} 是在attention map上生成的soft mask s^c(I^{c})I^{*c} 对于c类的预测分数,n是该图像的GT label的个数,

L_{cl} 使用的是多标签的soft margin loss

对于额外的有监督的学习,额外的加了下面的Loss

L_e = frac{1}{n}sum_c(A^c-H^c)

其中 H^c是额外的有监督学习,如pixel-level的segmentation Mask


推荐阅读:
相关文章