解耦只是一个巧合?

本文分享一篇在IJCAI2023看到的文章:Overlooked Implications of the Reconstruction Loss for VAE Disentanglement

首先回顾下VAE,其loss函数有两项,一项是重构误差,另一项是正则项:
L r e c ( x , x ^ ) = E q ϕ ( z ∣ x ) [ log ⁡ p θ ( x ∣ z ) ] L r e g ( x ) = − D K L ( q ϕ ( z ∣ x ) ∥ p θ ( z ) ) L V A E ( x , x ^ ) = L r e c ( x , x ^ ) + L r e g ( x ) \begin{aligned} \mathcal{L}_{\mathrm{rec}}(\boldsymbol{x},\hat{\boldsymbol{x}})& =\mathbb{E}_{q_{\boldsymbol{\phi}}(\boldsymbol{z}|\boldsymbol{x})}\left[\log p_{\boldsymbol{\theta}}(\boldsymbol{x}|\boldsymbol{z})\right] \\ \mathcal{L}_{\mathrm{reg}}(\boldsymbol{x})& =-D_{\mathrm{KL}}\left(q_{\phi}(z|\boldsymbol{x})\parallel p_{\boldsymbol{\theta}}(\boldsymbol{z})\right) \\ \mathcal{L}_{\mathrm{VAE}}(\boldsymbol{x},\hat{\boldsymbol{x}})& =\mathcal{L}_{\mathrm{rec}}(\boldsymbol{x},\hat{\boldsymbol{x}})+\mathcal{L}_{\mathrm{reg}}(\boldsymbol{x}) \end{aligned} Lrec(x,x^)Lreg(x)LVAE(x,x^)=Eqϕ(zx)[logpθ(xz)]=DKL(qϕ(zx)pθ(z))=Lrec(x,x^)+Lreg(x)

训练过VAE的人或许会知道,重构项在VAE的训练的loss中占的权重是比正则项要高的,所以重构误差是VAE的主要优化目标。因此,为了降低重构误差,VAE会将那些长得像图片,放在相近的latent space中。这是因为,VAE还有一个随机采样的过程,这样,即使隐变量z随机“偏移”了一点,也能输出一个“长得像”的图片,从而降低重构误差。

那正则项的作用是什么呢,看下图
在这里插入图片描述
正则项越弱,则重构的部分训练将更充分,从而导致这个隐空间的overlap会更少,最极端的情况就是查表,每个图片就对应到一个特定的取值上,可以与其他图片充分的区分开来。

正则项越强,则重构的部分训练不太充分,导致隐空间的overlap会增多,也就是隐空间的区分度下降了,也就导致重构误差增大。

所以解耦这件事情,直觉上就是重构的时候,把那些较为相似(overlap)的图片聚在一起,然后又恰好成了解耦的表征。

在这里插入图片描述
这也解释了为什么在一些解耦的数据集上,VAE能解耦的原因,因为他们的数据集是遍历所有可能出现的factor取值,然后不同取值之间有个微小切换,而其余大部分的地方是重叠的,这是这个让他学到了这个解耦的表征。

为了验证这一点,我们可以看看数据集上,图片和图片之间的距离,用

d g t ⁡ ( x ( a ) , x ( b ) ) = ∥ y ( a ) − y ( b ) ∥ 1 . \operatorname{d_{gt}} (\boldsymbol{x}^{(a)} ,\boldsymbol{x}^{(b)} )=\| \boldsymbol{y}^{(a)} -\boldsymbol{y}^{(b)} \| _{1} . dgt(x(a),x(b))=y(a)y(b)1.

这个东西可以理解为重构误差,如果我们的decoder是完美的,那么,抽样过程会引入误差, z ( b ) ∼ q ϕ ( z ∣ x ( a ) ) \displaystyle z^{( b)} \sim q_{\phi }\left( z|x^{( a)}\right) z(b)qϕ(zx(a)),从而

d p c v ( x ( a ) , x ( b ) ) = lim ⁡ x ^ → x L r e c ( x ( a ) , x ^ ( b ) ) = L r e c ( x ( a ) , x ( b ) ) . \begin{aligned} \mathrm{d}_{\mathrm{pcv}} (\boldsymbol{x}^{(a)} ,\boldsymbol{x}^{(b)} ) & =\lim _{\hat{\boldsymbol{x}}\rightarrow \boldsymbol{x}}\mathcal{L}_{\mathrm{rec}} (\boldsymbol{x}^{(a)} ,\hat{\boldsymbol{x}}^{(b)} )\\ & =\mathcal{L}_{\mathrm{rec}} (x^{(a)} ,\boldsymbol{x}^{(b)} ). \end{aligned} dpcv(x(a),x(b))=x^xlimLrec(x(a),x^(b))=Lrec(x(a),x(b)).

