论文笔记:MEASURING DISENTANGLEMENT: A REVIEW OF METRICS

news2024/11/25 3:03:59

0 摘要

 

  • 学习解缠和表示数据中的变化因素是人工智能中的一个重要问题。虽然已经取得了许多关于学习这些表示的进展,但如何量化解缠仍然不清楚。
    • 虽然存在一些度量标准,但对它们的隐含假设、真正衡量的内容以及限制了解甚少。
    • 因此,当比较不同的表示时,很难解释结果
  • 本篇论文调查了有监督的解缠度量标准,并对它们进行了深入分析。
    • 提出了一个新的分类体系,将所有的度量标准分为三个类别:基于干预、基于预测器和基于信息。
    • 进行了大量实验,研究了解缠表示的特性,以便在多个方面进行分层比较。
    • 通过实验结果和分析,我们对解缠表示特性之间的关系提供了一些见解。
    • 分享了如何衡量解缠的指南。

1 介绍

1.1 背景

  • 解缠表示可以独立地捕捉解释数据的真实潜在因素。这种表示具有许多优势
    • 在下游任务中使用时,可以
      • 提高预测性能
      • 减少样本复杂性
      • 提供解释性
      • 改善公平性
  • 最初,通过视觉检查来评估解缠度,但近年来的研究努力致力于提出更严格评估的度量标准
    • 通常,随着新的表示学习方法的提出,会同时提出一种新的度量标准,以突出现有度量标准未能捕捉到的优势。
      • 不幸的是,往往不清楚这些度量标准具体衡量的是什么,以及在什么条件下它们是适用的
    • ——>在选择模型或超参数设置之前,必须选择一个适合的解耦程度度量标准
  • 本文相关代码:GitHub - ubisoft/ubisoft-laforge-disentanglement-metrics

1.2 相关工作

Challenging common assumptions in the unsupervised learning of disentangled representations

ICML 2019

  • 在没有归纳偏差的情况下,解缠预定义因素是不可能的
  • 随机种子和超参数对性能的影响要大于所研究模型的架构
  • 进行了实验,以衡量论文中使用的六个度量标准的一致性程度
    • 在简单的dSprites数据集上,六个度量标准中的五个度量标准相关,但在其他更现实的数据集上相关性较弱

A framework for the quantitative evaluation of disentangled representations,

ICLR 2018

提出了一个评估解缠表示的框架

确定了解缠表示的三个理想属性:显性(explicitness)、紧凑(compactness)和模块化(modularity)

提出了一个由三个部分组成的新度量标准

2 解耦表征的特点

  • 关于解缠的定义没有统一的观点,但大多数人都同意两个主要方面
    • 表示必须是分布式的。
      • ——>输入是解释性因素的组合,并对应于表示空间中的一个点
        • 称这个点为“code,编码”。
        • 每个解释性因素都在编码的不同维度中进行编码
    • 表示还应该为下游任务编码相关信息。
      • 根据应用和表示学习算法的不同,编码和因素之间的关系可能会有很大的差异

2.1 表征中的因素独立性

  • 因素独立性意味着一个因素的变化不会影响其他因素,即它们之间没有因果效应
    • 在一个解缠表示中,因素在表示空间中也是相互独立的
    • 换句话说,一个因素只影响表示空间的一个子集,而且只有这个因素影响这个子空间
    • 不同的论文对这个属性有不同的叫法(解耦性 disentanglement,模块性 modularity)
      • 论文中使用模块性
  • 一些作者认为,各个受因素影响的表示空间子集应尽可能小
    • 不同的论文对这个属性有不同的叫法(完整性 completeness,紧凑型 compactness)
    • 但是,有的时候强制紧凑性可能会产生反效果
      • 当描述复杂因素时,一组冗余的编码维度提供了更大的灵活性
  • 在实践中,识别出有用且可解释的独立因素是一项具有挑战性的任务
    • 因素必须在概念上独立,但也应在统计上独立

