瓦瑟斯坦距离、收缩映射和现代RL理论

news2024/11/15 19:42:16

Wasserstein Distance, Contraction Mapping, and Modern RL Theory | by Kowshik chilamkurthy | Medium

一、说明

        数学家们在考虑一些应用的情况下探索的概念和关系 - 几十年后成为他们最初从未想象过的问题的意想不到的解决方案。 黎曼的几何学只是出于纯粹的原因才被发现的——完全没有应用,后来被爱因斯坦用来解释时空结构和广义相对论。

二、RL强化学习概念

        强化学习(RL)中,智能体为顺序决策问题寻求最佳策略。 强化学习的常用方法,它模拟了对这种回报或价值的期望。 但是,在        “分布RL”旗帜下的RL的最新进展侧重于代理收到的随机返回R的分布。 状态操作值可以显式视为随机变量 Z,其期望值为 Q

方程1:普通贝尔曼操作员B

普通贝尔曼算子 (Eq-1) 通过迭代最小化 Q 和 BQ 之间的 L 平方距离(TD 学习),在近似 Q 值方面起着至关重要的作用。

方程2:分布贝尔曼算子ⲧπ

类似地,分布贝尔曼算子 ⲧπ 通过迭代最小化 Z 和 ⲧπ Z 之间的距离来近似 Z 值

Z 和 ⲦπZ 不是向量,而是分布,如何计算 2 个不同概率分布之间的距离? 答案可能很多(KL,DL指标等),但我们对Wasserstein距离特别感兴趣。

三、什么是瓦瑟斯坦距离

        俄罗斯数学家列昂尼德·瓦塞尔施泰恩(Leonid Vaseršteĭn)于1969年提出了这一概念。 瓦瑟斯坦距离是两个概率分布之间距离的度量。 它也被称为推土机距离,EM距离的缩写,因为非正式地,它可以被解释为移动和转换一堆泥土的最小能量成本,以一种概率分布的形状转变为另一种分布的形状。

推土机的距离,图片来源:作者

累积分布函数 F、G 之间的瓦瑟斯坦度量 (dp) 定义为:

方程3:瓦瑟斯坦度量

其中下确界取用所有随机变量对(U,V),具有各自的累积分布F和G.dp(F,G)也写为:

方程4:瓦瑟斯坦度量

让我们先看一个简单的情况:假设我们有两个离散分布 f(x) 和 g(x),定义如下:

f(1) = .1, f(2) = .2, f(3) = .4, f(4) = .3 g(1) = .2, g(2) = .1, g(3) = .2,g
(4) = .5

让我们计算方程 3:δ0 = 0.1–0.2 = -0.1 δ1= 0.2–0.1 = 0.1–2.0 = 4.0 δ2= 0.2–3.0 = 3.0