他固定一个factor a,然后遍历另外一个factor i,得到一组遍历的图片 Y ( a , i ) \displaystyle \mathcal{Y}^{( a,i)} Y(a,i),然后两两计算这一组图片的距离,得到下图:

在这里插入图片描述

颜色越浅表示越相似,第一行是l1-norm, 第二行是MSE。可以看到他们overlap是渐进的,而且l1比mse更明显,这或许是l1比mse解耦效果好的证据,而VAE也确实能捕捉到这种overlap:

在这里插入图片描述

那么,如果我们能够构造一个数据集,不存在这样的渐进的overlap,是不是就意味着他学不出任何东西,因为神经网络没法通过重构误差来"聚类"了,在他眼中所有的图都是"同一类"。我们可以构造下面的数据集:

在这里插入图片描述

在这个数据集中,图片之间的距离都是一样的(这是因为l1-norm是计算一张图片总的loss,所以,尽管每张图片可能不一样,但只要总的差一样,则距离就相等)

在这里插入图片描述

上图最右边就是这个数据集的距离,而如果我们加点重叠,那么这个距离会稍微不一样:

在这里插入图片描述

这个对抗训练集导致的结果就是完全无法解耦:

在这里插入图片描述

当然一个缓解的方法是换个不是pixel wise的loss,不过这个只是个缓解的方法,而且现有的半监督的方法可能也是有问题的,因为没有label的话还是会无法聚类。总的来说是篇挺有意思的工作。

参考文献

Michlo, N., Klein, R., & James, S. Overlooked Implications of the Reconstruction Loss for VAE Disentanglement. IJCAI 2023.

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

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

相关文章

QT(9.1)对话框与事件处理

作业: 1. 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”&…

23062C++QT day2

封装一个结构体,结构体中包含一个私有数组,用来存放学生的成绩,包含一个私有变量,用来记录学生个数, 提供一个公有成员函数,void setNum(int num)用于设置学生个数 提供一个公有成员函数:void…

FPGA实战小项目3

基于FPGA的波形发生器 基于FPGA的波形发生器 基于FPGA的beep音乐播放器设计 基于FPGA的beep音乐播放器设计 基于FPGA的cordic算法实现DDS sin和cosine波形的产生 基于FPGA的cordic算法实现DDS sin和cosine波形的产生

无需公网IP,实现远程访问群晖Drive并挂载为电脑磁盘的方法

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

利用MQ实现mysql与elasticsearch数据同步

流程 1.声明exchange、queue、RoutingKey 2. 在hotel-admin中进行增删改&#xff08;SQL&#xff09;&#xff0c;完成消息发送 3. 在hotel-demo中完成消息监听&#xff0c;并更新elasticsearch数据 4. 测试同步 1.引入依赖 <!--amqp--> <dependency><groupId&…

欧洲云巨头OVHcloud收购边缘计算专家 gridscale

边缘计算社区近日获悉&#xff0c;欧洲云巨头OVHcloud已进入全面收购德国公司 gridscale 的谈判&#xff0c;该公司是一家专门从事超融合基础设施的软件提供商。 此次战略收购将标志着 OVHcloud 的另一个重要里程碑&#xff0c;使该集团能够显着加速其地理部署&#xff0c;并进…

lv3 嵌入式开发-6 linux shell脚本编程(概念、变量、语句)

1 Shell脚本概述 1.1Shell脚本概述 Shell脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件&#xff0c;将一些 shell 的语法与命令&#xff08;含外部命令&#xff09;写在里面&#xff0c;搭配正则表达式、管道命令与数据流重定向等功能 1.2Shell脚本编写流…

[JAVA] byte与int的类型转换案例剖析

总结&#xff1a; ①没有byte的字面值&#xff0c;赋值时需要强制转换类型 ②涉及运算&#xff0c;系统自动进行类型升级&#xff0c;由此用final修饰&#xff0c;代表这是一个不会更改值的常量&#xff0c;通过编译 感受&#xff1a;还是用int吧&#xff0c;自动类型转换太复…

Java程序员所需Javascript知识

它是一种脚本语言&#xff0c;可以用来更改页面内容&#xff0c;控制多媒体&#xff0c;制作图像、动画等等 js 代码位置 <script>// js 代码 </script>引入 js 脚本&#xff0c;在js脚本中写js代码 <script src"js脚本路径"></script>注…