2.2 信息内容

  • 一个解耦表示应该完整地描述感兴趣的解释因素
  • 论文称之为明确性 explictness。
  • 学习模型须将表示空间划分为与每个类别相对应的区域。

 3 度量标准的特点

  • 度量标准应该将最低分归因于完全随机或完全缠绕的表示,将最高分归因于完美解缠的表示
  • 度量标准的分数还应该与其所测量的解缠特性的质量呈线性变化
    • 解耦属性越好,得分越高
    • 坏的情况是度量标准作为一个阶跃函数,这会导致分数的可解释性差,使得具有相同分数的两个模型之间的比较毫无意义
      • 此外,这种行为使得度量标准非常不稳定
  • 度量标准不应对超参数配置过于敏感。
    • 低参数敏感性能够确保在不同配置下的稳定性。
    • 对配置过度敏感的度量标准行为不可预测,可能会导致在比较模型时得出不准确的结论
  • 在现实世界的应用中,数据集往往存在噪声。
    • 衡量紧凑性或模块性的度量标准应该对噪声具有容忍性
    • 衡量明确性的度量标准应该反映表示中的噪声量。

4 度量方法

 4.0 记号

  •  假设有N个observationX=\{\mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_N\}
    • 每一个observation \mathbf{x}_i都假定由M个因子\mathbf{v}=\{v_1,v_2,\cdots,v_m\}完全解释,记为g(\mathbf{v})\rightarrow \mathbf{x}
    • n个observation,就有n个对应的M维的v
      • V=\{\mathbf{v}_1,\mathbf{v}_2,\cdots,\mathbf{v}_n\}
  • 一个表示学习算法希望将\mathbf{x}映射到\mathbf{z}\mathbf{z}就是前面说的‘’code“)中
    • 其中\mathbf{z} \in R^d
    • n个observation,就被映射到n个d维的z中
      • Z=\{\mathbf{z}_1,\mathbf{z}_2,\cdots,\mathbf{z}_n\}
  • 解耦度量是希望计算一个比较V和Z的打分

4.1 三种解耦度量方法

基于干预(intervention)的度量标准

创建在其中一个或多个因素保持不变的数据子集来比较编码

基于预测器(predictor)的度量标准使用回归器或分类器从编码中预测因素
基于信息(information)的度量标准利用信息论原理,如互信息(MI),来量化因素和编码之间的关系

4.2 基于干预的度量标准

  • 固定因素(v),创建子集,比较自己中的因素(v)和编码(z)
  • 采样过程需要大量不同的数据样本才能产生有意义的分数
  • 主要优点是这些度量标准不对因素-编码关系做任何假设
  • 缺点:超参数需要调整(数据子集的大小和数量、离散化粒度、分类器的超参数或距离函数的选择)

4.2.1 Z-diff /β-VAE

  • 选择实例(x)对来创建batch
    • 在一个batch中,随机选择一个因素vi
    • 在vi上有相同数值的样本v1和v2(v_i^1=v_i^2=v_i)形成一个数据对
    • 收集固定数量的数据对
    • 用对应编码的绝对差表示这一对样本(p=|z^1-z^2|)
    • 子集中所有对差异的平均值创建了训练集中的一个点 (个人觉得,一个点的意思是,平均差异+哪个因素vi固定)
    • 该过程重复多次以构成一个相当大的训练集
  • ——>最后,在数据集上训练一个线性分类器来预测固定的因素是哪个
    • 分类器的准确率就是Z-diff分数
  • intuition
    • 与固定因子vi相关联的编码维度应该具有相同的值
      • ——>与其他编码维度相比,这个编码维度差异较小

4.2.2 Z-min

4.2.3 Z-max

4.2.4 IRS(Intervention Recurrence Score)

  • 对因素实现进行干预之前和之后计算编码集之间的距离
  • intuition
    • 干扰因素的变化不应该影响与目标因素相关的编码维度
  • 方法
    • 首先,从实例中创建一个参考集,其中目标因素的实现被固定
    • 然后,第二个集合包含具有相同目标因素实现但干扰因素实现不同的实例
    • 计算与目标因素相关的编码维度的均值之间的距离
    • 采样和距离测量过程重复多次,最终的score是最大距离

4.3 基于预测的方法

  • 训练回归器或分类器以从编码中预测因素(f(z)→v)
  • 分析预测器以评估每个编码维度在预测因素方面的有用性

4.3.1 Disentanglement, Completeness and Informativeness (DCI)

  • 分别报告了模块性、紧凑性和显式性的分数。
  • 他们训练回归器从编码中预测因素。通过检查回归器的内部参数来(每个因素和编码维度对的预测重要性权重Rij)估计模块性和紧凑性。
  • 他们使用线性的Lasso回归器或非线性因素-编码映射的随机森林。
    • 对于Lasso回归器,重要性权重Rij是模型学习到的权重的大小
    • 对于随机森林,则使用编码维度的基尼重要性。
