解耦只是一个巧合?

本文分享一篇在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.rhkb.cn/news/125077.html

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

相关文章

Unity——脚本与导航系统

Unity内置了一个比较完善的导航系统,一般称为Nav Mesh(导航网格),用它可以满足大多数游戏中角色自动导航的需求。 一、导航系统相关组件 Unity的导航系统由以下几个部分组成: Nav Mesh。Nav Mesh与具体的场景关联&…

Windows Qt 5.12.10下载与安装

Qt 入门实战教程(目录) C自学精简教程 目录(必读) 1 Qt下载 qt-opensource-windows-x86-5.12.10.exe 官方离线安装包:Download Source Package Offline Installers | Qt 下载巨慢 只能下载到最新的:https://download.qt.io/a…

JVM | 垃圾回收器(GC)- Java内存管理的守护者

引言 在编程世界中,有效的内存管理是至关重要的。这不仅确保了应用程序的稳定运行,还可以大大提高性能和响应速度。作为世界上最受欢迎的编程语言之一,通过Java虚拟机内部的垃圾回收器组件来自动管理内存,是成为之一的其中一项必…

Speech | 语音处理,分割一段音频(python)

本文主要是关于语音数据在处理过程中的一些脚本文件以及实例,所有代码只需要更改所需处理的文件路径,输出路径等,全部可运行。 目录 所需环境 方法1:将一整段音频按时间批量切成一个一个音频 方法2:将一整段音频按…

C++的类型转换

前言 我们都知道C是兼容C语言的在C语言中存在两种方式的类型转换,分别是隐式类型转换和显示类型转换(强制类型转换),但是C觉得C语言的这套东西是够好,所以在兼容C语言的基础上又搞了一套自己的关于类型转换的东西。 目…

2023高教社杯数学建模C题思路代码 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此, 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

mysql创建用户

创建用户 创建 -- 创建用户 itcast , localhost只能够在当前主机localhost访问, 密码123456; create user test01localhost identified by 123456;使用命令show databases;命令,只显示一个数据库,因为没有权限 -- 创建用户 test02, 可以在任意主机访问…

Stream API

Stream API执行流程 Stream API(java.util.stream)把真正的函数式编程风格引入到Java中,可以极大地提高程序员生产力,让程序员写出高效、简洁的代码 实际开发中项目中多数数据源都是来自MySQL、Oracle等关系型数据库,还有部分来自MongDB、Redis等非关系型数据库 …

vue3路由跳转params传参接收不到

import { useRouter } from "vue-router";const router useRouter(); // 提现记录 const withdrawalClick (item) > {router.push({ name: "Devwithdrawal", params: { name: 123 } }); };//跳转页面接收参数 import { useRoute } from "vue-rou…

网络是如何进行通信

网络是如何进行通信的 简介 在现代社会中,网络已经成为我们生活中不可或缺的一部分。从上网搜索信息、在线购物到远程工作和社交媒体,我们几乎无时无刻不与网络保持着联系。但是,网络究竟是个什么玩意,它是如何工作的呢&#xf…

Web服务器简介及HTTP协议

一、Web Server(网页服务器) 一个 Web Server 就是一个服务器软件(程序),或者是运行这个服务器软件的硬件(计算机)。其主要功能是通过 HTTP 协议与客户端(通常是浏览器&#xff08…

python可视化模块—快速利用matplot绘制图表

文章目录 一、Matplotlib基本介绍二、两种绘图方式区别(plt.*** 和ax.***)三、如何使用Matplotlib绘图1、画布—绘画的画板2、配置—更个性化的绘图全局配置局部配置面向对象绘图过程:ax代表子图变量过程式绘图过程 四、常用绘图图形如何选择…

配电房能源监测系统

配电房能源监测系统是一种能够实时监测和管理配电房能源消耗的系统,有助于企业更好地管理能源使用,降低能源成本,提高能源利用效率。本文将详细介绍配电房能源监测系统的组成、功能和优点。 一、配电房能源监测系统的组成 配电房能源监测系统…

网络通信深入解析:探索TCP/IP模型

http协议访问web 你知道在我们的网页浏览器的地址当中输入url,未必是如何呈现的吗? web浏览器根据地址栏中指定的url,从web服务器获取文件资源(resource)等信息,从而显示出web页面。web使用HTTP&#xff08…

OpenHarmony 使用 ArkUI Inspector 分析布局

● 摘要:视图的嵌套层次会影响应用的性能,开发者应该移除多余的嵌套层次,缩短组件刷新耗时。本文会介绍如何使用 ArkUI Inspector 工具分析布局,提示应用响应性能。 ● 关键字:列举本文相关的关键字:OpenH…

vue3:3、项目目录和关键文件

关于vsvode的更改 <!-- 加上setup允许在script中直接编写组合式api --> <script setup> // 组件引入后直接用 import HelloWorld from ./components/HelloWorld.vue import TheWelcome from ./components/TheWelcome.vue</script><!-- 1、js放在最上面&am…

Mavan进阶之多模块(聚合)

文章目录 Maven 多模块&#xff08;聚合&#xff09;非父子关系的多模块项目 Maven 多模块&#xff08;聚合&#xff09; Maven 继承和聚合是 2 个独立的概念。工程与工程之间可能毫无关系&#xff0c;也可能是继承关系&#xff0c;也可能是聚合关系&#xff0c;也可能既是继承…

美客多选品趋势分析,美客多选品时的注意事项

都知道选品的重要性&#xff0c;美客多这个平台也一样&#xff0c;选品选对了肯定事半功倍&#xff0c;本文介绍了美客多选品趋势分析&#xff0c;美客多选品时的注意事项&#xff0c;一起来了解下吧。、 美客多选品趋势分析 1、墨西哥站&#xff1a;跨境支付高&#xff0c;偏…

CSS---flex布局

主要记录flex布局的要点以及实例 flex flex父标签的6个属性flex-direction: flex布局的方向flex-wrap: 是否可以换行flex-flow: flex-direction 和 flex-wrap 一起写justify-content&#xff1a;横向对齐方式align-items: 纵向对齐方式align-content: 有换行情况下的纵向对齐方…

【MySQL系列】MySQL的事务管理的学习(一)_ 事务概念 | 事务操作方式 | 事务隔离级别

「前言」文章内容大致是MySQL事务管理。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、事务概念二、事务的版本支持三、事务提交方式四、事务常见的操作方式4.1 事务正常操作4.2 事务异常验证 五、事务隔离级别5.1 查看与设置隔离性5.2 读未提交&…