CLIP 对比学习 源码理解快速学习

最快的学习方法,理清思路,找视频讲解,看源码逻辑:
CLIP 源码讲解 唐宇

输入: 图像-文本成对配对的数据
训练模型的过程(自己理解):

怎么做的?:利用数据内部特征,相似与不相似,学习到能够同时表示图像和文本的潜在特征(相当于把图像和文本在同一个潜在空间里进行特征学习和表示)

为什么能学到呢?:相当于我已知这个图像跟这个文本是配对的,是相似的,或者说这两个东西是一个意思,然后把这两个当成正样本,计算正样本的相似度要越大越好,即学习到的图像和文本的潜在特征表示进行运算后得到的相似度要越大越好,所以反向约束表示图像和文本的特征要能够彼此互通,图像的特征向量能够跟文本的特征向量在语义上能够互相认识彼此,从而认出彼此是相似的。

对比损失函数:
对比损失函数
si,i :正样本相似度
si,k:负样本相似度
优化方向:分母的负样本相似度越小越好,小到0可忽略不计,这时正样本上下抵消为1,log1=0,loss为0.
τ是一个神秘的参数,大部分论文都默认采用较小的值来进行自监督对比学习(例如0.05)

  • 对比损失是一个具备困难负样本自发现性质的损失函数,这一性质对于学习高质量的自监督表示是至关重要的。关注困难样本的作用是:对于那些已经远离的负样本,不需要让其继续远离,而主要聚焦在如何使没有远离的负样本远离,从而使得表示空间更均匀(Uniformity)
  • τ的作用是调节模型困难样本的关注程度:τ 越小,模型越关注于将那些与本样本最相似的负样本分开

累加是相当于i要跟多个非i的剩余负样本计算,比如有5-5的图像文本对,1-1为正样本,1跟2~5都为负样本,都要计算相似度,所以要累加。

模型能力(用训练好的模型进行推理):

  1. 给一个模型没见过的图像,和几个没见过的文本,能够判断图像跟哪个文本是更加配对的~ 具有泛化能力,相当于我模型已经能够编码图像和文本并且让图像和文本能够互相认识彼此。
  2. 给一个模型没见过的文本,和几个没见过的图像,能够判断文本跟哪个图像更加配对,同理。

对应CLIP源代码实现细节: (图略有些糊)

  1. 计算图像和文本的表示向量
    在这里插入图片描述

  2. 计算对比损失
    2.1. 计算相似度(具体有两种情况,但最终都是一样,计算图像和文本相似度)
    在这里插入图片描述
    在这里插入图片描述

    2.2 按照损失公式的运算计算对比损失(exp,log等操作)
    exp 运算
    在这里插入图片描述
    计算分子(正样本相似度), 需要用matrix_diag 标记区分
    在这里插入图片描述
    matrix_diag 对角矩阵(矩阵斜线上都为true(表示正样本),其余为false ,(表示负样本))
    在这里插入图片描述
    计算分母(负样本相似度)t.masked_fill(pos_mask,0) 把斜对角线上设置为0(正样本),其余设置为1
    在这里插入图片描述

最终计算contrastive loss,loss计算加上 -log在这里插入图片描述
取平均作为最终的loss
在这里插入图片描述

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

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

相关文章

使用opencv的Laplacian算子实现图像边缘检测

1 边缘检测介绍 图像边缘检测技术是图像处理和计算机视觉等领域最基本的问题,也是经典的技术难题之一。如何快速、精确地提取图像边缘信息,一直是国内外的研究热点,同时边缘的检测也是图像处理中的一个难题。早期的经典算法包括边缘算子方法…

人工智能与星际旅程:技术前沿与未来展望

人工智能与星际旅程:技术前沿与未来展望 一、引言 随着科技的飞速发展,人工智能(AI)在各个领域的应用越来越广泛。在星际旅程领域,AI也发挥着越来越重要的作用。本文将探讨人工智能与星际旅程的结合,以及…

在开发微信小程序的时候,报错navigateBack:fail cannot navigate back at firstpage

这个错误的意思是:在这个页面已经是第一个页面了,没办法再返回了 报错原因 这个错误原因其实也简单,就是在跳转的时候使用了wx.redirectTo(),使用wx.redirectTo()相当于重定向,不算是从上一个页面跳转过来的&#xf…

【网络安全】HTTP Slowloris攻击原理解析

文章目录 Slowloris攻击的概念Slowloris攻击原理Slowloris攻击的步骤其他的DDoS攻击类型UDP FloodICMP (Ping) FloodSYN FloodPing of DeathNTP AmplificationHTTP FloodZero-day DDoS 攻击 推荐阅读 Slowloris攻击的概念 Slowloris是在2009年由著名Web安全专家RSnake提出的一…

C# WPF上位机开发(属性页面的设计)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 在软件开发中,属性或者参数设置是很重要的一个部分。这个时候如果不想通过动态添加控件的方法来处理的话,那么可以通过tab控…

ACT、NAT、NATPT和EASY-IP

目录 一、ACL 1.ACL 2.ACL的两种应用匹配机制 3.ACL的基本类型 4.ACL命令操作 5.ACL实验: 4.ACL的应用原则: 5.匹配原则: 二、NAT 1.NAT的原理及作用: 2.NAT分类 3.NAT配置 三、EASY-ip实验 四、NATPT 五、通配符 …

垃圾回收 (GC) 在 .NET Core 中是如何工作的?

提起GC大家肯定不陌生,但是让大家是说一下GC是怎么运行的,可能大多数人都不太清楚,这也很正常,因为GC这东西在.NET基本不用开发者关注,它是依靠程序自动判断来释放托管堆的,我们基本不需要主动调用Collect(…

抖音视频解析,无水印解析下载抖音视频

抖音视频解析,你是否经常遇到这样的情况,看到一些非常精彩的抖音视频,想要保存下来,但因为下载速度慢或者视频带有水印而感到困扰?那么,这款(抖音无水印解析工具)将是你的得力助手&a…

AcWing 1250. 格子游戏(并查集)

题目链接 活动 - AcWing本课程系统讲解常用算法与数据结构的应用方式与技巧。https://www.acwing.com/problem/content/1252/ 题解 当两个点已经是在同一个连通块中,再连一条边,就围成一个封闭的圈。一般用x * n y的形式将(x, y&#xff0…

zabbix批量添加端口监控

背景 以前做监控的时候,一台机器上就几个重要端口,手动添加一下监控就可以了。这次公司一个新业务上了很多服务器,每台服务器上的业务端口很多,而且还不一样。着手动添加会累死人的。所以想zabbix怎么批量添加端口监控。通过查了…

Unity inspector绘制按钮与Editor下生成与销毁物体的方法 反射 协程 Editor

应美术要求,实现一个在编辑环境下,不运行,可以实例化预制体的脚本 效果如上图所示 1.去实现一个简单的 行、列实例化物体脚本 2.在Inspector下提供按钮 3.将方法暴露出来(通过自定义标签实现) 需求一 using System.C…

【单调栈】【区间合并】LeetCode85:最大矩形

作者推荐 【动态规划】【广度优先搜索】LeetCode:2617 网格图中最少访问的格子数 本文涉及的知识点 单调栈 区间合并 题目 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例 1&#xff1…