记录文章《Barlow Twins: Self-Supervised Learning via Redundancy Reduction》阅读笔记,论文地址。

1 Abstract & Introduction

自监督学习正在迅速发展,它主要是通过学习输入样本的不同distortions版本的不变性embedding特征。其中distortions意思就是同一输入样本经过不同的图像增强变换方式(比如随机裁剪、resize等)得到的不同版本。但这种方法会比较容易出现平凡解,现有方法都是通过实现上的细节来避免平凡解。

本文提出了一种新方法Barlow Twins,它并不太注重样本,也无需使用负样本进行训练(因此不受限于批量大小,可以在小批量数据上进行训练),而是从embedding本身出发,也不需要非对称的结构设计,相比于其他方法使用大批量样本数据,该方法使用高维的embeddings即可。
它将不同的增广样本送入相同的网络中得到两个不同的embeddings,然后计算它们的cross-correlation matrix(互相关矩阵),利用损失函数来降低冗余:使这个互相关矩阵尽可能接近identity matrix(单位矩阵),即对角线元素接近1,非对角线元素接近0,因此就代表着同一样本不同增广版本经过网络后提取的两个特征向量的相同维度分量非常相似,不同维度分量的冗余应该最小化(意味着表示不同的信息)。

如下图所示 Y A Y^A YAY B Y^B YB是输入样本X的不同增广版本, Z A Z^A ZAZ B Z^B ZB是它们经过同一网络后得到的embeddings,C即 Z A Z^A ZAZ B Z^B ZB经过运算后的互相关矩阵,之后再让C逼近于单位矩阵I。

2 Method

Barlow Twins方法设计了自己独特的损失函数,对一个batch来说:

其中 λ \lambda λ是一个正的常数,用来权衡损失函数第一项和第二项的重要性。通过invariance term将C的对角元素等于1,使同一样本不同增广版本的embedding版本不变,redundancy reduction term将非对角元素等于0来减少冗余,对不同的embedding向量解相关。cross-correlation matrix C的计算方法如下:

其中b表示批量batch的索引,i和j是网络输出的特征维度(即当前batch中的某两个向量,i和j表示这两个向量的维度上对应的值, C i j C_{ij} Cij就是矩阵C中第i行,第j列的元素值,它等于两个不同增广后的特征向量 Z A Z^A ZA的第i个维度和 Z B Z^B ZB的第j个维度对应的乘积之和,求和主要是针对当前batch size,这里要详细计算的话可以参考伪代码,写两个矩阵相乘就明白了),C是一个平方矩阵,方阵维度就是网络的输出维度(假设网络输出的每个embedding维度是D,则方阵C的维度是DxD),它的值都在-1(完全负相关)和1(完全相关)之间。

该算法的伪代码如下所示:
在该伪代码中,计算出矩阵C之后,(C-eye(D)).pow(2)的意思是由于eye为单位矩阵,所以相当于C的对角线元素( C i i C_{ii} Cii)全部减1再平方,非对角线元素( C i j C_{ij} Cij)直接平方;
下面接着一行off_diagonal(c_diff).mul_(lambda)表示提取出C的非对角线元素,让它们都乘以 λ \lambda λ
再接着一行loss = c_diff.sum()是C的所有元素都相加构成loss。

实现细节:
(1)图像增强
随机裁剪、resize大小至224×224、水平翻转、颜色抖动、转换为灰度、高斯模糊和solarization。其中前两个变换始终应用,后面五个变换以一定的概率随机应用。
(2)网络结构
使用ResNet-50结构(没有最后的分类层),后面紧接着是一个有三层线性层的projector网络,每层输出维度都是8192,前两个线性层后面跟BN层和ReLU。
将encoder(ResNet-50)的输出称为representations,用于下游任务;将projector的输出称为embeddings,用于损失函数。
(3)优化
使用LARS优化器,1000个epoch,batchsize为2048(也可以缩小到256),weights的学习率设置为0.2,biases和BN参数的学习率设置为0.0048等等。

3 Results

ImageNet上的线性分类和半监督
1、在ImageNet上的线性分类器(都使用本文方法的ResNet-50 encoder):

2、在ImageNet上的半监督学习

转移到其他数据集和任务(即迁移学习)
1、图像分类

2、对象检测与实例分割

4 Ablations(消融实验)

(本部分参考链接)
文章还进行了一系列的消融实验,包括损失函数、BatchSize、增强手段、映射网络的深度与宽度、网络结构对称性等。
1、Loss Function Ablations
第二行和第三行为在损失函数中只使用对角元素和非对角元素的实验结果,只使用对角线元素时还可以取得一定的实验效果,但是只使用非对角线元素时结果接近0。另外,从第三部分中可以看出,normalize的方法不是很重要,但是必须得有,不然结果会大幅下降,但是MLP中的BN可以不需要。

2、Robustness to Batch Size
从下图可以看出,本文方法不需要很大的batch size也可以取得不错的效果,但是随着batchsize的增加,效果反而会下降,原因主要来源于求矩阵C的时候,batch size越大,每次抽出来的特征维度就越大。

3、Projector Network Depth & Width
如下图,本文方法的性能随着projector网络输出维度的增大而增大,而其他大多方法会较早饱和。

