编码图像tokenizer-从VQGAN到MAGVIT
cac55 2024-09-19 16:56 48 浏览 0 评论
来源:Agent的潜意识
我们在探讨patches的方方面面。不过patches有一个核心bug:就是他的分片是简单切割的,比如一张图片切成9份,那么有可能,一个具象的语义信息,例如一个人脸,可能被切割在了四份里面,每一份都只是人脸的一部分,这样的特征提取器表达力肯定是不完整的。
在NLP中,有一个专门的分词器tokenizer。例如可以把满腹经纶这样的成语分为一个词。如果图像要套用NLP里面的tokens的概念。这样的图像语义分词器就显得非常重要。
业界对这块也研究了很多。今天我们这条线盘一盘。目前我们整个系列还在盘图像tokens这个概念,他只是整个知识树的一个根,后面我们再整体全貌看如何构建一个视频生成网络模型的pipeline。
今天分享三块:
1、VQVAE Neural Discrete Representation Learning。如何将图片编码为离散隐变量。
论文:
https://arxiv.org/abs/1711.00937。这个是(google deepmind 2017 NIPS)
代码:https://github.com/karpathy/deep-vector-quantization
2、VQGAN Taming Transformers for High-Resolution Image Synthesis。他的核心思想是把VQVAE里面的CNN换成transformer。
论文:https://arxiv.org/pdf/2012.09841.pdf。这个是CVPR2021 oral。德国人的。
代码:https://git.io/JnyvK.
3、MAGIT - Masked Generative Video Transformer。这个论文是在VQGAN的基础上首次合成视频。
论文: https://arxiv.org/abs/2212.05199
Project : https://magvit.cs.cmu.edu/
代码: https://github.com/google-research/magvit
一、VQVAE 图像的离线隐空间编码器
这是一篇高被引奠基性的文章。后面很多论文都在这个论文基础上展开。他的核心思想其实也很简单。附上论文原图。更加真实理解论文本意。
整个pipeline在上图中。我们详细讲解一下整个过程。整个图从左往右看,虚黑线隔开的右半角部分是讲如何最近邻搜索离散化的。一只小狗的原始图片,通过一个CNN编码器网络,转变为一个隐变量绿色立方体空间Ze;由于是神经网络非线性变化,Ze肯定是一个连续变量空间矩阵,这时候,通过一个特征空间查找表E,将Ze里面的连续值,通过最近邻算法查找到最相近的点ei,从而将绿立方体变成了浅紫色立方体特征空间Zq。然后对这个浅紫色特征空间进行CNN的解码器变换,变换出一个真实图像出来。如果编码器学的好,就说明这个特征表示Zq非常有效。我们就拿这个Zq来表示这个图片了。由于Zq是离散值,因此就是一个图像的离散特征表示。红线表示的是梯度传播的时候直接跳过离散化查找表。
整个loss共三项。
第一项很简单,x是输入的图像,Zq(x)是解码器输出图像,这个就是一个重建loss,看输入的原始图像和解码器输出的图像之间的loss。后两项看起来比较复杂。我通俗易懂的给大家解释下原理:这两个loss的目的是让离散化查找表embedding space 中的节点更内聚的。所谓内聚,就是,以这张图为例,你可以把狗的耳朵当成一个离散值节点,那么两个狗耳朵就不需要两个离散化节点了。这样就提升了离散节点的表达力。他就是NL P里面词表的概念。
二、VQGAN : VQVAE的改进版
这篇论文有很多的博客在讲。但很多人都讲错了。VQGAN他的编码器和解码器都是CNN,并没有变化;他之所以命名为VQGAN,核心的区别是他的解码这一块,就是隐空间特征生成图像这块,他用的是GAN:有两个CNN,一个生成式CNN生成图像,一个判别式CNN对生成的真假打分。所以说他整个pipeline是没有transformer的。并不是编码器和解码器变成了transformer。
整个pipeline如上图所示。从左到右看,下面一层就是VQGAN的整个pipeline,img到编码器CNN,然后通过图像分词器tokenizer转成 Zq,然后再通过GAN生成img。整个pipeline有三个CNN。编码器cnn encoder,解码器CNN decoder,然后是判别器CNN。
Transformer干的是哪个活呢?是对分词器的优化,和对Z- Zq表示的优化。在VQ VAE中,分词器就是一个pixel CNN,当然这个也算是比较好的表达方式,如果你学过数字图像处理这个课,最原始的图像离散化表示是超像素分割。Transformer第一作用的生产出最具有表达力的图像词汇表;第二个作用是,当前的图像,用了词汇1-i-1共i个词汇后,还需要哪个词汇(图像语义token),能更好的表达当前的图像,从而生产出最具有表达力的Zq。
事实上,这个transformer表达的分词器词汇表对整个模型来说非常关键。
相关推荐
- Mac电脑强制删除任何软件方法-含自启动应用
-
对于打工者来说,进入企业上班使用的电脑大概率是会被监控起来,比如各种流行的数据防泄漏DLP,奇安信天擎,甚至360安全卫士,这些安全软件你想卸载是非常困难的,甚至卸载后它自己又安装回来了,并且还在你不...
- Linux基础知识 | 文件与目录大全讲解
-
1.linux文件权限与目录配置1.文件属性Linux一般将文件可存取的身份分为三个类别,分别是owner/group/others,且三种身份各read/write/execute等权限文...
- 文件保护不妥协:2025 年 10 款顶级加密工具推荐
-
数据安全无小事,2025年这10款加密工具凭借独特功能脱颖而出,从个人到企业场景全覆盖,第一款为Ping32,其余为国外英文软件。1.Ping32企业级加密核心工具,支持200+文件格...
- 省心省力 一个软件搞定系统维护_省心安装在哪里能找到
-
◆系统类似于我们居住的房间,需要经常打理才能保持清洁、高效。虽然它本身也自带一些清理和优化的工具,但借助于好用的第三方工具来执行这方面的任务,会更让人省心省力。下面笔者就为大家介绍一款集多项功能于一身...
- JAVA程序员常用的几个工具类_java程序员一般用什么软件写程序
-
好的工具做起事来常常事半功倍,下面介绍几个开发中常用到的工具类,收藏一下,也许后面真的会用到。字符串处理:org.apache.commons.lang.StringUtilsisBlank(Char...
- 手工解决Windows10的若干难题_windows10系统卡顿怎么解决
-
【电脑报在线】很多朋友已经开始使用Win10,估计还只是测试版本的原因,使用过程中难免会出现一些问题,这里介绍解决一些解决难题的技巧。技巧1:让ProjectSpartan“重归正途”从10074...
- System32文件夹千万不能删除,看完这篇你就知道为什么了
-
C:\Windows\System32目录是Windows操作系统的关键部分,重要的系统文件存储在该目录中。网上的一些恶作剧者可能会告诉你删除它,但你不应该尝试去操作,如果你尝试的话,我们会告诉你会发...
- Windows.old 文件夹:系统备份的解析与安全删除指南
-
Windows.old是Windows系统升级(如Win10升Win11)或重装时,系统自动在C盘创建的备份文件夹,其核心作用是保留旧系统的文件、程序与配置,为“回退旧系统”提供保...
- 遇到疑难杂症?Windows 10回收站问题巧解决
-
回收站是Windows10的一个重要组件。然而,我们在使用过程中,可能会遇到一些问题。例如,不论回收站里有没有文件,都显示同一个图标,让人无法判别回收站的空和满的真实情况;没有了像Windows7...
- 卸载软件怎么彻底删掉?简单几个步骤彻底卸载,电脑小白看过来
-
日常工作学习生活中,我们需要在安装一些软件程序,但随着软件的更新迭代速度,很多时候我们需要重新下载安装新的程序,这时就需要将旧的一些软件程序进行卸载。但是卸载软件虽然很简单,但是很多小伙伴们表示卸载不...
- 用不上就删!如何完全卸载OneDrive?
-
作为Windows10自带的云盘,OneDrive为资料的自动备份和同步提供了方便。然而,从隐私或其他方面考虑,有些人不愿意使用OneDrive。但Windows10本身不提供直接卸载OneDri...
- 【Linux知识】Linux下快速删除大量文件/文件夹方法
-
在Linux下,如果需要快速删除大量文件或文件夹,可以使用如下方法:使用rm命令删除文件:可以使用rm命令删除文件,例如:rm-rf/path/to/directory/*这个命令会递...
- 清理系统不用第三方工具_清理系统垃圾用什么软件
-
清理优化系统一定要借助于优化工具吗?其实,手动优化系统也没有那么神秘,掌握了方法和技巧,系统清理也是一件简单和随心的事。一方面要为每一个可能产生累赘的文件找到清理的方法,另一方面要寻找能够提高工作效率...
- 系统小技巧:软件卸载不了?这里办法多
-
在正常情况下,我们都是通过软件程序组中的卸载图标,或利用控制面板中的“程序和功能”模块来卸载软件的。但有时,我们也会发现利用卸载图标无法卸载软件或者卸载图标干脆丢失找不到了,甚至控制面板中卸载软件的功...
- 麒麟系统无法删除文件夹_麒麟系统删除文件权限不够
-
删除文件夹方法例:sudorm-rf文件夹名称。删除文件方法例:sudorm-r文件名包括扩展名。如果没有权限,给文件夹加一下权限再删。加最高权限chmod775文件名加可执行权限...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)