深度学习(自监督:SimSiam)——Exploring Simple Siamese Representation Learning

article/2025/9/30 20:00:13

文章目录

  • 前言
  • SimSiam简述
  • 实验

前言

该文章是何凯明组发表于CVPR2021上的文章,目前已获得最佳论文提名,主要解决自监督对比学习中的奔溃解问题。奔溃解即不论什么输入,特征提取器输出的特征向量都相同。

本文将简单介绍SimSiam,记录其中较有意思的实验结果。

作者并没有解释为什么SimSiam可以避免奔溃解,但文章的确非常出彩


SimSiam简述

在这里插入图片描述
上图即SimSiam的整体结构,具体而言

  • 对输入图像x施加数据增强,得到 x 1 x_1 x1 x 2 x_2 x2
  • x 1 x_1 x1 x 2 x_2 x2输入到同一个特征提取器中,并经过一个projection MLP处理得到 z 1 z_1 z1 z 2 z_2 z2
  • z 1 z_1 z1经过prediction MLP处理,得到 p 1 p_1 p1

对比学习的loss为
在这里插入图片描述
反向传播时, z 2 ∣ ∣ z 2 ∣ ∣ 2 \frac{z_2}{||z_2||_2} z22z2会被看成为常数,只有 p 1 ∣ ∣ p 1 ∣ ∣ 2 \frac{p_1}{||p_1||_2} p12p1会产生梯度,可以看到奔溃解是存在于解空间中的。

作者有对上述优化过程做一个解释,假设我们的损失函数为
在这里插入图片描述
F θ ( x ) F_\theta(x) Fθ(x)为神经网络, T ( x ) T(x) T(x)表示对数据x做数据增强, η x \eta_x ηx可看成是一个待估参数,上述式子的待估参数为 θ \theta θ η x \eta_x ηx,loss最小化的具体优化过程类似于坐标下降法,如下所示
在这里插入图片描述

η t − 1 \eta^{t-1} ηt1表示t-1次优化后, η \eta η的值, θ t \theta^t θt同理,首先将 η t − 1 \eta^{t-1} ηt1看成常数,求得 θ t \theta^{t} θt,在所有 θ \theta θ取值中, L ( θ t , η t − 1 ) L(\theta^t,\eta^{t-1}) L(θt,ηt1)取值将为最小,同理可求得 η t \eta^t ηt,其实就是坐标下降法。 η t \eta^t ηt的数学表达式可以通过下式求得
∂ L ( θ , η ) ∂ η = − E T [ 2 ( F θ t ( T ( x ) ) − η x ) ] = 0 \frac{\partial L(\theta,\eta)}{\partial \eta}=-E_T[2(F_{\theta^t}(T(x))-\eta_x)]=0 ηL(θ,η)=ET[2(Fθt(T(x))ηx)]=0
解得
在这里插入图片描述

通过蒙特卡洛近似,我们以一个样本做近似可得
在这里插入图片描述

T ′ ( x ) T'(x) T(x)表示对x施加数据增强,和 T ( x ) T(x) T(x)是一样的,这么写有助于后续的数学表达式书写,将上述式子代入式7中可得
在这里插入图片描述