紧凑性

C_i=1+\sum_{j=1}^d p_{ij} log_dp_{ij}

pij 编码第j个维度对因子第i个维度重要的概率 p_{ij}=\frac{R_{ij}}{\sum_{k=1}^d R_ik}

整个表征的平均紧凑度:所有因子的平均紧凑性

模块性

D_j=1+\sum_{i=1}^M p_{ij}log_Mp_{ij}

pij 编码第j个维度对因子第i个维度重要的概率 p_{ij}=\frac{R_{ij}}{\sum_{k=1}^M R_kj}

整个表征的模块性:编码每个维度的模块性Dj的加权求和\sum_{j=1}^d \rho_jD_j

\rho_i=\frac{\sum_{i=1}^M R_{ij}}{\sum_{k=1}^d\sum_{i=1}^M R_{ik}}

显示性回归器的预测误差:1-6*MSE

4.3.2 显性分数

  • 使用简单的分类器(如逻辑回归),并使用ROC曲线下面积(AUC-ROC)来报告分类性能
  • 最终得分是所有因素的所有类别的平均AUC-ROC

4.3.3 SAP

4.4 基于信息的方法

  • 估计因素和编码之间的互信息(MI)来计算解缠度分数

4.4.1 MIG 

  • 计算每个因子和每个编码的互信息I(v_i,z_j)
    • 最大的互信息记为I(v_i,z_*),次大的记为I(v_i,z_o)
  • H(vi)是vi的熵

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

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

相关文章

睡眠脑电中的神经跨频率耦合函数

导读 人类大脑是一个紧密连接的复杂系统。虽然其结构比较固定,但它可以实现很多不同的功能。其中一个重要的功能是自然睡眠过程,这个过程可以改变意识和随意肌肉活动。在神经层面上,这些改变会伴随着大脑连接的变化。为了揭示这种与睡眠相关…

推荐一个好用的开发工具百宝箱

随着科技不断发展,越来越多的工具在网络上应运而生,方便我们更加高效地完成各种任务。今天我要向大家介绍一款在线工具——码加在线工具 - 做更好的工具,它可以帮助你轻松完成许多繁琐、复杂的工作。 首先,码加在线工具 是一款非…

一维信号进行小波去噪(python)

目录 小波变换小波去噪的原理小波阈值去噪的三个主要方面pywt.threshold函数进行小波去噪对ecg信号进行小波阈值去噪关于阈值输出参考 小波变换 小波变换是一种信号的时间——尺度(时间——频率)分析方法,它具有多分辨分析的特点&#xff0c…

【模型评估】ROC(Receiver operating characteristic)与 AUC

前面,我们提到了混淆矩阵,以及根据混淆矩阵进一步计算得到的敏感度(召回率)、特异度、精确度、准确度、F1 Score等等。那他们的前提都是要首先确定一个截断阈值。 【模型评估】混淆矩阵(confusion_matrix)…

理论粘贴板-背会了避免在大佬面前露馅-常更新

1.OLS说明 最小二乘法。给定序列X(x1,x2…xn),y,估计一个向量A(a0,a1.a2…)令y’a0a1x1a2x2…an*xn, 使得(y’-y)^2最小,计算A。 2.代码如下 来源《python机器学习实践指南》 import patsy import statsmodels.api as sm f ‘Rent ~ Zip Beds’ y, X patsy.dmat…

嘀嗒陪诊完整后台+前端全套小程序代码v1.0.8

就医相关陪护服务升级是未来发展趋势,嘀嗒陪诊是一个可以长期深耕持续运营的项目,并可借此切入拓展衔接养老、护理等领域。 嘀嗒陪诊小程序功能相对简单,后台也简捷,如果只是做个陪诊服务的小程序也基本能满足了,整体…

python基本语法知识(四)——包和模块

模块 例子1:导入某个模块中的具体功能 # 只导入time模块中的sleep方法,可以直接使用sleep调用不用加time. from time import sleep print("hello") sleep(500) print("fine")# 只导入time模块中的sleep方法,并给sleep起别名为sl f…

2023/6/11

