SimCLR损失函数详解

图片来源:Self-Supervised Learning 超详细解读 (二):SimCLR系列

文章目录

  • 1. 数据增强
  • 2. 获得图片表征
  • 3. 正样本和负样本构建
  • 4. 计算相似度
  • 5. 计算图片之间相似的概率
  • 6. 损失函数
  • 为什么需要大规模的batchsize?

1. 数据增强

有一批batchsize为N的样本,论文中N=8192,下图以N=2为例;

对一个batch中的每个样本都进行2次随机的数据增强(随机裁剪之后再resize成原来的大小、随机色彩失真、随机高斯模糊3种方式)

对每张图片 x i x_i xi得到2个不同的数据增强结果( x i 1 和 x i 2 x_i^1和x_i^2 xi1xi2),所以1个Batch 一共有 N*2 个增强样本图片。

在这里插入图片描述

2. 获得图片表征

经过resnet网络提取特征+预测头,提取到了最终的visual representation。
在这里插入图片描述

3. 正样本和负样本构建

对于一个batch中,由同一张图片数据增强过的两张图片( x i 1 和 x i 2 x_i^1和x_i^2 xi1xi2)组成一个positive pair,他们互为正样本
其余任意两两图片之间的组合组成的图片对即为负样本。即N组pair中有一对positiveN-1对negative样本。

在这里插入图片描述

4. 计算相似度

使用余弦相似度衡量两两向量之间的相似度,公式如下所示:
在这里插入图片描述

5. 计算图片之间相似的概率

使用softmax计算概率:

在这里插入图片描述

该计算表达的 x i 1 x_i^1 xi1 x i 2 x_i^2 xi2最相似的概率,即第一张图片作为参考,计算另外三张图片,哪个最像

分子为 x i 1 x_i^1 xi1 x i 2 x_i^2 xi2的相似性取对数,分母为 x i 1 x_i^1 xi1与一个batch中另外 2 N − 1 2N-1 2N1张图片的相似性求对数的和。故分子为1对的相似性,分母为2N-1对图片的相似性的和

6. 损失函数

我们希望上面的softmax的结果尽量大(同一张图片增强出来的两张图片互为正样本,相似度越大越好),所以损失函数取了softmax的负对数:
在这里插入图片描述
接下来再计算是 x i 2 x_i^2 xi2 x i 1 x_i^1 xi1最相似的概率然后取-log, 即对第一对的计算交换顺序再计算一遍;

在这里插入图片描述
最后,计算每个Batch里面的所有Pair(共有N个图片对,2N个交换顺序之后的pair) 的损失之和取平均:

在这里插入图片描述

为什么需要大规模的batchsize?

更大的训练批量和训练轮数,可以提供更多的负样本,促进模型收敛。

可以增加负样本的数量,在计算概率的时候,计算公式的分母中就包含了负样本的计算
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode-旋转链表问题

1.旋转链表 题目描述: 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 思路: 这里向右移动k个位置,相当于从链表的倒数第k个节点处断开,之后再将断开的两个子链表按照相反顺序…

【数据结构和算法】--队列

目录 队列的概念及结构队列的实现初始化入队出队其他一些队列函数 小结队列相关题目 队列的概念及结构 队列是只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 的原则。 入队列&#xf…

持续集成交付CICD:通过API方式上传Nexus制品

目录 一、实验 1.通过API方式上传Nexus制品 二、问题 1.如何通过API方式上传PNG图片 2.如何通过API方式上传tar.gz 与 ZIP文件 3.如何通过API方式上传Jar file文件 4.如何通过API方式上传制品(maven类型的制品)文件 5.如何下载制品 一、实验 1.通…

各地加速“双碳”落地,数字能源供应商怎么选?

作者 | 曾响铃 文 | 响铃说 随着我国力争2030年前实现“碳达峰”、2060年前实现“碳中和”的“双碳”目标提出,为各地区、各行业的低碳转型和绿色可持续发展制定“倒计时”时间表,一场围绕“数字能源”、“智慧能源”、“新能源”等关键词的创新探索进…

【教程】Ipa Guard为iOS应用提供免费加密混淆方案

概述:使用ios加固工具对ios代码保护,保护ios项目中的核心代码, #ipagurd年终大促百厂联动暖冬特惠,超多软控件立享惊喜优惠>> ​ 简介 iOS加固保护是直接针对ios ipa二进制文件的保护技术,可以对iOS APP中的可…

Leetcode—113.路径总和II【中等】

2023每日刷题(五十七) Leetcode—113.路径总和II 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* …

使用 Taro 开发鸿蒙原生应用 —— 当 Taro 遇到纯血鸿蒙 | 京东云技术团队