δ5= 0.2–<>.<> = -<>.<> 中定义的 Wasserstein 度量 (dp

因此 Wasserstein metric (dp =∑|δi|=0.6

四、为什么选择瓦瑟斯坦距离

        与Kullback-Leibler散度不同,Wasserstein度量是一个真实的概率度量,考虑了各种结果事件的概率和距离。与KL-散度等其他距离指标不同,Wasserstein 距离提供了分布之间距离的有意义且平滑的表示。
        这些属性使 Wasserstein 非常适合结果的潜在相似性比完全匹配可能性更重要的域。

Python 生成的示例,图片来源:作者

右图:对于KL散度,红色和蓝色分布之间的测量值相同,而Wasserstein距离测量将概率质量从红色状态传输到蓝色状态所需的功。

左图:瓦瑟斯坦距离确实有问题。只要转移,距离就保持不变,无论转移发生什么方向,概率质量都保持不变。因此,我们没有办法对距离进行推理。

五、ɣ-收缩

        收缩映射在强化学习的经典分析中起着关键的数学作用。让我们首先定义收缩

5.1 收缩映射

        在度量空间的元素上定义的函数(或运算符或映射)是收缩,如果存在一些常量 ɣ,使得对于度量空间 X₁ 和 X₂ 的任何两个元素,以下条件成立:(X, d)

        公式5:收缩映射

        这意味着在元素 X₁ 和 X₂ 上应用映射 f(.) 后,它们彼此之间的距离至少增加了一个因子 ɣ 

5.2 RL 收缩

        证明收缩非常重要,因为它证明了距离度量本身的使用是合理的。分布运算符 ⲧπ 用于估计 Z(x,a),证明 ⲧπ 是 dp 的收缩意味着所有矩也以指数方式快速收敛。

        方程6:ɣ收缩

        收缩表明,将运算符 Ⲧ 应用于 2 个不同的分布会缩短它们之间的距离,因此距离度量的选择非常重要。现在让我们尝试证明“分布算子 ⲧπ” 是 Wasserstein 距离 (dp) 的收缩。

5.3 证明

        Wasserstein度量的3个重要性质有助于我们证明收缩。

六、结论

        在这篇博客中,我们定义了瓦瑟斯坦距离,讨论了它的优缺点。 我们通过证明它的收缩来证明它在分布贝尔曼算子中作为距离度量的使用是合理的。 但这只是开始的结束,Wasserstein距离在计算随机梯度时提出了挑战,这使得它在使用函数近似时无效。 在我的下一篇博客中,我将讨论如何使用分位数回归来近似 Wasserstein 度量。

七、引用

  1. distributions - What is the advantages of Wasserstein metric compared to Kullback-Leibler divergence? - Cross Validated
  2. https://runzhe-yang.science/2017-10-04-contraction/#contraction-property

3. 强化学习的分布视角

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

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

相关文章

Abaqus 导出单元刚度矩阵和全局刚度矩阵

Abaqus 导出单元刚度矩阵和全局刚度矩阵 首次创建&#xff1a;2023.7.29 最后更新&#xff1a;2023.7.29 如有什么改进的地方&#xff0c;欢迎大家讨论&#xff01; 详细情况请查阅&#xff1a;Abaqus Analysis User’s Guide 一、Abaqus 导出单元刚度矩阵 1.生成单元刚度矩阵…

Kafka原理剖析

一、简介 Kafka是一个分布式的、分区的、多副本的消息发布-订阅系统&#xff0c;它提供了类似于JMS的特性&#xff0c;但在设计上完全不同&#xff0c;它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性&#xff0c;适用于离线和在线的消息消费&#xff0c;如常规的…

安装Anaconda3和MiniConda3

MiniConda3官方版是一款优秀的Python环境管理软件。MiniConda3最新版只包含conda及其依赖项如果您更愿意拥有conda以及超过720个开源软件包&#xff0c;请安装Anaconda。MiniConda3官方版还是一个开源的软件包管理系统和环境管理系统&#xff0c;能够帮助用户安装多个版本的软件…

Android高德地图定位实现签到打卡功能(全网最详细+收藏)

前言 本章根据高德地图API&#xff0c;实现打卡签到功能。用到了定位SDK 和地图SDK、覆盖物。打卡范围图形可以支持多种形状&#xff0c;如&#xff1a;圆形、长方形、多边形。 核心逻辑&#xff1a; 获取当前定位信息&#xff0c;然后通过Marker绘制小图标进行展示&a…

IO流(1)-字符流与字节流

1. I/O流前置知识 在讲解IO流之前&#xff0c;需要先说明几个小知识点&#xff1a; &#xff08;1&#xff09;bit 是最小的二进制单位&#xff0c;是计算机的操作部分&#xff0c;取值0或1。 &#xff08;2&#xff09;Byte&#xff08;字节&#xff09;是计算机操作数据的…

PayPal:全球金融科技领域当之无愧的巨无霸

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 全球最大的金融科技公司之一PayPal(PYPL)将于2023年8月2日发布其2023年第二季度的财报。多年以来该公司一直在革新数字汇款和收款方式&#xff0c;并提高数百万客户的生活质量。此外&#xff0c;PayPal的各种工具也为企业…

Java文件操作与流处理

文章目录 一、文件1.1 文件的概念1.2 文件的组织结构1.3 绝对路径和相对路径 二、文件操作File类2.1 属性和常用方法2.2 使用案例 三、字节流和字符流3.1 InputStream 和 FileInputStream3.2 使用 Scanner 读取字符3.2 OutputStream 和 FileOutputStream3.3 Reader 和 FileRead…

【每日一题】141. 环形链表

【每日一题】141. 环形链表 【每日一题】141. 环形链表题目描述解题思路 【每日一题】141. 环形链表 题目描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环…

深入理解C++命名空间

文章目录 1. 命名空间的概念2. 解决命名冲突3. 嵌套命名空间4. 使用命名空间别名总结 在C编程中&#xff0c;命名空间&#xff08;Namespace&#xff09;是一种非常有用的工具&#xff0c;它可以帮助我们组织和管理代码&#xff0c;避免命名冲突。本文将深入介绍C命名空间的概念…

WIZnet W5500-EVB-Pico树莓派入门教程(一)

概述 W5500-EVB-Pico是基于树莓派RP2040和完全硬连线TCP/IP控制器W5500的微控制器开发板-基本上与树莓派Pico板相同&#xff0c;但通过W5500芯片增加了以太网功能。 板载资源 RP2040是Raspberry Pi的首款微控制器。它将我们的高性能、低成本和易用性的标志性价值观带入微控制器…

【Android安全】Embedded Trace Microcell模块

ETM: Embedded Trace Macrocell, hardware unit responsible to generate hardware instruction trace. ETM模块用于在硬件层面实现instruction trace&#xff0c;可用于辅助逆向分析。 使用教程&#xff1a; https://mcuoneclipse.com/2016/11/05/tutorial-getting-etm-inst…

如何集成 Milvus 和 LangChain?

以下代码集成了 Milvus 和 LangChain: class VectorStore(ABC):"""Interface for vector stores.""" @abstractmethoddef add_texts(self,texts: Iterable[str],metadatas: Optional[List[dict]] = None, kwargs:Any,) ->List[str]: &…

[STL]详解list模拟实现

[STL]list模拟实现 文章目录 [STL]list模拟实现1. 整体结构总览2. 成员变量解析3. 默认成员函数构造函数1迭代器区间构造函数拷贝构造函数赋值运算符重载析构函数 4. 迭代器及相关函数迭代器整体结构总览迭代器的模拟实现begin函数和end函数begin函数和end函数const版本 5. 数据…

Spring源码(四)— 创建BeanDefinition

在第一章序言的图示中有提到&#xff0c;Spring中的配置文件都是通过各种的BeanDefinition来进行解析&#xff0c;并且支持不同类型的文件进行扩展。所以在创建完DefaultListableBeanFactory后&#xff0c;会通过BeanDefinition来解析传入的xml配置文件。 loadBeanDefinitions…

如何建立ftp server?快解析内网穿透实现外网直接访问

serveru是一款由Rob Beckers开发的获奖的ftp服务器软件&#xff0c;全称为&#xff1a;serv-u ftp server&#xff0c;它功能强大又易于使用。ftp服务器用户通过它用ftp协议能在internet上共享文件。serv-u不仅100%遵从通用ftp标准&#xff0c;也包括众多的独特功能可为每个用户…

常用直线模组的类型

目前&#xff0c;直线模组的应用非常广泛&#xff0c;而且直线模组的种类也有很多可以满足每个行业的应用要求&#xff0c;那么常见的直线模组类型有哪些&#xff0c;大家知道吗&#xff1f; 1、全封闭滚珠丝杆直线模组&#xff1a; 在半封闭式的基础上增加了不锈钢带防尘结构…

自监督去噪: self2self 原理及实现(Pytorch)

Self2Self With Dropout: Learning Self-Supervised Denoising From Single Image 文章地址&#xff1a;https://ieeexplore.ieee.org/document/9157420原始代码&#xff1a;https://github.com/scut-mingqinchen/self2self本文参考代码: https://github.com/JinYize/self2self…

无线系统传输距离(天线收发功率计算)

无线通信系统如图8.1. 发射机发射功率,发射机天线增益; 接收机发射功率,接收机天线增益; 收发之间的距离是R; 如果没有大气损耗,极化失配,阻抗不匹配等情况,且天线在远场区域工作,那么各向同性发射天线在接收天线处的功率密度为 (8.1) 对于定向性天线,该公式修正…

No105.精选前端面试题,享受每天的挑战和学习

文章目录 手写new手写Mapget和post区别发起post请求的时候&#xff0c;服务端是怎么解析你的body的&#xff08;content-type&#xff09;&#xff0c;常见的content-type都有哪些&#xff0c;发文件是怎么解析的&#xff08;FormData&#xff09;&#xff0c;如果多个文件&…

微信小程序|进度条

进度条是一个常见的用户界面元素,用于显示任务或操作的完成进度,可以在任何需要指示任务进度的情况下使用,以提供更好的用户体验和反馈。 一、前言1.1 进度条使用场景1.2 进度条属性介绍1.3 示例代码及效果二、自定义进度条2.1 进度条形状2.2 进度条尺寸2.3 进度条条纹2.4 进…