强化学习-信任区域策略优化和近端策略优化(第7章)

来源书籍:

TENSORFLOW REINFORCEMENT LEARNING QUICK START GUIDE

《TensorFlow强化学习快速入门指南-使用Python动手搭建自学习的智能体》

著者:[美]考希克·巴拉克里希南(Kaushik Balakrishnan)

译者:赵卫东

出版社:Packt    机械工业出版社

代码:https://github.com/x45w/TensorFlow-Reinforcement-Learning-Quick-Start-Guide-master/tree/main/PPOicon-default.png?t=N6B9https://github.com/x45w/TensorFlow-Reinforcement-Learning-Quick-Start-Guide-master/tree/main/PPO

目录

1.信任区域策略优化和近端策略优化

1.1 学习TRPO

1.2 学习PPO

2.思考题


1.信任区域策略优化和近端策略优化

第6章介绍了A3C和A2C的使用,前者是异步的,后者是同步的。本章将介绍另外的关于同步策略强化学习算法。准确地讲,这两个算法在数学上有很多相似之处,但在解决方法上却有所不同。一种称为信任区域策略优化(Trust Region Policy Optimization, TRPO),由OpenAI和加州大学伯克利分校的研究人员于2015年提出的。该算法在数学上很难求解,因为其涉及共轭梯度算法。请注意,一阶优化方法,如建立良好的Adam和随机梯度下降(SGD),不能用于求解TRPO方程。本章还介绍如何将求解策略优化方程合并为一个,从而产生近端策略优化(Proximal Policy Optimization, PPO)算法,并且可以使用一阶优化算法,如Adam或SGD。

1.1 学习TRPO

TRPO方程
TRPO涉及当前策略分配比例\pi _{\theta }与旧策略分配比例\pi _{\theta }^{old}(ji即较早的时间步长)的期望值的最大化,乘以优势函数A_{t},约束条件是新老策略分布的Kullback-Leibler(KL)散度的期望值不大于用户指定值\delta

 第一个方程是策略目标,第二个方程是一个附加约束。为了确保策略更新是渐进的,并且不会进行大的策略更新,从而将策略带到参数空间非常远的区域。

由于有两个需要联合优化的方程,Adam和SGD等一阶优化算法将不起作用。相反,用共轭梯度算法求解方程,对第一个方程进行线性逼近,对第二个方程进行二次逼近。然而,这涉及很多数学知识,所以不在本书中介绍。本书将使用PPO算法,它相对容易编程实现。

1.2 学习PPO

 PPO是TRPO的扩展,由OpenAI的研究人员于2017年引入。PPO也是一种同步策略算法,可以应用于离散动作问题和连续动作问题。它使用与TRPO中相同的策略分布比率,但不使用KL散度约束。具体来说,PPO使用三个损失函数,将它们合二为一。下面介绍三个损失函数。

PPO损失函数

第一个损失函数称为裁剪替代目标。用r_{t}(\theta )表示新旧策略概率分布的比率:

裁剪替代目标由以下方程给出,其中A_{t}是优势函数,\epsilon是超参数,通常使用ε=0.1或0.2: 

clip()函数将比率限制在1-ε和1+ε之间,从而使比率保持在范围内。min()函数是确保目标是未裁剪目标下限的最小化函数。 

第二个损失函数是状态值函数的L2范数:

第三个损失函数是策略分布的香农熵, 来源于信息论:

 把这三个损失函数组合起来。注意, 要最大化 L^{clip}  和L^{entropy}, 但是要最小化 L^{V}。其中 c1 和 c2 是用于缩放的常数将PPO 。总的损失函数定义为如下方程,

 注意,如果在策略和价值网络之间共享神经网络参数,那么前面L^{ppo}损失函数就可以最大化。另一方面,如果对策略和价值有单独的神经网络,那么就可以有单独的损失函数,那么就可以有单独的损失函数,如下面的方程所示,其中L^{policy}最大化,L^{value}最小化:

L^{policy}=L^{clip}+c_{2}L^{entropy}

L^{value}=L^{V}

注意,常量c_{1}在后一种设置中是不需要的,这里为策略和值提供了单独的神经网络。神经网络参数通过一批数据点上的多个迭代步骤进行更新,其中更新步骤的数量由用户指定为超参数。