4、Breaking Symmetry
本文方法不同于以往自监督学习的方法,本文使用的是对称(两个相同的)网络,如果使用不对称网络,方法性能会降低:

5、Sensitivity to λ
实验发现模型性能对超参数 λ \lambda λ不敏感,即性能差距不大:

6、数据增广
通过验证,说明了不同的数据增强方法是非常有必要的。

原文Discussion部分可以参考这里

参考链接:
2021(SSL) 自监督学习最新力作
Barlow Twins阅读笔记
self-supervised方法发展流程

自监督学习方法Barlow Twins相关推荐

  1. 自监督论文阅读笔记 Barlow Twins: Self-Supervised Learning via Redundancy Reduction

    自监督学习 (SSL) 正在迅速缩小与大型计算机视觉基准上的监督方法的差距. SSL 的一种成功方法是学习 对输入样本的变形 不变的嵌入.然而,这种方法的一个反复出现的问题是存在 无效的常数解.大多数 ...

  2. 这可能是最简单又有效的自监督学习方法了

    文 | 王珣@知乎 本文已获作者授权,禁止二次转载 从Kaiming的MoCo和Hinton组Chen Ting的SimCLR开始,自监督学习(SSL)成了计算机视觉的热潮显学.凡是大佬大组(Kaim ...

  3. Facebook人工智能的一种新的自我监督学习算法:Barlow Twins

    首先 近年来,在ImageNet等大规模计算机视觉基准中,自我监督学习已经开始与监督学习竞争.在计算机视觉中,已经引入了很多数据增强的自监督学习方式.目标是学习一个不受输入变化影响的通用表示.对于一个 ...

  4. 自监督学习(二十一)Barlow Twins: Self-Supervised Learning via Redundancy Reduction

    Barlow Twins: Self-Supervised Learning via Redundancy Reduction Introduction Method BARLOW TWINS方法描述 ...

  5. 2021(SSL) 自监督学习最新力作:Barlow Twins: Self-Supervised Learning via Redundancy Reduction

    文章目录 原文地址 论文阅读方法 初识 相知 2. Method 3. Results 4. Ablations 5. Discussion 回顾 代码 原文地址 https://arxiv.org/ ...

  6. 复现经典:《统计学习方法》第22章 无监督学习方法总结

    第22章 无监督学习方法总结 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者&qu ...

  7. 复现经典:《统计学习方法》第12章 监督学习方法总结

    第 12 章 监督学习方法总结 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者&q ...

  8. 复现经典:《统计学习方法》第 12 章 监督学习方法总结

    本文是李航老师的<统计学习方法>[1]一书的代码复现. 作者:黄海广[2] 备注:代码都可以在github[3]中下载. 我将陆续将代码发布在公众号"机器学习初学者", ...

  9. 监督学习和无监督学习_让半监督学习再次伟大!谷歌最新无监督数据增强研究,全面超越现有半监督学习方法...

      新智元报道   来源:GoogleAI 编辑:元子 [新智元导读]Google AI最新研究用无监督数据增强推进半监督学习,取得令人瞩目的成果.该方法超越了所有现有的半监督学习方法,并实现了仅使用 ...

最新文章

  1. UILabel中的多行文本
  2. 收藏一些效果炫酷的可视化网站
  3. 孩子觉得数学难?那是底子没打好!
  4. Shiro——从零开始进行详解官方入门案例
  5. mysql建考勤信息代码_基于Java+JSP+Servlet+Mysql的考勤管理系统
  6. WPS 二维表格匹配方式(利用VLOOKUP+IF/SWITCH多条件查询)
  7. 如何用wps自动生成目录,你学会了吗?
  8. 数据结构与算法st1:稀疏数组的学习(五子棋的存盘与续盘)
  9. word删除括号里内容
  10. ThreatScan-免费的网站在线安全检测平台_TScan
  11. Microsemi Libero系列教程(一)——Libero开发环境介绍、下载、安装与注册
  12. python turtle画有趣的图形_Python turtle库绘制简单图形
  13. 世界著名设计公司-网址介绍
  14. vmware启动虚拟机提示“无法连接虚拟设备ide1:0,主机上没有相对应的设备“
  15. 六、策略模式—旅行的交通工具 #和设计模式一起旅行#
  16. 90 后董事长的国内首个元宇宙婚礼!网友:不由得想起了 QQ 炫舞和飞车......
  17. Shadowing Japanese 中上 Unit 4
  18. android feature开关,Modem如何修改一个SBP feature的值
  19. 实现安卓直播-第三方平台(暴风云视频直播)
  20. 素材pptuku shutterstock站酷海洛创意海图片代创意矢量图片下载

热门文章

  1. 【我的JS第三本】JavaScript_DOM编程艺术第二版读书笔记
  2. 飞象星球进入北京多所学校,以个性化作业支撑精准教学
  3. 如何给视频制作更好的字幕效果
  4. linux 查看文件系统类型
  5. PHP 实现RSA,RSA2 加密和签名
  6. 2021-03-17-伪协议
  7. VBA列数字与字母互换
  8. C语言各种排序方法总结。
  9. Android开发:app工程集成银联支付功能(客户端)
  10. 区块链与大数据,打造智能经济