【自监督-MIM】系列方法学习二

Masked image modeling 是一种训练深度学习模型的技术,尤其是在视觉领域,类似于自然语言处理中的掩码语言建模(Masked Language Modeling)。它通过在输入图像中随机遮挡(或称为掩码)部分区域,然后训练模型来预测这些被遮挡部分的内容,从而提高模型的视觉理解能力。

Masked image modeling 主要用于视觉自监督学习(Visual Self-Supervised Learning)任务,帮助模型学习图像的内在结构和表示,而无需依赖大量的标注数据。

BEIT: BERT Pre-Training of Image Transformers

具体来说,在我们的预训练中,每个图像都有两个视图,即patch image(如16×16像素)和visual token(即离散标记)。我们首先将原始图像“tokenizer”为视觉标记。然后,我们随机mask some image patches,并将它们输入Transformer。预训练的目标是基于corrupted image 恢复原始视觉标记。在预训练BEIT之后,我们通过在预训练的编码器上附加任务层来直接微调下游任务的模型参数。

注:模型学习恢复原始图像的视觉标记,而不是掩码块的原始像素。
请添加图片描述

对于重建目标,BEiT 并没有使用原始的像素,而是通过一个 “image tokenizer” 进行离散化,遵循的是 dVAE 的思路,在 BEiT 预训练之前,先构建 “tokenizer” 和 “decoder” 进行 dVAE 的训练,并构建视觉词汇表,词表大小为8192。在 BEiT 中是直接采用 Zero-shot text-to-image generation 文章开源的代码进行训练。论文中掩码比例为40%,直接使用pixel-level auto-encoding像素级的自动编码(recovering the pixels of masked patches)进行视觉预训练,促使模型关注short-range dependencies和 high-frequency details。

实验

请添加图片描述
在这里插入图片描述


MAE:Masked Autoencoders Are Scalable Vision Learners

任务:对输入图像的随机mask image patch,并重建丢失的像素。

MAE 基于两大主要设计:一是采用了非对称结构的编码-解码器,其中编码器只计算非掩码图像块,同时采用了轻量化的解码器设计;二是mask大部分的图像块,如掩码概率为 75%,可以获得更加具有意义的自监督训练任务。
在这里插入图片描述
去噪自动编码器(DAE)[58]是一类破坏输入信号并学习重建原始未破坏信号的自动编码器。

Reconstruction target.
我们的MAE通过预测每个掩码补丁的像素值来重建输入。解码器输出中的每个元素都是表示补丁的像素值的矢量。解码器的最后一层是一个线性投影,其输出通道的数量等于补丁中像素值的数量。解码器的输出被重新整形以形成重建的图像。我们的损失函数计算像素空间中重构图像和原始图像之间的均方误差(MSE)。我们只计算mask patch的损失,类似于BERT[14]。

我们还研究了一种变体,其重建目标是每个masked patch的归一化像素值。具体来说,我们计算一个patch中所有像素的平均值和标准偏差,并使用它们来规范化这个patch。在我们的实验中,使用归一化像素作为重建目标提高了表示质量。

Simple Implementation.
image --> randomly shuffle the list of tokens remove the last portion of the list,based on the masking ratio.首先,我们为每个输入补丁生成一个令牌(通过添加位置嵌入的线性投影)。接下来,我们随机打乱令牌列表,并根据掩码比率删除列表的最后一部分。

在这里插入图片描述

消融实验
在这里插入图片描述
Mask token.
我们的MAE的一个重要设计是跳过编码器中的掩码令牌[M],稍后将其应用于轻量级解码器。如果编码器使用掩码标记,其性能会更差:在linear probing中,其精度会下降14%。

Data augmentation.
我们的MAE使用only-crop增强效果良好,无论是固定大小还是随机大小(均具有随机水平翻转)。添加颜色抖动会降低结果,因此我们不会在其他实验中使用它。

没有证据表明对比学习可以在没有增强的情况下工作:图像的两个视图是相同的,并且可以很容易解决。

在这里插入图片描述

请添加图片描述

代码实现

MAE-Pytorch核心思想随机生成一个NXL的nosie,然后对齐进行排序选取其中百分之75%的patch个数,同时维护一个ids_restore用于在decoder重新排序patch。

# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.

# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
# --------------------------------------------------------
# References:
# timm: https://github.com/rwightman/pytorch-image-models/tree/master/timm
# DeiT: https://github.com/facebookresearch/deit
# --------------------------------------------------------

from functools import partial

import torch
import torch.nn as nn

from timm.models.vision_transformer import PatchEmbed, Block

from util.pos_embed import get_2d_sincos_pos_embed


class MaskedAutoencoderViT(nn.Module):
    """ Masked Autoencoder with VisionTransformer backbone
    """
    def __init__(self, img_size=224, patch_size=16, in_chans=3,
                 embed_dim=1024, depth=24, num_heads=16,
                 decoder_embed_dim=512, decoder_depth=8, decoder_num_heads=16,
                 mlp_ratio=4., norm_layer=nn.LayerNorm, norm_pix_loss=False):
        super().__init__()

        # --------------------------------------------------------------------------
        # MAE encoder specifics
        self.patch_embed = PatchEmbed(img_size, patch_size, in_chans, embed_dim)
        num_patches = self.patch_embed.num_patches

        self.cls_token = nn.Parameter(torch.zeros(1, 1, embed_dim))
        self.pos_embed = nn.Parameter(torch.zeros(1, num_patches + 1, embed_dim), requires_grad=False)  # fixed sin-cos embedding

        self.blocks = nn.ModuleList([
            Block(embed_dim, num_heads, mlp_ratio, qkv_bias=True, qk_scale=None, norm_layer=norm_layer)
            for i in range(depth)])
        self.norm = norm_layer(embed_dim)
        # --------------------------------------------------------------------------

        # -------------------------------------------------------

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA无法输入中文,怎么破

1.导航栏处,点击help菜单,选择Edit Custom VM Options.. 2.编辑文件,在文件末尾添加: -Drecreate.x11.input.methodtrue 3.保存文件即可,如果还是不行,就关闭所有Idea程序,重新启动Idea

机器学习之集成学习

一:概念 顾名思义集成学习就是用多个其他的算法结合起来使用 对于“其他算法”有同类和同质的区别,同质指的是所用的算法都是同一类型的,比如决策树和神经网络,这种也叫基学习器。反之亦然,但一般使用的是同质的。 …

网络治理新模式:Web3时代的社会价值重构

随着Web3技术的崛起,传统的网络治理模式正在经历革新,这不仅仅是技术的进步,更是对社会价值观念的挑战和重构。本文将深入探讨Web3时代的网络治理新模式,其背后的技术基础、社会影响以及未来的发展方向。 1. 引言 Web3时代&#…

文件进行周期性备份后权限更改的解决方案--使用脚本和定时任务

这里写目录标题 背景现象解决方案原因分析面临的问题解决思路操作步骤每个文件夹权限分配表测试chmod和chown两个命令是否可行写脚本实现定时同步同时修改权限 异地同步改权限在NAS上生成SSH密钥对将NAS的公钥复制到Linux服务器在NAS上编写同步脚本在NAS上执行脚本,…

咖啡机器人如何实现定量出水?

咖啡机器人实现定量出水的关键在于流量控制系统的设计,其中霍尔式流量计和光电式流量计是常用的测量设备。这两种流量计均具有精确高、一致性强、多种高低流量控制等特点,能够满足咖啡机器人定量出水的需求。 对于霍尔式流量计,其利用霍尔效…

防近视台灯有效果吗?专业护眼台灯推荐!告诉你台灯怎么选

随着学业负担的加重和电子设备的广泛普及,近视问题在青少年群体中愈发凸显,近视率持续走高。导致近视的因素错综复杂,除了过度使用手机外,遗传因素、不良的用眼习惯、环境因素、营养不均衡以及学习压力等均为重要因素,…

【深海王国】小学生都能玩的语音模块?ASRPRO打造你的第一个智能语音助手(1)

Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛勤工作的你今天也辛苦啦(/≧ω) 今天大都督将为大家带来全新系列——小学生都能玩的语音模块,帮你一周内快速学会语音模块的使用方式,打造一个可用于智能家居、物联网领域的语音…

【SpringBoot3.x】自定义开发通用SDK

1. 前言 相信大家学习SpringBoot到现在,使用Maven构建项目时,会在pom.xml文件中引入各种各样的依赖,那么我们如何将自己常用的一些工具类库进行封装成starter或者SDK供其他项目使用呢,本博客就会带着大家一步一步创建自定义的SDK…