2.思考题

(1)可以在TRPO中应用Adam或SGD优化吗?

答:信任区域策略优化(TRPO)具有目标函数和约束。因此,它需要二阶优化,例如共轭梯度。SGD和Adam不适用于TRPO。

(2)熵项在策略优化中的作用是什么?

答:熵项有助于正则化。它允许agent探索更多机会。

(3)为什么要削减策略比率?如果裁减参数\epsilon很大会发生什么?

答:缩减策略比率以限制一个更新步骤更改策略的量。如果裁剪参数\epsilon很大,则每次更新时策略都会发生巨大变化,这可能导致次优策略,因为agent的策略噪声较大且波动太多。

(4)为什么对mu使用激活函数tanh,而对sigma使用激活函数softplus?能用激活函数tanh来计算sigma吗?

答:这个动作被限制在负值和正值之间,因此激活函数tanh被用于mu。softplus用作sigma,并且总是正的。激活函数tanh不能用于sigma,因为tanh会导致sigma的负值,这是没有意义的。

(5)奖励在训练中总是有帮助吗?

答:奖励重新设计通常有助于训练。但是,如果做得不好,也无益于训练。必须确保完成奖励,以保持奖励功能的密集以及在适当的范围内。

(6)当测试一个已经训练好的agent时需要奖励吗?

答:不,奖励重新设计仅用于训练。

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

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

相关文章

Rust 编程小技巧摘选(7)

目录 Rust 编程小技巧(7) 1. 交换变量 2. 翻转数组 3. for_each() 用法 4. 结构体 Display trait 5. HashMap 和 BTreeMap 6. 遍历输出哈希表 7. 分离奇数和偶数 8. 判断素数(质数) Rust 编程小技巧(7) 1. 交换变量 与python, go等语言用法类…

计算机网络:网络字节序

目录 一、字节序1.字节序概念2.字节序的理解(1)大端模式存储数据(2)小端模式存储数据 二、网络字节序 一、字节序 1.字节序概念 字节序:内存中存储多字节数据的顺序。 难道存储数据还要看顺序吗? yes。内…

