IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 强化学习交叉熵方法-Cross-Entropy Method -> 正文阅读

[人工智能]强化学习交叉熵方法-Cross-Entropy Method

大部分的知识参照于这篇文章cross-entropy method simple intro

Cross Entropy Method(CE method)是一种进化策略算法,它虽然也是基于交叉熵,但并不是我们熟知的监督学习中的交叉熵方法。这个算法的核心是一个参数优化的过程。CE method已经成功应用于不同范围的估计和优化问题,包括缓冲区分配、信号检测、DNA排序、交通控制以及神经网络和强化学习等领域。

cross-entropy方法的基础是重要性采样,有以下公式表示:
E x ~ p x [ H ( x ) ] = ∫ x p ( x ) H ( x ) d x = ∫ x q ( x ) p ( x ) q ( x ) H ( x ) d x = E x ~ q ( x ) [ p ( x ) q ( x ) H ( x ) ] \mathbb{E}_{x \sim p{x}}[H(x)]=\int_x p(x)H(x)dx=\int_x q(x)\frac{p(x)}{q(x)}H(x)dx=\mathbb{E}_{x \sim q(x)} \bigg[\frac{p(x)}{q(x)}H(x) \bigg] Expx?[H(x)]=x?p(x)H(x)dx=x?q(x)q(x)p(x)?H(x)dx=Exq(x)?[q(x)p(x)?H(x)]
在强化学习领域, H ( x ) H(x) H(x) 是一些策略设定的奖励函数, x , p ( x ) x,p(x) x,p(x)是所有可能的策略的分布。我们不想通过搜索所有可能的策略来最大化奖励,而是希望找到一种方法 q ( x ) q(x) q(x) 来近似 p ( x ) H ( x ) p(x)H(x) p(x)H(x),反复的迭代以最小化两个概率分布之间的距离。两个概率分布之间的距离有Kullback-Leibler(KL)散度计算:
K L ( p 1 ( x ) ∣ ∣ p 2 ( x ) ) = E x ~ p 1 ( x ) log ? p 1 ( x ) p 2 ( x ) = E x ~ p 1 ( x ) [ log ? p 1 ( x ) ] ? E x ~ p 1 ( x ) [ log ? p 2 ( x ) ] KL(p_1(x)||p_2(x))=\mathbb{E}_{x \sim p_1(x)} \log \frac{p_1(x)}{p_2(x)} =\mathbb{E}_{x \sim p_1(x)}[\log p_1(x)] - \mathbb{E}_{x \sim p_1(x)}[\log p_2(x)] KL(p1?(x)p2?(x))=Exp1?(x)?logp2?(x)p1?(x)?=Exp1?(x)?[logp1?(x)]?Exp1?(x)?[logp2?(x)]
KL散度中的第一项称为熵,它不依赖于 p 2 ( x ) p_2(x) p2?(x),因此在最小化过程中可以忽略它。第二项叫做交叉熵,这是深度学习中是非常常见的优化目标。结合这两个公式,我们可以得到一个迭代算法,它从 q 0 ( x ) = p ( x ) q_0(x)=p(x) q0?(x)=p(x) 开始,每一步都有所改进。这是 p ( x ) H ( x ) p(x)H(x) p(x)H(x) 的近似值,有一个更新公式:
q i + 1 ( x ) = arg ? min ? q i + 1 ( x ) ? E x ~ q i ( x ) p ( x ) q i ( x ) H ( x ) log ? q i + 1 ( x ) q_{i+1}(x) = \mathop{\arg\min}_{q_{i+1}(x)}-\mathbb{E}_{x \sim q_i(x)} \frac{p(x)}{q_i(x)} H(x) \log q_{i+1}(x) qi+1?(x)=argminqi+1?(x)??Exqi?(x)?qi?(x)p(x)?H(x)logqi+1?(x)
这是一种通用的交叉熵方法,可以在我们的RL案例中大大简化。首先,我们将 H ( x ) H(x) H(x) 替换为一个指示函数,当奖励高于阈值时为1,当奖励低于阈值时为0。我们的策略更新如下所示:
π i + 1 ( α ∣ s ) = arg ? min ? π i + 1 ? E z ~ p i i ( α ∣ s ) [ R ( z ≥ ψ i ) ] log ? π i + 1 ( α ∣ s ) \pi_{i+1}(\alpha|s) = \mathop{\arg \min}_{\pi_{i+1}} - \mathbb{E}_{\mathrm{z} \sim pi_i(\alpha | \mathrm{s})} [R(\mathrm{z}\geq \psi_i)] \log \pi_{i+1}(\alpha|\mathrm{s}) πi+1?(αs)=argminπi+1???Ezpii?(αs)?[R(zψi?)]logπi+1?(αs)
严格地说,上述公式忽略了规范化项,但在没有规范化项的情况下,它在实践中仍然有效。因此,方法非常明确:我们使用当前策略(从一些随机初始策略开始)对事件进行采样,并最小化最成功的样本负对数可能性。

上述代码的运行结果,在tensorboard查看的效果如下:

loss
在这里插入图片描述
reward_bound
在这里插入图片描述
reward_mean
在这里插入图片描述
训练后的网络用于cartpole的运行结果如下视频所示
cartpole video

相关代码见github:Cross-Entropy Method

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:23:58  更:2022-03-30 18:27:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:53:59-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码