对比学习基础知识


前言

本文内容是B站up主“技术喵”的《神经网络十四’对比学习’》课程的学习笔记。up主乃湾区大厂程序员,值得关注。

课程链接:https://www.bilibili.com/video/BV19F41187hK?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=0c402abd3bb251e4d8e531418743215a


对比学习,利用事物间的相关性来学习事物的本质。
对比学习已经成为一整套框架。

一、主体思想

通过对比来了解事物的本质,灵感来源于人类本身。

二、对比学习框架

在这里插入图片描述
训练数据成为query,用于对比的数据成为key。如果q与k相似,则q与k则构成正例对,反之,为负例对。

三.正负例生成方法

在这里插入图片描述
实际生活中,拿到一堆数据,数据本身天然不是成对的,有以下几个方法:
(1) 对于同一个事物用不同的角度去看。
在这里插入图片描述
(2) 制造新的数据
在这里插入图片描述
(3) 拆分原数据
在这里插入图片描述
(4)利用其他的已有的feature的clustering

四.模型

在这里插入图片描述
Head:把样本的表示变成一个度量的表示。Transform head 理论上也不是必须的,但在实际应用中通常还是会加上,理由如下:
(1) encoder生成的表示涵盖的信息太多了,我们可以再进行压缩,从而让对比学习更有效率。
(2) 如果直接encoder输出的话,可能就会把嵌入过分地拟合到我们想要对比的这个概念上。从而使得encoder输出的信息量太单一,从而没有办法很好的应用于其他任务中。

Encoder和head本质上和其他神经网络并没有什么区别。对于q和k,如果是单一模式(例如都是图片或者语音),那可以使用同一个Encoder。但如果不是单一模式(一个是图片一个是语音),那最好用不同的Encoder.
在这里插入图片描述
在Encoder模型确定下来之后,最直接的方法就是进行and to and的随机梯度下降算法去进行优化,但因为Encoder模型很大,k和q可能不是同步更新。
至于Transform head的部分,主要是在encoder之后进一步抽象和压缩,更需要具体问题具体分析。

五.对比损失

通常损失函数需要做到的就是在度量Z的嵌入空间上,把相似对的距离拉近,把不相似对的距离拉远。
在这里插入图片描述
对比学习的损失函数于其他损失函数的区别。
在这里插入图片描述
隐空间中的距离函数(scoring function),衡量向量间距离的方法有很多,比如一范数,二范数,点积,cosine相似性。
在这里插入图片描述

5.1基于能量模型的损失函数

要求给想要出现的数据对的结果一个比较高的能量。也就是说相似的对,我们希望它的距离越近越好,而不相似的我们让它的距离越大越好。
在这里插入图片描述
m: 用来给正例,负例保持距离用的。m越大,我们的损失越难是零,因为我们需要考虑越多的负例,事实上只有距离足够相似的点,才会出现在损失函数的考量中。
**Triplet loss:**就是在刚才说的pair loss的基础上同时考虑正例和负例。
这种损失函数虽然直观,但是收敛速度并不快。这主要是因为每一次更新随机梯度,可能很难挑到一组正好能够帮助模型的样本。(随便挑的一组样本,也许并不是现在的瓶颈,对模型的提高,没有太多的帮助)

5.2基于NCE的损失函数

在这里插入图片描述
基于NCE的损失函数的上层逻辑:对于对比学习,我们也可以假设是在设置一个分类器,目标就是让相似对的输出为1,不相似对的输出为0。
并不需要单独计算p(k-│q),因为p(k-│q)=1-p(k^+│q)。
损失函数所存在的问题:就是考虑所有复利对的这个z(q)函数,运算复杂度太高。
NCE主要的思想就是想办法不去用softmax,直接去参数化我估计出来的结果。
在这里插入图片描述
在这里插入图片描述

5.3互信息损失

除了NCE和能量模型,其实还有一种常见的损失函数叫做互信息损失。
在这里插入图片描述

6.经典的论文例子

6.1 CPC

在这里插入图片描述

6.2 simCLR

在这里插入图片描述

6.3 moco

Moco生成正样本和负样本的方法是使用了两个不同的神经网络进行编码,分别叫做encoder和momentum encoder除了对query的这个x进行编码之外呢,也对其他的负例进行编码。
加粗样式

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
广告设计是一门创意性强的设计学科,通过使用Photoshop(简称PS)等工具进行广告设计,可以有效地呈现创意和宣传产品或服务。广告设计中较为常用的Photoshop基础知识包括以下几个方面。 首先,了解和熟悉Photoshop的界面和工具栏。这包括软件的菜单结构、工具栏的各个工具的功能与使用方法。了解和熟悉这些基本功能是进行广告设计的基础。 其次,深入了解图像处理的基本原理和技术。熟悉调整图像大小、对比度、亮度、饱和度等基本操作,以及抠图、修复和修饰图像等常用技术。这些技术可以帮助设计师对图片进行优化和加工,以达到广告设计的需求。 第三,学习图层的使用和管理。图层是Photoshop中重要的功能,通过合理使用图层,可以使广告设计更加灵活和易于修改。学习如何创建、调整和组织图层,以及利用图层样式、蒙版和透明度等功能,能够提高广告设计的效果和质量。 第四,了解文字处理和排版技巧。掌握如何创建和编辑文字,如何应用字体和样式,以及如何进行文字布局和排版,对于广告设计是非常重要的。良好的文字处理和排版能够有效传达广告信息,提升广告的吸引力和可读性。 最后,学习色彩管理和调色技巧。色彩在广告设计中扮演着重要的角色。了解和应用色彩理论,能够帮助设计师选择和搭配适合的色彩方案,营造出令人愉悦和与品牌符合的广告效果。 综上所述,广告设计PS基础知识学习涵盖了Photoshop界面与工具的了解,图像处理、图层使用、文字处理和排版技巧,以及色彩管理和调色技巧等方面。通过深入学习这些基础知识,设计师可以更好地运用Photoshop进行广告设计,创造出富有创意和吸引力的作品。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值