使用 MyFlash 实现 MySQL 数据闪回

文章目录 简介GithubMyFlash 限制MySQL 准备开启 binlogmysqlbinlog 安装 MyFlashflashback 选项生成回滚文件执行回滚操作操作示例 简介 MySQL中的Binlog(Binary Log)数据闪回,也称为Point-in-Time Recovery (PITR),是一种强大的…

Ansible-综合练习-生产案例

斌的招儿 网上教程大多都是官网模板化的教程和文档,这里小斌用自己实际生产环境使用的例子给大家做一个详解。涉及到一整套ansible的使用,对于roles的使用,也仅涉及到tasks和files目录,方便大家快速上手并规范化管理。 0.环境配置…

私接路由器导致部分终端(电脑、手机等)无法上网问题分析

目录 【1】私接路由器场景 【2】进行网络基本配置,模拟终端可以正常上网 【2.1】Http-Server配置 【2.2】ISP配置 【2.3】R-hefa配置 【2.4】Client1配置 【2.5】PC配置 【2.6】测试验证上网是否正常 【3】私接路由器后再测试验证公司内网各终端访问外网是…

大模型AI技术实现语言规范练习

人工智能技术可以为语言规范练习提供多种有效的解决方案,帮助学习者更有效地掌握语言规范。以下是一些常见的应用场景。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 智能纠错 利用自然语言处理技术,可以…

代码随想录-Day42

1049. 最后一块石头的重量 II 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果…

定制型汽车传感器在汽车中的应用

定制型汽车霍尔传感器在汽车中的应用及功能 曲轴和凸轮轴位置传感器&#xff1a; 这些传感器用于监测发动机的曲轴和凸轮轴的位置&#xff0c;帮助发动机管理系统精确控制点火时机和燃油喷射&#xff0c;提高发动机效率。 变速器控制系统&#xff1a; 在自动变速器中&#xf…

通达信短线抄底主升浪幅图指标公式源码

通达信短线抄底主升浪幅图指标公式源码&#xff1a; A1:REF(C,1); A2:SMA(MAX(C-A1,0),5,1)/SMA(ABS(C-A1),5,1)*1000; A3:BARSLAST(REF(CROSS("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)),1)); A4:A2-LLV(A2,10); A5:(MA(A4,2)*3A4*13)/16; A6:IF(A5>1…

PTE-靶场训练-1

PTE-靶场训练实战笔记 靶场搭建 靶场下载链接&#xff1a; https://pan.baidu.com/s/1ce1Kk0hSYlxrUoRTnNsiKA?pwdha1x vim /etc/sysconfig/network-scripts/ifcfg-eth0 设置好后reboot重启一下即可&#xff0c;然后访问81-85端口&#xff0c;共5题。 因为靶场出了问题&a…

学生信息管理系统

DDL和DML -- 创建学生表 CREATE TABLE students (student_id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,gender VARCHAR(10) );-- 创建课程表 CREATE TABLE courses (course_id INT PRIMARY KEY AUTO_INCREMENT,course_name VARCHAR(50) );-- 创建教师表 CREA…

酷瓜云课堂(内网版)v1.1.5 发布,局域网在线学习+考试系统

更新内容 更新layui-v2.9.10更新docker国内镜像地址增加导入镜像构建容器的方式教师不批阅非首次考试试卷轮播图增加专栏类型目标链接增加课程能否发布检查去除初始化kindeditor语言文件去除选择题EF选项优化富文本内容显示样式优化内容图片点击放大监听优化试题题干答案等图片…

基于STM32的智能水质监测系统

目录 引言环境准备智能水质监测系统基础代码实现&#xff1a;实现智能水质监测系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统实现4.4 用户界面与数据可视化应用场景&#xff1a;水质管理与优化问题解决方案与优化收尾与总结 1. 引言 智能水质监测系统通过使用STM32嵌…

ONLYOFFICE桌面编辑器8.1版:个性化编辑和功能强化的全面升级

ONLYOFFICE是一款全面的办公套件&#xff0c;由Ascensio System SIA开发。该软件提供了一系列与微软Office系列产品相似的办公工具&#xff0c;包括处理文档&#xff08;ONLYOFFICE Document Editor&#xff09;、电子表格&#xff08;ONLYOFFICE Spreadsheet Editor&#xff0…