【将回声引入信号中】在语音或音频文件中引入混响或简单回声,以研究回声延迟和回波幅度对生成的回波信号感知的影响(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Java 正则表达式【匹配与分组基本原理】

简介 我们一般使用正则表达式是用来处理字符串的,不管是实际的开发中还是我们的算法竞赛中,使用正则表达式绝对可以大大提升我们的效率。 正则表达式(regular expression)其实就是对字符串进行模式匹配的技术。 快速入门 我们这里…

第三篇|金融人数据来源有哪些

数据对于金融行业真的很重要,那么金融人有哪些途径查数据呢? 国内: 1. 国家统计局 这个应该是无论什么行业都使用最频繁的网站,每个月都会固定发上个月资产投资数据 、工业增加值和利润数据等常规数据,其他数据也会…

什么是分布式系统,如何学习分布式系统

正文 虽然本人在前面也写过好几篇分布式系统相关的文章,主要包CAP理论,分布式储存与分布式事务,但对于分布式系统,并没有一个跟清晰的概念。分布式系统涉及到很多的技术、理论与协议,很多人也说,分布式系统…

Docker 安装和架构说明

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的Linux内核环境。 Docker实质上是在已经运行的Liunx下制造了一个隔离的文件环境,因此他的执行效率几乎等同于所部署的linux主机。因此Docker必须部署在Linux内核系统上。如果其他系统想部署Docke…

hutool 导出复杂表头excel

假如已这样的表头导出数据 1.把包含表头的excel添加到项目资源目录 2.编写代码读取表头所在sheet,并且加入需导出的数据 /*** 导出excel*/public static void downloadExcel(List<List<Object>> list, HttpServletResponse response) throws IOException {/*Strin…

wpf 3d 坐标系和基本三角形复习

wpf 3d 坐标系的描述见此&#xff0c; WPF 3d坐标系和基本三角形_wpf 坐标系_bcbobo21cn的博客-CSDN博客 X轴正向向右&#xff0c;Y轴正向向上&#xff1b;Z轴&#xff0c;正向是从屏幕里边出来&#xff0c;负向是往屏幕里边去&#xff1b;坐标原点是在呈现区域的中心&#x…

知识付费系统开发:构建高效智能的付费内容平台

随着数字化时代的来临&#xff0c;知识付费正迅速崭露头角&#xff0c;为知识创作者和求知者带来了全新的商机。在这个背景下&#xff0c;开发一款高效智能的知识付费系统成为了一项重要的任务。本文将深入探讨如何基于Python编程语言和相关技术构建一个智能的知识付费内容平台…

mac arm 通过brew搭建 php+nginx+mysql+xdebug

1.安装nginx brew install nginx //安装brew services start nginx //启动2.安装php brew install php7.4 //安装export PATH"/opt/homebrew/opt/php7.4/bin:$PATH" //加入环境变量 export PATH"/opt/homebrew/opt/php7.4/sbin:$PATH"brew serv…

【百度翻译api】中文自动翻译为英文

欸&#xff0c;最近想做一些nlp的项目&#xff0c;做完了中文的想做做英文的&#xff0c;但是呢&#xff0c;国内爬虫爬取的肯定都是中文 &#xff0c;爬取外网的技术我没有尝试过&#xff0c;没有把握。所以我决定启用翻译&#xff0c;在这期间chatGPT给了我非常多的方法&…

【枚举】CF1660 D

Problem - 1660D - Codeforces 题意&#xff1a; 思路&#xff1a; 思路巨简单&#xff0c;代码也wa了很多发才过&#xff0c;都是因为细节.... 很显然&#xff0c;要根据0分段处理 对于每一段&#xff0c;枚举去掉左边段还是右边段&#xff0c;左边段是 l 到第一个负数&am…

网络加速与文件传输软件:如何通过优化网络提升文件传输速度

在信息化社会&#xff0c;文件传输是人们生活和工作中必不可少的一个环节。但是&#xff0c;由于网络环境的多样性和传输过程中可能出现的各种问题&#xff0c;文件传输速度经常受到影响。因此&#xff0c;如何优化网络以提高文件传输速度成为了一个重要的课题。本文将探讨网络…

力扣:59. 螺旋矩阵 II(Python3)

题目&#xff1a; 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全…

windows使用/服务(13)戴尔电脑怎么设置通电自动开机

戴尔pc机器通电自启动 1、将主机显示器键盘鼠标连接好后&#xff0c;按主机电源键开机 2、在开机过程中按键盘"F12",进入如下界面&#xff0c;选择“BIOS SETUP” 3、选择“Power Management” 4、选择“AC Recovery”&#xff0c;点选“Power On”&#xff0c;点击“…

解决:django设置DEBUG=false时出现的问题

首先&#xff0c;我用的是django4.2&#xff0c;python3.10版本 本来&#xff0c;如果在settings.py中使用 DEBUG True&#xff0c;那么什么问题也没有&#xff0c;当然&#xff0c;这属于调试模式。 DEBUG True TEMPLATE_DEBUG DEBUGSTATIC_URL /static/ STATICFILES_DI…

七. 定时器

定时器 1. EPIT定时器(1) 特征&#xff1a;(2) 结构&#xff1a;(3) 工作模式&#xff1a;(4) 寄存器(5) 配置步骤(6) 定时器消抖 2. GPT 定时器(1) 特征(2) 结构(3) 工作模式(4) 寄存器<1> GPTx_CR 配置<2> GPTx_PR 分频<3> GPTx_SR 状态<4> GPTx_CNT…

Java集合知识回顾:从分类到工具类,掌握精髓

文章目录 1. 集合的分类2. Collection 接口3. Map 接口4. 泛型5. Collections 工具类总结 在Java编程世界中&#xff0c;集合是一项极为重要的知识&#xff0c;为我们的程序设计提供了强大的数据结构和处理手段。在本篇文章中&#xff0c;我们将回顾集合的分类以及相关的重要概…

接口测试自动化:简化测试流程,提升效率

接口测试自动化&#xff1a;简化测试流程&#xff0c;提升效率 什么是接口测试自动化&#xff1f; 接口测试自动化是指使用特定的工具和技术来自动化执行接口测试的过程。通过编写脚本&#xff0c;自动化工具可以模拟用户与软件系统的交互&#xff0c;验证接口的功能和性能。…