强化学习-深度确定性策略梯度(第5章)

news2024/12/24 21:32:32

来源书籍:

TENSORFLOW REINFORCEMENT LEARNING QUICK START GUIDE

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

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

译者:赵卫东

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


1.深度确定性策略梯度

前面的章节介绍了如何使用强化学习来解决离散行为问,例如在Atari游戏中出现的问题。在此基础上,可以解决持续的、有真正价值的行为问题。连续控制的问题有很多,例如机械臂的电动机转矩;自动汽车的转向、加速和制动;地上的轮式机器人运动;无人机的滚动、俯仰和偏航控制等。对于这些问题,可以在强化学习背景下训练神经网络以输出真正价值的行为。

许多连续控制算法涉及两个网络:一个为actor(基于策略),另一个为critic(基于价值)。因此,这一系列算法称为Actor-Critic算法。actor的角色是学习一个好的策略,以预测给定状态下的好行为。critic的作用是确定actor是否采取了好的行为,并提供反馈作为actor的学习信号。这类似于学生-老师或员工-老板之间的关系,其中学生或员工承担一项任务或工作,老师或老板提供对其行为质量的反馈。

连续控制强化学习的基础是策略梯度,它是对神经网络权重变化的合理估计,以便最大化长期累积折扣奖励。具体地说,其使用链式规则,是对需要反向传播到actor网络中以改进策略的梯度估计,被评估为一小批样品的平均值。本章将讨论以上内容。特别地,将介绍深度确定性策略梯度(DDPG)算法,这是一种最先进的用于连续控制的强化学习算法。

连续控制有许多实际应用。例如,连续控制可以评估自动驾驶汽车的转向/加速和制动,可以用于确定机器人行动所需的转矩,还可以用于生物医学,比如确定人类运动的肌肉控制。

1.1Actor-Critic算法和策略梯度

举一个学生在学校如何学习的例子。学生在学习时通常会犯很多错误。当他们学得很好时,它们的老师会提供积极的反馈;而如果学生在一项任务上做得不好,老师会提供负面反馈。这个反馈可以作为学生更好地完成任务地学习信号。这就是Actor-Critic算法。

Actor-Critic算法包括的步骤如下:

①两个神经网络:一个为actor,另一个为critic

②actor就像学生,在给定的状态下采取行动

③critic就像老师,为actor提供学习地反馈

④与老师不同,critic网络也应该从头开始训练,这使得问题具有挑战性

⑤策略梯度用于训练actor

⑥Bellman更新的L2范数用于训练critic

策略梯度

策略梯度定义如下:

 J是需要最大化的长期奖励函数,\theta是策略神经网络参数,N是小批量大小,Q(s,a)是状态动作值函数,\pi是策略。换言之,此式计算了动作-价值函数相对于行为的梯度,以及策略相对于网络参数的梯度,并将它们相乘,然后从一个小批量中取N个数据样本的平均值。然后,可以在梯度上升设置中使用此策略梯度来更新策略参数。请注意,它本质上是计算策略梯度的微积分的链式规则(chain rule of calculus)。

1.2深度确定性策略梯度

本节将研究DDPG算法,这是一种目前最先进的用于连续控制的强化学习算法之一。它最初由Goole DeepMind于2016年发布,并在社区中引起了大家广泛的兴趣,此后又提出了几种新的变体。与DQN的情况一样,DDPG也使用目标网络来保持稳定性。它还使用重放缓冲区来重新使用过去的数据。因此,DDPG是一种异步策略的强化学习算法

ddpg.py文件是开始训练和测试的主文件。它将调用TrainOrTest.py中训练或测试函数。AandC.py文件包含actor和critic网络的TensorFlow代码。reply_buffer.py使用双向队列数据结构将样本存储在重放缓冲区中。

代码:

https://github.com/x45w/TensorFlow-Reinforcement-Learning-Quick-Start-Guide-master-DDPGicon-default.png?t=N6B9https://github.com/x45w/TensorFlow-Reinforcement-Learning-Quick-Start-Guide-master-DDPG

2.思考题

(1)DDPG是同步策略算法还是异步策略算法?

答:DDPG是一种异步策略算法,因为它使用重放缓冲区。

(2)是否必须对actor和critic使用相同的神经网络结构,还是可以选择不同的神经网络结构?