滑动窗口实例7(串联所有单词的子串)

题目&#xff1a; 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如&#xff0c;如果 words ["ab","cd","ef"]&#xff0c;…

OpenCV之形态学操作

形态学操作包含以下操作&#xff1a; 腐蚀 (Erosion)膨胀 (Dilation)开运算 (Opening)闭运算 (Closing)形态梯度 (Morphological Gradient)顶帽 (Top Hat)黑帽(Black Hat) 其中腐蚀和膨胀操作是最基本的操作&#xff0c;其他操作由这两个操作变换而来。 腐蚀 用一个结构元素…

简述视频智能分析EasyCVR视频汇聚平台如何通过“AI+视频融合”技术规避八大特殊作业风险

视频智能分析EasyCVR视频汇聚平台可以根据不同的场景需求&#xff0c;让平台在内网、专网、VPN、广域网、互联网等各种环境下进行音视频的采集、接入与多端分发。在视频能力上&#xff0c;视频云存储平台EasyCVR可实现视频实时直播、云端录像、视频云存储、视频存储磁盘阵列、录…

noetic 怎么下载robotiq_modbus_tcp 从而使用robotiq二指夹爪

1&#xff0c;会科学上网 2&#xff0c; # Modbus TCP rosdep install robotiq_modbus_tcp3&#xff0c;报错 4&#xff0c;去robotiq的功能包里面找两个大爷&#xff08;tmd&#xff09; 分别修改package.xml 本来是python &#xff0c; 然后分别修改成python3 然后参考其他…

aws-msk-托管kafka集群的简单使用(VPC内部访问:无验证和SASL认证)

1.使用控制台创建即可 根据实例类型创建需要至少15分以上&#xff0c;可以提前创建好ec2实例和Secrets Manager,一会会使用到 2. 创建Secrets Manager &#xff08;使用无认证时请跳过&#xff09; 官方文档&#xff1a;https://docs.aws.amazon.com/zh_cn/msk/latest/deve…

Docker实战:docker compose 搭建Rocketmq

1、配置文件准备 1.1、 新建目录&#xff1a;/home/docker/data/rocketmq/conf mkdir /home/docker/data/rocketmq/conf1.2、 在上面目录下新建文件broker.conf文件&#xff0c;内容如下 brokerClusterName DefaultCluster brokerName broker-a brokerId 0 deleteWhen 0…

[react基础]关于v6版本route的变化,以及常见应用模式

该说不说,在做这些之前,你要记得一件事 route不是react或者vue等原本就有的组件!需要你手动下载!然后导入! 原本的框架只是最终挂载到一个html界面上!!! 别再问我为啥你扒下来的代码为啥不好使了! 讨厌 > _< 下载指令去看我另一篇推文 今天复盘了一下自己的实训…

2023年数学建模国赛A 定日镜场的优化设计思路分析

构建以新能源为主体的新型电力系统&#xff0c;是我国实现“碳达峰”“碳中和”目标的一项重要措施。塔式太阳能光热发电是一种低碳环保的新型清洁能源技术[1]。定日镜是塔式太阳能光热发电站&#xff08;以下简称塔式电站&#xff09;收集太阳能的基本组件&#xff0c;其底座由…

论数据库的种类

摘要 数据库是现代信息管理和数据存储的重要工具&#xff0c;几乎在各个领域都有广泛应用。不同类型的数据库适用于不同的应用场景和需求。本文将介绍几种常见的数据库种类&#xff0c;并探讨它们的特点和适用范围。 正文 一、关系型数据库&#xff08;RDBMS&#xff09; 关…

IntelliJ IDEA中那些让你相见恨晚超好用插件

InteIIiJ IDEA 2023.2版本发布了,在2023.2中&#xff0c;官方根据用户的宝贵反馈对新UI做出了大量改进&#xff0c;新UI界面大大减少了干扰&#xff0c;可以让用户更好地专注于代码。相信很多同学都已经迫不及待地尝试了。 安装激活好 Intellij idea 之后&#xff0c;再搭配如下…

小米手机便签怎么导出到华为mate60Pro手机上?

华为mate60Pro手机于2023年8月29日发布了先锋计划&#xff0c;有不少网友都抢到了这款新机。而有一些网友表示自己在换手机之前遇到了问题&#xff0c;这就是之前使用的手机是小米&#xff0c;所以需要把重要的图片、短信、通讯录、便签等数据导出到新的手机上&#xff0c;但是…