参考目录:
本篇文章主要讲解两个无监督2020年比较新比较火的论文:
BYOL是Boostrap Your Own Latent,这个无监督框架非常的优雅和简单,而且work。收到了很多人的称赞,上一个这样起名的在我认知中就是YOLO。两者都非常简单而优美。
这个结构有两个网络,一个是online network,一个是target network。
来表示online network的参数,包含,encoder
,projector
和predictor
来表示参数,也有
和
,但是没有predictor。
我们会更新online network,然后用滑动平均的方式,更新target network:
现在我们有一个图像数据集D,其中获取一个图片
,然后我们对这个D做不同的图像增强,得到了两个新的分布
和
,然后从两个新分布中获取的图片,用
和
标记。也就是说,如果用
和
表示对图像做图像增强的过程,那么
。
我们现在有
,经过encoder,得到
,经过prejector,得到
,经过predictor,得到
;同理,target network也是如此,只是没有最后的predictor,最终得到
。
我们对
和
做l2-normalization,含义为取出这两个隐含变量的绝对大小,而保留其方向性,为后面要做的向量点乘做铺垫。
上图中,
,损失函数不难,其实有点像是:
上面,我们得到了损失
,接下来,我们需要计算symmetric loss,这个是把v和v‘分别放入target network和online network计算,得到的
,然后论文中提到,通过SGD来最小化
需要注意的是,这个优化的过程,仅仅更新online network,target network的参数不变化,目的是让online network逐渐拥有target network的性能
因此,这个BYOL的整个训练过程可以浓缩成下面的两行:
上图中的encoder
使用的是resnet50和post activation,这里第一次看到post activation,就去看了一下发现,其实就是先卷积还是先激活层,如果relu放在conv后面就是post activation,relu放在conv前面就是pre activation。
经过encoder,一个图片会输出2048个features,然后经过MLP,特征扩展到4096个特征,最终输出256个特征,在SimCLR模型中,MLP后跟了一个BN层和Relu激活层,但是在BYOP中没有BN层。
使用的是LARS优化器,使用cosine 学习率衰减策略,训练1000epoch,其中包含10个warn-up epoch。学习率设置的为0.2。
至于online更新到target的参数
,
,
k is current training step and K is maximum training steps.
batchsize为4096,分布在512个TPU v3的核,训练encoder大约需要8个hour。
在ImageNet上做监督学习,先用无监督训练好encoder后,然后用标准的resnet50进行监督微调:
前面同行,这里的监督训练也是获取ImageNet上的少部分数据集进行训练,所以叫做semi-supervised:
本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕,E-mail:xinmeigg88@163.com
本文链接:http://www.ksxb.net/tnews/2366.html