答:一般来说,actor和critic隐藏层和每个隐藏层的神经元数量相同,但这不是必须的。注意,对于actor和critic,输出层是不同的。其中actor的输出数量等于动作的数量,而critic只有一个输出。

(3)能用DDPG玩Atari Breakout吗?

答:DDPG用于连续控制,即动作是连续且实时的。Atari Breakout有离散动作,因此DDPG不适合Atari Breakout。

(4)为什么神经网络的偏置被初始化为小的正值?

答:使用Relu激活函数,因此偏差被初始化为小的正值,以便它们在训练开始时触发并允许梯度反向传播。

(5)试修改本章中的代码来训练一个agent来学习InvertedDoublePendulum-v2问题。是否Pendulum-v0更具挑战性?

答:https://mgoulao.github.io/gym-docs/environments/mujoco/inverted_double_pendulum/

(6)改变神经网络结构,检查agent是否可以学习Pendulum-v0。例如,使用值400、100、25、10、5和1不断减少第一个隐藏层中的神经元数量,并检查agent对第一个隐藏层中的不同数量神经元的表现。如果神经元数量太少,可能会导致信息瓶颈,网络的输入无法充分表示。也就是说,当深入探讨神经网络时,发现信息会丢失。你观察到这种效果了吗?

答:注意当第一层中的神经元数量依次减少时学习会发生什么。一般来说,不仅在强化学习设置中会遇到信息瓶颈,在任何深度学习问题中都会遇到信息瓶颈。

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

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

相关文章

Prompt、RAG、微调还是重新训练?如何选择正确的生成式AI的使用方法

生成式人工智能正在快速发展,许多人正在尝试使用这项技术来解决他们的业务问题。一般情况下有4种常见的使用方法: Prompt EngineeringRetrieval Augmented Generation (RAG 检索增强生成)微调从头开始训练基础模型(FM) 本文将试图根据一些常见的可量化…

爬虫逆向实战(十八)--某得科技登录

一、数据接口分析 主页地址:某得科技 1、抓包 通过抓包可以发现数据接口是AjaxLogin 2、判断是否有加密参数 请求参数是否加密? 查看“载荷”模块可以发现有一个password加密参数和一个__RequestVerificationToken 请求头是否加密? 无…

FreeRTOS qemu mps2-an385 bsp 移植制作 :串口打印篇

相关文章 FreeRTOS qemu mps2-an385 bsp 移植制作 :环境搭建篇 FreeRTOS qemu mps2-an385 bsp 移植制作 :系统启动篇 FreeRTOS qemu mps2-an385 bsp 移植制作 :系统运行篇 开发环境 Win10 64位 VS Code,ssh 远程连接 ubuntu …

小样本UIE 信息抽取微调快速上手(不含doccona标注)

文章目录 1.安装环境(可略过)2.模型简介(略读)抽取任务输入输出示例:1.实体识别2.关系抽取 3.快速上手(主菜)(1)转换数据标注数据样例 (2)生成训练数据训练数据样例 &…

【刷题笔记8.17】LeetCode:下一个排列

LeetCode:下一个排列 题目描述 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的…

Java调用https接口添加证书