上述式子可以看成对一张图片 x x x施加两次数据增强,得到 T ( x ) 、 T ′ ( x ) T(x)、T'(x) T(x)T(x),经过神经网络处理后,在特征空间做L2距离,反向传播时, F θ t ( T ′ ( x ) ) F_{\theta^t}(T'(x)) Fθt(T(x))看成为常数。当 F θ t ( T ′ ( x ) ) 、 F θ ( T ( x ) ) F_{\theta^t}(T'(x))、F_{\theta}(T(x)) Fθt(T(x))Fθ(T(x))经过L2归一化后,上述式子可以与SimSiam的loss做一个等价。

因此,SimSiam可以看成是一个含有两个待估参数集的优化问题。为了验证该假设,作者做了一组实验,如下所示
在这里插入图片描述
k-step表示先存储 k k k F θ t ( T ′ ( x ) ) F_{\theta^t}(T'(x)) Fθt(T(x)),将其看成常数,对式11中的 F θ ( T ( x ) ) F_{\theta}(T(x)) Fθ(T(x))进行k次梯度更新得到 θ t + k \theta^{t+k} θt+k,类似于优化式7.0。接着优化 η \eta η,即将 F θ ( T ( x ) ) F_{\theta}(T(x)) Fθ(T(x))看成常数,对式11中的 F θ t + k ( T ′ ( x ) ) F_{\theta^{t+k}}(T'(x)) Fθt+k(T(x))进行梯度更新,类似于优化式8.0。可以看到,优化结果非常好,证明了作者的假设。

上述过程中,我故意省去了prediction MLP,由于式10.0是对式9.0的粗略估计,因此作者假设prediction MLP弥补了粗略估计带来的误差,并通过实验进行了验证,在此不做记录。

算法伪代码如下
在这里插入图片描述

实验

此处不记录验证SimSiam可以避免奔溃解的有关实验,只记录一些有助于实践的实验结果

SimSiam是不需要负例的对比学习算法,因此其对batch size的大小是不敏感的,如下所示
在这里插入图片描述

除此之外,作者验证了prediction MLP的作用,如下所示,可见prediction MLP对于SimSiam的影响非常大
在这里插入图片描述
除此之外,作者还探究了在prediction MLP和projection MLP的输出层添加BN的影响,如下所示,BN层对SimSiam的影响也如此显著(捂脸),看起来对比学习对于一些细节操作异常敏感
在这里插入图片描述


http://chatgpt.dhexx.cn/article/8OrB4UB3.shtml

相关文章

siamese模型码详解(每一句代码都有解释!!!)

最近在研究Siamese模型来进行文本相似度的计算,今天就做一期代码详解,每一行的代码都会做出相应的解释,对于初学LSTM的人来说读懂代码是非常有必要的,Siamese模型就是将两个句子(训练数据)通过embeding层&a…

孪生神经网络(Siamese Network)详解

1. 要解决什么问题? 主要解决以下两类分类问题: 第一类,分类数量较少,每一类的数据量较多,比如ImageNet、VOC等。这种分类问题可以使用神经网络或者SVM解决,只要事先知道了所有的类。第二类,分…

Siamese Network (原理篇)

1. Siamese Network 用途 Siamese网络是一种相似性度量方法,当类别数多,但每个类别的样本数量少的情况下可用于类别的识别、分类等。传统的用于区分的分类方法是需要确切的知道每个样本属于哪个类,需要针对每个样本有确切的标签。而且相对来说…

siamese(孪生) 网络

siamese 网络, 是05年Yann Lecun提出来的。它的特点是它接收两个图片作为输入,而不是一张图片作为输入。 文献资料: 摘抄自caffe github的issue697 Siamese nets are supervised models for metric learning [1]. 译:孪生网络…

Siamese Network(孪生网络)

模型结构 上图是孪生网络的简单模型结构,思路很简单,就是输入两个样本到同样的网络(参数结构相同),最后计算两个网络输出的距离,如果距离较近就认为是同一类,较远就认为是不同的类别&#xff0c…

51、目标的相似度检测模型Siamese部署rk3399pro、ncnn、mnn进行推理加速

基本思想:需要一个判断目标相似度的模型,来比对被检测目标和既定目标的相似度,测试图片仅有的几张图片,感觉一般,量化图片尽量多点对于rknn 链接: https://pan.baidu.com/s/1NFjnCBh5RqJXDxEjl9TzHg?pwdxev4 提取码:…

SPCL:Siamese Prototypical Contrastive Learning

论文链接:https://arxiv.org/abs/2208.08819 BMVC 2021 abstract CSL(Contrastive Self-supervised Learning)的一个缺点是,对比损失函数需要大量的负样本,以提供更好的理想互信息边界。 通过变大batch size来增加负样本数理,同…

Exploring Simple Siamese Representation Learning论文笔记

写在前面 大三狗随手记录,不喜勿喷。 主要思想 Siamese network常常被用来计算图像的两个增强之间的相似性,但可能会造成模型坍塌(即输出恒定)。作者在本文提出了一个非常简单的Simple Siamese network,简称Simsiam…

SiamCAR:Siamese Fully Convolutional Classification and Regression for Visual Tracking

文章目录 AbstractIntroductionProposed MethodFeature ExtractionBounding Box PredictionThe Tracking Phase 值得关注的几个问题Q1:输入的图片大小不一?Q2:在两者做相关性之前,如何得到特征图?Q3:两者的相关性计算是如何实现的&#xff1f…

TensorFlow搭建VGG-Siamese网络

TensorFlow搭建VGG-Siamese网络 Siamese原理 Siamese网络,中文称为孪生网络。大致结构如下图所示: Siamese网络有两个输入,一个输出。其中,两个输入经过相同的网络层知道成为一个n维向量,再对这个n维向量进行求距离&…

mesa 概述

技术关键词:mesa、OpenGL、dri、gpu、kmd、xsever 目录 一、mesa概述 二、mesa架构 1. 架构设计 2. 模块划分 三、mesa与linux图形系统中的其他模块的关系 四、mesa的编译 五、链接资源 总结 一、mesa概述 mesa是OpenGL、OpenGL ES、Vulkan、OpenCL的一个开…

Siamese 网络(Siamese network)

来源:Coursera吴恩达深度学习课程 上个文章One-Shot学习/一次学习(One-shot learning)中函数d的作用就是输入两张人脸图片,然后输出相似度。实现这个功能的一个方式就是用Siamese网络。 上图是常见的卷积网络,输入图片…

MISF:Multi-level Interactive Siamese Filtering for High-Fidelity Image Inpainting 论文解读与感想

深度学习模型被广泛应用于各种视觉任务的同时,似乎传统的图像处理方式已经被人们渐渐遗忘,然而很多时候传统图像处理方式的稳定性和可解释性依然是深度学习模型所不能达到的。本文是CVPR2022的一篇将传统与深度相结合进行inpainting的文章。 在图像inpa…

Siamese系列文章

说明 在学习目标追踪方面,慢慢读懂论文,记录论文的笔记,同时贴上一些别人写的非常优秀的帖子。 文章目录 说明综述类型笔记SiamFC笔记 SiamRPN笔记 DaSiamRPN笔记 SiamRPN笔记复现 SiamDW笔记 SiamFC笔记 UpdateNet笔记 SiamBAN笔记 SiamMa…

SiamRPN阅读笔记:High Performance Visual Tracking with Siamese Region Proposal Network

这是来自商汤的一篇文章 发表在CVPR2018上 论文地址 目录: 文章目录 摘要1.引言2.相关工作2.2 RPN2.3 One-shot learning 3.Siamese-RPN framework3.1 孪生特征提取子网络3.2 候选区域提取子网络3.3 训练阶段:端到端训练孪生RPN 4. Tracking as one-sho…

【度量学习】Siamese Network

基于2-channel network的图片相似度判别 一、相关理论 本篇博文主要讲解2015年CVPR的一篇关于图像相似度计算的文章:《Learning to Compare Image Patches via Convolutional Neural Networks》,本篇文章对经典的算法Siamese Networks 做了改进。学习这…

【论文阅读】Learning to Rank Proposals for Siamese Visual Tracking

Learning to Rank Proposals for Siamese Visual Tracking:2021 TIP 引入 There are two main challenges for visual tracking: 首先,待跟踪目标具有类不可知性和任意性,关于目标的先验信息很少。 其次,仅仅向跟踪器…

深度学习笔记-----多输入网络 (Siamese网络,Triplet网络)

目录 1,什么时候需要多个输入 2,常见的多输入网络 2.1 Siamese网络(孪生网络) 2.1 Triplet网络 1,什么时候需要多个输入 深度学习网络一般是输入都是一个,或者是一段视频切片,因为大部分的内容是对一张图像或者一段…

Siamese networks

Siamese Network 是一种神经网络的架构,而不是具体的某种网络,就像Seq2Seq一样,具体实现上可以使用RNN也可以使用CNN。Siamese Network 就像“连体的神经网络”,神经网络的“连体”是通过共享权值来实现的(共享权值即左…

Siamese Network理解(附代码)

author:DivinerShi 文章地址:http://blog.csdn.net/sxf1061926959/article/details/54836696 提起siamese network一般都会引用这两篇文章: 《Learning a similarity metric discriminatively, with application to face verification》和《 Hamming D…