kl散度度量分布_强化学习新思潮1:值分布强化学习(04)
经典强化学习有比较好的理论保证,尽管值分布强化学习的效果很好,但理论分析比较少。本文继续介绍值分布强化学习算法的理论分析。参考论文为“An Analysis of Categorical Distributional Reinforcement Learning”。
Wasserstein 度量
Bellemare等在他们的第一篇值分布强化学习论文“A Distributional Perspective on Reinforcement Learning”中给出了一个重要的引理。
引理3:分布式贝尔曼操作符
对于
来说是
收缩的。
我们并不证明引理3,但要说明引理3中每个符号,以及引理3在说什么事情。
首先要说明符号
Wasserstein度量在最近两年的机器学习中被广泛讨论和应用,该度量被引起广泛关注来源于2017年的Arjovsky写的“神文”:”Wasserstein GAN”。在该论文中,作者指出Wasserstein度量比之前广泛应用的KL散度更适合做损失函数。一个重要的原因是KL散度无法度量支集没有交叠的两个概率分布,而Wasserstein却可以很好地描述任意概率分布之间的距离。
下面我们看看Wasserstein度量的定义:
Wasserstein距离俗称“推土机”距离,是指将概率分布为
更学术的语言表达为:
其中
用更形象的图像来表示为:
如图13为Wasserstein的图像解释,将概率分布
p-Wasserstein距离的定义是原Wasserstein距离定义的泛化,即利用两个概率分布的 阶矩来定义,定义如下:
其中
对于有限马尔科夫决策过程,状态行为对的个数为
有了这些定义,我们再次阐述一遍Bellemare等在2017年的论文“A Distributional Perspective on Reinforcement Learning” 中的引理
引理1:分布式贝尔曼操作符
在上界p-Wasserstein度量下是
收缩的,并且对于任意的初始分布集合
,我们有:
引理1是说,对于分布式贝尔曼操作符,从任意初始概率分布出发,根据策略
现在的问题是,当引入四个近似时,引理1是否依然成立?
论文“An Analysis of Categorical Distributional Reinforcement Learning”用引理2给出了答案。我们先看看引理2是什么。
引理2:操作符
一般在上界p-Wasserstein度量
下并不是收缩的。
引理2直接给出了一个答案:尽管分布式操作符
为了理解引理2,我们给出一个很简单的例子:
如图14为两个简单的分布,分别为
将该分布进行投影操作后,两个分布变为:
根据p-Wasserstein的定义(2), 两个投影后的分布距离为:
当
因此投影操作符并不是收缩的。从直观上来解释下,原来的分布在投影后p-Wasserstein距离会变大。
既然投影映射在p-Wasserstein距离下并非收缩的,那么投影贝尔曼操作符就一定不收缩吗?
答案是:未必。因为投影映射在Cramer距离下是收缩的
从Wasserstein距离到Cramer距离
Bellemare在2017年的论文“The Cramer Distance as a Solution to Biased Wasserstein Gradients”中指出,跟Wasserstein距离相比,Cramer距离有更好的特性:用样本计算Cramer距离的梯度是无偏的,而用样本计算Wasserstein距离的梯度其实是有偏的。
作者在论文“An Analysis of Categorical Distributional Reinforcement Learning”中进一步利用Cramer距离证明了投影算子的收缩性。下面我们先介绍Cramer距离的定义。
Cramer距离
两个分布
在分布集合
有了上述定义,我们不加证明地给出几个命题。
命题1:Cramer度量
赋予了概率空间
一个特殊的投影子空间,该投影操作符正好是启发式投影
,因此
相对于Cramer度量是非扩展的。
如图16为Cramer距离的几何解释。其中
其中
命题2:操作符
在cramer度量
下是一个
收缩的。进一步,存在唯一的分布函数
使得给定初始分布函数
我们有:
命题2是说在投影贝尔曼操作符下,分布会收敛到极限分布
命题3回答了这个问题:
命题3:令
为命题2的极限回报分布函数,如果
的支集在
,则我们有:
命题3是说随着离散分辨率越来越小,极限回报分布函数与真实分布函数之差越来越小。
命题3假设了真实的分布
命题4 :令
为命题2的极限回报分布函数,如果
的支集在
,并且
,则我们有:
文章的其余部分则是作者利用随机近似理论证明基于采样的值分布强化学习算法的收敛性,这里就不再细说了。最后作者提出还没有解决和证明的问题是当引入函数逼近来表示分布值函数的时候的收敛性,而这个主题非常非常重要但又非常非常难!留待以后的工作。
写得好累,休息休息一下。C51算法及其分析已经差不多,下次更新会讲分位数回归算法,参考论文为:“DistributionalReinforcementLearningwithQuantileRegression”敬请期待!
kl散度度量分布_强化学习新思潮1:值分布强化学习(04)相关推荐
- kl散度度量分布_论“邻里关系”的学问:度量和改进图信息在图神经网络中的使用 | AI Time PhD ICLR...
AI TIME欢迎每一位AI爱好者的加入! 近年来,图神经网络(GNN)在社交网络.知识图谱.推荐系统甚至生命科学等领域得到了越来越广泛的应用.但在复杂的图数据中,我们很难高效利用实体之间的相互依赖关 ...
- kl散度度量分布_浅谈KL散度
一.第一种理解 相对熵(relative entropy)又称为KL散度(Kullback–Leibler divergence,简称KLD),信息散度(information divergence) ...
- kl散度度量分布_解读KL散度:从定义到优化方法
Kullback-Leibler 散度是计算机科学领域内的一个重要概念.数据科学家 Will Kurt 通过一篇博客文章对这一概念进行了介绍,机器之心技术分析师在此基础上进行了解读和扩充.本文为该解读 ...
- kl散度度量分布_概率图简要模型笔记(二)马尔可夫随机场与KL散度、最大熵、指数族分布、高斯分布、极大似然分布...
这一篇文章主要是想捋一捋KL散度.最大熵.指数族分布这些东西之间的关系,这是一些非常基本的知识点,刚入门机器学习的时候,傻傻分不清楚,现在回过头来看,其实很多东西都可以串起来,不得不感叹数学真是一个很 ...
- kl散度度量分布_数据挖掘比赛技巧——确定数据同分布
在数据挖掘比赛中,很重要的一个技巧就是要确定训练集与测试集特征是否同分布,这也是机器学习的一个很重要的假设[1].但很多时候我们知道这个道理,却很难有方法来保证数据同分布,这篇文章就分享一下我所了解的 ...
- kl散度的理解_以曲率的视角理解自然梯度优化
一个故事 我要讲一个故事:一个你几乎肯定听过的故事,但它的侧重点与你习以为常关注的不同. 所有现代深度学习模型都使用梯度下降进行训练. 在梯度下降的每个步骤中,您的参数值从某个起始点开始,然后将它们移 ...
- 如何理解K-L散度(相对熵)
Kullback-Leibler Divergence,即K-L散度,是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵.在概率学和统计学上,我们经常会使用一种更简单的.近似的分布来替代观察数据或 ...
- KL散度解释——来自COUNT BAYESIE
KL散度解释--来自COUNT BAYESIE 本文来自Count Bayesie https://www.countbayesie.com/blog/2017/5/9/kullback-leible ...
- 资源 | UC Berkeley CS 294深度强化学习课程(附视频、学习资料)
来源:机器之心 本文共4000字,建议阅读10分钟. 本文主要介绍了课程中的强化学习主题,涉及深度强化学习的基本理论与前沿挑战. CS294 深度强化学习 2017 年秋季课程的所有资源已经放出.该课 ...
最新文章
- LeetCode 464 Can I Win(min-max博弈算法)
- tensorflow 之 tf.reshape 之 -1
- 超越IEtab、网银支付助手,无需再次登陆的Firefox的IE插件
- 华为交换机导入配置_华为交换机基础配置1—进入命令行
- ERROR: org.apache.hadoop.hbase.PleaseHoldException:Master is initializing
- 2019牛客暑期多校训练营(第七场)J A+B problem
- Kinect安装与配置(openNI2)
- android中文离线api_比林肯法球Linken sphere浏览器更多更新指纹的国产防关联软件-VMLogin中文版浏览器...
- DXperience 8.2.3
- 游戏开发完整学习路线,都在这里了
- 怎么从光缆缆标志区别是单模光缆还是多模光缆
- vue3 自定义指令 directive
- 浅谈JAVA中Calendar类FirstDayOfWeek的问题
- B站疯狂破圈 “后浪”们将会把B站推向何处?​
- error: Microsoft Visual C++ 9.0 is required (Unabl
- C语言习题答案【7】(仅参考)
- SpringBoot中如何配置使用过滤器(Filter)呢?
- 【成员故事】CSDN杨东杰:生态运营需要一个自己的圈子
- string的查找字符串操作
- python模拟火车订票系统代码_Python3.6实现12306火车票自动抢票,附源码
热门文章
- sqlserver连接和操作数据库
- win32 socket的一个简单的例子 控制台
- datatable数据类型方法
- linux 多个变量,linux-BASH-使用相同“变量”的多个实例读入...
- rstudio 保存_Rstudio学习笔记
- java 错误码设计_JAVA端的错误码和错误信息,该设计成全局常量还是枚举值?
- c语言实现英文文本编辑器_用flutter实现富文本编辑器(二)
- python爬虫天气数据_python爬虫:天气数据的分析
- 丹麦奥尔堡大学计算机系博士,丹麦奥尔堡大学招收计算机全奖PHD
- 没有语言基础可以学python_没有Python语言基础可以学习深度学习吗?