使用InstallCert.Java生成证书 /** Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions* are met:** - Redistri…

Druid 德鲁伊 | 安装、使用指南

Druid安装指南 1. druid简介1.1数据库连接池 2. 安装前的环境准备3. 安装步骤3.1 引入maven依赖3.1 编写配置文件3.3 启动Druid Monitor 4. druid使用指南4.1 数据源4.2 SQL监控4.3 SQL防火墙4.4 web应用4.5 URI监控 1. druid简介 druid是阿里开源的一个数据库连接池的解决方案…

【Unity】按Esc进入操作菜单

本文章是基于如下视频的自我总结 https://www.youtube.com/watch?vJivuXdrIHK0 步骤如下 1、在Canvas 界面添加一个Panel Panel中添加一个按钮,调整按钮的大小为合适大小 调整字体的大小为合适大小 可以为字体添加Shadow组件,产生阴影效果 2、调整按…

【IMX6ULL驱动开发学习】05.字符设备驱动开发模板(包括读写函数、poll机制、异步通知、定时器、中断、自动创建设备节点和环形缓冲区)

一、 字符设备驱动简介 字符设备是Linux驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如常见的点灯、按键、IIC、SPI、LCD 等等都是字符设备,这些设备的驱动就叫…

Linux 常见问题解决思路

Linux 常见问题解决思路 CPU 高系统平均负载高(load average) CPU 高 1,步骤:查找进程-》查找线程-》分析threadDump日志-》找出问题代码 a、查看 cpu 高的 java 进程 topb、生成进程下所有线程的栈日志 jstack 1721 > 1712.…

Python入门【TCP建立连接的三次握手、 TCP断开连接的四次挥手、套接字编程实战、 TCP编程的实现、TCP双向持续通信】(二十七)

👏作者简介:大家好,我是爱敲代码的小王,CSDN博客博主,Python小白 📕系列专栏:python入门到实战、Python爬虫开发、Python办公自动化、Python数据分析、Python前后端开发 📧如果文章知识点有错误…

ant-design-vue在ios使用AUpload组件唤起了相机,HTML的 `capture` 属性

在使用ant design vue组件的上传组件AUpload的时候有一个问题&#xff0c;直接按照demo写&#xff0c;在ios上会唤起相机&#xff0c;但是实际上我们的需求是弹出选择相册/相机这个弹框。 解决办法是加一个 cupture"null"这个属性即可 <a-upload:capture"nu…

电压放大器的作用有哪些呢

电压放大器是一种基础的电子元件&#xff0c;它能够将输入电压信号转化为更高的输出电压信号&#xff0c;从而实现对信号的放大和处理。电压放大器广泛应用于各个领域&#xff0c;如通讯、控制、测量等。下面我们来详细了解一下电压放大器的作用。 一、信号放大 电压放大器最主…

selenium语法进阶+常用API

目录 浏览器操作 浏览器回退&#xff0c;前进 与刷新 浏览器窗口设置大小 浏览器设置宽高 浏览器窗口最大化 浏览器控制滚动条 信息打印 打印页面的标题和当前页面的URL 定位一组元素 鼠标和键盘事件 键盘 鼠标 下拉框操作 通过索引定位&#xff08;se…

Vue-8.集成(.editorconfig、.eslintrc.js、.prettierrc)

介绍 同时使用 .editorconfig、.prettierrc 和 .eslintrc.js 是很常见的做法&#xff0c;因为它们可以在不同层面上帮助确保代码的格式一致性和质量。这种组合可以在开发过程中提供全面的代码维护和质量保证。然而&#xff0c;这也可能增加一些复杂性&#xff0c;需要谨慎配置…

详细记录在迅为iMX6开发板中运行可执行文件

本文主要为了记录通过在虚拟机Ubuntu系统编译生成的可执行文件canitf如何运行在迅为的iMX6开发板上&#xff0c;中间涉及到的一些操作相对来说比较固定&#xff0c;因此可以整理成参考步骤以便之后使用时来依照执行。 一、生成可执行文件 首先在Ubuntu系统对应目录终端运行如…

7-11 到底是不是太胖了

分数 10 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 据说一个人的标准体重应该是其身高&#xff08;单位&#xff1a;厘米&#xff09;减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材&#xff08;即 | 真实体重 − 标准体重 | < 标…

【深入了解PyTorch】PyTorch模型解释性和可解释性:探索决策过程与预测结果的奥秘

【深入了解PyTorch】PyTorch模型解释性和可解释性:探索决策过程与预测结果的奥秘 PyTorch模型解释性和可解释性:探索决策过程与预测结果的奥秘1. 引言2. 梯度可视化3. 特征重要性分析4. 结论PyTorch模型解释性和可解释性:探索决策过程与预测结果的奥秘 在机器学习和深度学习…

哈夫曼树(赫夫曼树、最优树)详解

目录 哈夫曼树&#xff08;赫夫曼树、最优树&#xff09;详解 哈夫曼树相关的几个名词 什么是哈夫曼树 构建哈夫曼树的过程 哈弗曼树中结点结构 构建哈弗曼树的算法实现 哈夫曼树&#xff08;赫夫曼树、最优树&#xff09;详解 哈夫曼树相关的几个名词 路径&#xff1a;…

“西游记“中的项目管理:如何驾驭你的“取经之路”

​1.​引言 自古以来&#xff0c;文学作品不仅仅是为了娱乐&#xff0c;它们也为我们提供了生活的智慧和经验。中国的古典文学巨著《西游记》便是其中的佼佼者&#xff0c;其中的故事和角色为我们提供了丰富的人生哲理和管理智慧。但你可能会问&#xff0c;一个古老的神话故事…