首页 > 其他分享 >动量编码器

动量编码器

时间:2023-11-17 21:45:17浏览次数:31  
标签:编码器 队列 样本 监督 动量 input

自监督学习

自监督学习属于无监督学习范式的一种,不需要人工标注的类别信息,直接利用数据本身作为监督信息。自监督学习分为自监督生成式学习和自监督对比学习。

自监督生成式学习的方法

以图片为例,自监督学习可以是将图片的位置信息,旋转角度,以及图片在视频帧中的顺序作为标签。

比如对一张原图,将其旋转90°,得到一张新图,那么这个“旋转90°”就是其标签。

又比一张原图,将其切分为9份patch,随机从图片中采样一个patch,再在其邻居领域里采样一个patch,标签就是邻居位置的标签。

 

以这种方式可以生成无数个样本,然后对模型进行预训练,最后将模型迁移到下游任务的有监督学习中。

自监督对比学习的方法

自监督对比学习有一个编码器q,N个输入样本input i,每个样本有两种数据增强方式。

对于input i,使用数据增强一和数据增强二对其生成新的样本,成为input i1和input i2,此时input i1的正样本就是input i2。

负样本是其他输入样本input j 经过数据增强二得到的样本input j2

学习它们之间的对比损失。

但是这种方式负样本的数量受到batch size的影响,因为原本批次大小为N,也就是N个样本,然后再派生出2N个样本,加上原始样本,一共3N个样本,很容易使得GPU内存溢出。

 

Memory Bank方式

设定一个固定大小为K的队列,为memory bank,初始时队列内的特征是随机初始化的。

开始训练后,对样本生成q1,k1,将k1加入到队列,队列最后一个样本出队。然后q1和队列的随机一个样本进行比较。

之后再生成k2,将k2加入到队列,队列最后一个样本出队,q1再和队列的随机的一个样本比较。

 

整个过程如下:

 

缺陷

每采样一次都会对encoder更新,但是队列中可以有K个样本,其中K-1个样本是使用更新之前的encoder得到的。若K很大,更新了K-1次之后,仍然有可能采样到最开始的样本。

 

动量编码器

整个过程如下:

动量编码器其实就是一个encoder,结构与encoder一致。

每次计算损失使用K个负样本进行计算。

k1是通过动量编码器得到的,而动量编码器的参数更新方式如下:

在实验中,m取0.999。也就是动量编码器更新1000次,才与原来的完全不同,而队列中也是如此,当最先进入的样本出队后才与最开始的完全不同。使用这种缓慢更新策略可以保证key的一致性。

更新步骤

1. 有输入样本x。

2. 送入到编码器得到q和k

3. 将k删除反向传播

4. 计算q和k的互信息作为正样本logit,大小为N

5. 计算q和队列中的所有key的互信息作为负样本logits,大小为N*K

6. 反向传播损失,更新EncoderQ

7. 用动量公式更新EncoderMomentum

8. 将k入队,队列最后一个出队。

 

标签:编码器,队列,样本,监督,动量,input
From: https://www.cnblogs.com/RedNoseBo/p/17839698.html

相关文章

  • 机器学习——编码器和解码器架构
    正如我们在 9.5节中所讨论的,机器翻译是序列转换模型的一个核心问题,其输入和输出都是长度可变的序列。为了处理这种类型的输入和输出,我们可以设计一个包含两个主要组件的架构:第一个组件是一个编码器(encoder):它接受一个长度可变的序列作为输入,并将其转换为具有固定形状的编码......
  • 申报软件著作权时,用vscode编码器统计代码行数(转载)
    原文地址https://blog.csdn.net/michiko98/article/details/133743417在一些特殊情况中我们需要计算代码的行数,这时我们就可以借助vscode的VS CodeCounter插件进行统计。第一步:选择VS Code Counter进行安装。(安装完毕有条件的可以重启编码器)。第二步:快捷键ctrl+shift+p进......
  • 应用动量定理处理流体问题
    建立流体模型对于一段流体质量具有连续性,其密度为\(ρ\)流速为\(v\)流体横截面积为\(S\)微元研究微元作用时间:\(Δt\)微元作用长度:\(vΔt\)则对应的质量为:\[Δm=ρSvΔt\]随后建立方程,应用动量定理研究即可。......
  • 11_编码器和译码器
    编码器和译码器编码器类型二进制编码器二~十进制编码器优先编码器二~十进制优先编码器优先编码器测试译码的概念与类型二进制译码器3线~8线译码器CT74LS138二~十进制译码器数码显示译码器数码显示译码器的结构和功能示意七段显示译码器......
  • 自编码器AE全方位探析:构建、训练、推理与多平台部署
    本文深入探讨了自编码器(AE)的核心概念、类型、应用场景及实战演示。通过理论分析和实践结合,我们详细解释了自动编码器的工作原理和数学基础,并通过具体代码示例展示了从模型构建、训练到多平台推理部署的全过程。关注TechLead,分享AI与云服务技术的全维度知识。作者拥有10+年互联......
  • FastAPI学习-15.JSON 编码器 jsonable_encoder
    前言在某些情况下,您可能需要将数据类型(如Pydantic模型)转换为与JSON兼容的数据类型(如dict、list等)。比如,如果您需要将其存储在数据库中。对于这种要求, FastAPI提供了jsonable_encoder()函数。使用jsonable_encoderjsonable_encoder在实际应用场景中,可能需要将数据类型(如:Pydanti......
  • 主动量仪,采购管理信息化系统开发
    为了规范学校采购和资产管理办法,提高资金使用效益和资产使用率,建立规范有序的采购和资产管理机制,促进采购和资产管理工作的规范透明和有序,依据国家、省市和学校等有关法律法规和规章制度,结合高校的内部管理工作的实际情况,构建高校采购管理平台,并实现以下“三个一体化”目标:(1)、建立......
  • 主动量仪,公司开展全员健康体检
    成都工具研究所有限公司的前身是成都工具研究所,于1956年创建于北京,是原机械工业部的直属研究所,是我国机械工业的综合性工具科研机构。公司官网:http://www.ctri.com.cn/公司主要从事精密切削工具、精密测量仪器以及表面改性处理技术的技术研究、产品开发和应用服务。 为保障职......
  • 《动手学深度学习 Pytorch版》 9.6 编码器-解码器架构
    为了处理这种长度可变的输入和输出,可以设计一个包含两个主要组件的编码器-解码器(encoder-decoder)架构:编码器(encoder):它接受一个长度可变的序列作为输入,并将其转换为具有固定形状的编码状态。解码器(decoder):它将固定形状的编码状态映射到长度可变的序列。9.6.1编码器编......
  • 自动量化交易系统程序
    自动量化交易系统软件是一种基于电脑和手机的策略交易管理软件,它能通过数据的分析得出一些交易的数据,根据历史的数据得出相关的交易策略。这种利用各种的历史数据去实现交易的软件,就是量化交易系统软件。还有其他的类型的交易量,新闻,其他的相关信息。它的目的是通过识别有利可图的商......