纯血鸿蒙即将到来 在今年 8 月的「2023年华为开发者大会(HDC.Together)」上,华为正式官宣「鸿蒙Next」,这个更新的版本将移除所有的 AOSP 代码,彻底与 Android 切割,使其成为一个完全自主研发的操作系统&a…

数据挖掘目标(Kaggle Titanic 生存测试)

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns1.数据导入 In [2]: train_data pd.read_csv(r../老师文件/train.csv) test_data pd.read_csv(r../老师文件/test.csv) labels pd.read_csv(r../老师文件/label.csv)[Su…

SqlServer中,数字-null的问题

一、业务描述 叫货单,已知叫货金额,填写本次付款金额,计算待付款金额 二、问题 在计算待付款金额时,偶尔会出现待付款金额为空的情况,百思不得其解 三、解决 仔细检查,发现了猫腻。 简单的说&#xff…

阿里云SMC迁移RedHat/CentOS 5 内核升级

阿里云SMC迁移RedHat/CentOS 5 内核升级 1. 起因 服务器需要迁移上阿里云,有几台服务器用的是Redhat 5.x,在使用SMC进行迁移时出现以下报错. [2023-12-13 09:50:55] [Error] Check System Info Failed, codeS16_111, msgGet OS Info Failed: [error] grub is too old for C…

33、变种卷积 - 分组卷积

这一节再了解一个卷积的变种,叫作分组卷积,这部分了解即可。 1、 什么是分组卷积 网上有很多关于分组卷积的资料。我整理了下,其实分组卷积是将卷积在channel 维度分组来计算,以达到将一个大卷积分成多个小卷积的目的。 为了清晰,我将卷积操作简化为一次最简单的乘累加运…

冒泡排序(函数)

冒泡排序&#xff0c;将一个列表中的两个元素进行比较&#xff0c;并将最小的元素交换到顶部。两个元素中较小的会冒到顶部&#xff0c;而较大的会沉到底部&#xff0c;该过程将被重复执行&#xff0c;直到所有元素都被排序。 输入格式: 输入在第1行中给出N&#xff08;1<N…

路径总和(递归)

112. 路径总和 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &a…

Llama2-Chinese-7b-Chat安装部署

文章目录 前言一、文件介绍 &#x1f4c1;二、环境配置 ♟三、Llama2-Chinese-7b-Chat下载 ⏬总结 前言 本文主要介绍如何使用Llama2-Chinese-7b-Chat&#xff0c;最后的效果如图所示&#xff1a; 一、文件介绍 &#x1f4c1; ⬇️ 下载地址&#xff1a;https://pan.baidu.…

如何实现nacos的配置的热更新

我们在使用nacos进行修改配置后&#xff0c;需要微服务无需重启即可让配置生效&#xff0c;也就是使配置进行热更新我们可以采用下面的两种方式进行配置的热更新操作 方式一&#xff1a;在Value所注入的变量的类上添加注解RefreshScope RestController RequestMapping("/o…

Linux基本操作指令

哈喽小伙伴们&#xff0c;从这篇文章开始&#xff0c;在学习数据结构的同时&#xff0c;我们开启一个新的篇章——Linux操作系统的学习&#xff0c;这将会是又一个新的开始&#xff0c;希望小伙伴们能够认真细心&#xff0c;不要掉队哦。 目录 一.什么是Linux 二.为什么要学习…

git 相关操作说明

1.先下载git相关软件 下载地址&#xff1a; https://git-scm.com/download/win下载其中一个安装 2.打开gitee网站&#xff0c;注册账号 3.打开个人中心&#xff0c;选择ssh公钥&#xff0c;查看如何生成公钥 4.生成公钥后&#xff0c;添加相应的公钥 具体仓库操作 1.第一…

【Android】完美解决Cannot resolve method ‘subscribe(Observer<T>)‘

问题截图&#xff1a; 解决方法&#xff1a; 如上图&#xff0c;看我标123的三个地方&#xff0c;2标注的地方提示我们我方法实际返回的值是Observer<Res_GetCellCode>,而我想要返回的结果是&#xff1a;3标记的结果&#xff1a;Observer<Res_QueryCTInfo>&#xf…

git拉取代码冲突处理

参考文章&#xff1a;https://www.jianshu.com/p/b74ee1f4135f 问题&#xff1a; 因为git commit前没有git pull同步远程分支的代码&#xff0c;所以push会发生错误 解决办法&#xff1a; 1、可以使用git reset --hard HEAD^来回退到上一次commit的状态。此命令可以用来回退到…

智能优化算法应用:基于引力搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于引力搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于引力搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.引力搜索算法4.实验参数设定5.算法结果6.…