Open wangqiangneu opened 5 years ago
CV里做unsupervised pre-training, 类似bert. 用的是contrast learning的方法,即给一个query(比如一个image的extracted features),和N+1个keys(其中一个是postive,N个negative,可以构造pretext task来产生正反例,比如说输入图片x,对它做两个随机的data augmentation,一个是query,另一个就是positive sample。在contrast learning的context里,N个negative是构成了dictionary,可以用queue来表示)。query和key被两个encoder分别表示(这里的$encoder{key}$的参数是由$encoder{query}$用momentum的方式得到的,本身不用learning). 最后将用(N+1)-way-softmax做分类
contrast learning
pretext task
dictionary
end-to-end
memory-bank
mean teacher
teacher
query
key
consistent
简介
CV里做unsupervised pre-training, 类似bert. 用的是
contrast learning
的方法,即给一个query(比如一个image的extracted features),和N+1个keys(其中一个是postive,N个negative,可以构造pretext task
来产生正反例,比如说输入图片x,对它做两个随机的data augmentation,一个是query,另一个就是positive sample。在contrast learning
的context里,N个negative是构成了dictionary
,可以用queue来表示)。query和key被两个encoder分别表示(这里的$encoder{key}$的参数是由$encoder{query}$用momentum的方式得到的,本身不用learning). 最后将用(N+1)-way-softmax做分类dictionary
的大小越大越好(N=65536,这个分类的类别数,跟NLP里的vocabulary size差不多哦,但是像bert这种,vocabulary是固定的,而cv里没有这种固定的vocabulary,用这种方式可以看做是创造固定size的分类数,所以叫dictionary)contrast learning
的方法中:end-to-end
. 但是这种方法是约束了negative只能从当前batch里构造,限制了dictionary sizememory-bank
. 解决了dictionary size的问题,它是从all dataset里随机sample,但是memory bank里存的表示是上一个epoch中每一个sample的结果,当时的网络得到的feature跟现在的feature分布会有差异,影响学习。即使在memory-bank
引入momentum的机制,它更新是sample的feature。而这篇文章里方法的关键点是更新的encoder的parameter论文信息
总结
mean teacher
。但区别是,mean teacher
是为了得到更好的teacher
,而这里是为了维护query
和key
表示的consistent
pretext task
还是挺有讲究的