BigDecima BigDecima的作用 用于小数的精确计算用来表示很大的小数 创建对象 创建对象时要注意以下细节 BigDecimal的使用和BigInteger类似,唯一要注意的点是:在使用除法时,如果除不尽就要设置精确到几位,否则报错 使用除法时的几…

模拟实现qsort函数(采用冒泡的方式),超详细!!!

函数详解和使用 函数声明 void qsort (void* base, size_t num, size_t size,int (*cmp)(const void* e1,constvoid* e2)); 头文件 stdlib.h 参数 base-- 指向要排序的数组的第一个元素的指针。 num-- 由 base 指向的数组中元素的个数。 size-- 数组中每个元素的大小&a…

高精度电压源的应用场合有哪些

高精度电压源是一种能够提供恒定、稳定电压输出的设备,被广泛应用于各种领域。高精度电压源是现代电力、通信、控制等领域中重要的测试仪器之一,其主要功能是提供稳定可靠的直流或交流电源,并具有高精度和高分辨率的特点。在实际应用中&#…

kotlin 解决构造函数兼容性问题

data class Person(private val head: String,val hand: String ) {} val p Person("head", "hand")Log.d("Alex", "Person $p") 打印结果: 2023-06-11 22:30:54.764 21840-21840 Alex com.example…

智能diy官网小程序至尊版v1.0.73+微信前端

🎈 限时活动领体验会员:可下载程序网创项目短视频素材 🎈 🎉 有需要的朋友记得关赞评,文章底部来交流!!! 🎉 ✨ 源码介绍 1、h5万*能页增加跳转小程序组件 2、功能链接弹…

智能工具Cursor安装和使用

一、Cursor介绍 Cursor.so是一个软件开发工具,是一个集成了 GPT的直接可以访问的,优秀而强大的智能AI代码生成工具,使用GPT-3.5免费。 它可以快速编写、编辑和聊天关于你的代码。它支持多种编程语言,如Python、Java、JavaScript等…

BootStrap文档

Bootstrap概念 ​ 1. 概念: 一个前端开发的框架,Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。 ​ 框架:一个半成品…

C++教程(06)——变量类型

C 变量类型 变量其实只不过是程序可操作的存储区的名称。C 中每个变量都有指定的类型,类型决定了变量存储的大小和布局,该范围内的值都可以存储在内存中,运算符可应用于变量上。 变量的名称可以由字母、数字和下划线字符组成。它必须以字母…

037_SS_SyncDiffusion: Coherent Montage via Synchronized Joint Diffusions

SyncDiffusion: Coherent Montage via Synchronized Joint Diffusions 1. Motivations & Arguments & Contributions 本文提出了一种即插即用的用Diffusion生成全景图的方法。 Diffusion模型通常只能生成固定大小的图像,为了生成分辨率比较高的全景图。现…

linux shell操作-基本脚本编写

文章目录 变量分支循环函数函数案例 变量 普通变量 声明变量,直接赋值,同python两边不能有空格‘’ 单引号表示纯字符“”双引号表示一个整体反引号表示操作命令末尾没有;号 # 直接赋值, namejack # 纯字符 pyCodeimport os\n…

Android进阶 四大组件的工作过程(一):Activity的工作过程

Android进阶 四大组件的工作过程(一):Activity的工作过程 导语 本系列文章主要是来介绍Android中四大组件的工作过程的,参照书籍为Android进阶解密,主要还是会涉及到源码的阅读。关于源码,大家可以到Andro…

Linux - 第25节 - Linux高级IO(三)

目录 1.Reactor模式 1.1.Reactor模式的定义 1.2.Reactor模式的角色构成 1.3.Reactor模式的工作流程 2.epoll ET服务器(Reactor模式) 2.1.epoll ET服务器源代码 2.2.epoll ET服务器源代码讲解 2.2.1.设计思路 2.2.2.Connection结构 2.2.3.TcpSe…

VMware Fusion网络配置 - 设置Nat静态IP

准备把主力机器从ThinkPad T460P替换到MacMini上, MacOS版本: 10.15.7 当前最新MacOS版本是13 于是面临一个问题, 很多最新的工程软件不支持我这IntelCPU的MacOS陈旧版本, 于是我准备装一个虚拟机, 把工程软件都安装到虚拟机里, 宿主机访问其中的服务, 这样还能继续保持我这…