当前位置: 首页 > news >正文

强化学习(RL)的学习笔记

1. 前言

(1)PPO的优点

PPO(Proximal Policy Optimization)算法相比其他强化学习方法有几个显著优点:

  1. 稳定性和鲁棒性:PPO通过限制策略更新的幅度来避免训练过程中的大幅波动,这增加了算法的稳定性和鲁棒性。这是通过引入一个被称为“信任区域”的概念来实现的,它限制了新策略与旧策略之间的偏离程度。
  2. 简单的实现:与其他需要复杂计算的强化学习算法(如TRPO)相比,PPO简化了这些计算,使得实现起来更为简单,同时保持了相似的性能,这使得它在实践中更受欢迎。
  3. 样本效率:PPO在使用每个数据样本方面比一些其他算法更有效,它可以在每次迭代中重复利用数据,从而提高样本的使用效率。
  4. 适用性广:PPO被证明在连续动作空间的多种环境中有效,这意味着它适用于各种任务,包括机器人控制和游戏等。
  5. 超参数调整容易:PPO相对于其他算法来说对超参数的选择不那么敏感,这降低了调整参数的难度。
  6. 高性能:PPO在多个基准测试和任务中显示出了优秀的性能,包括与其他先进的RL算法相比。

(2)策略梯度的优点

  1. 处理连续动作空间: 策略梯度非常适合于连续动作空间的问题。例如,如果你在控制一个机器人的臂,它的动作是连续的角度变化,策略梯度方法可以学习在任何给定状态下应该施加什么样的扭矩。
  2. 更好的探索机制:策略梯度方法通常会有更好的探索机制,因为它们可以在选择动作时采取随机性。这种随机性使智能体有可能探索到新的、可能更好的动作。
  3. 适合非马尔可夫决策过程:策略梯度方法可以在非马尔可夫(非完全可观测)的环境中工作得很好,因为它们不需要像值函数方法那样严格地依赖于状态的马尔可夫性质。

2. 学习资料

2.1 Hung-yi Lee(李宏毅)RL course

Machine Learning 2017 (Hung-yi Lee, NTU) 23-1~23-3

3. 常见术语

PPO:Proximal Policy Optimization,近端策略优化

Imitation Learning:模仿学习

GPT4-AllTools:模仿学习是一种让机器通过观察和复制专家行为来学习特定任务的技术。就像是当我们小时候学习骑自行车或做饭时观察父母的动作并尝试效仿他们一样。

行动者+评论家(Actor+Critic)

在机器学习的强化学习任务中,行动者负责做决定并采取行动,而评论家则评估这些行动,并指导行动者如何调整策略以做得更好。通过这种合作,行动者学会更好地完成任务。

4. RL面临的挑战

奖励延迟(Reward Delay)

Reward Delay 是指在行为和由该行为引起的奖励之间存在时间延迟。这种延迟使得学习过程复杂化,因为学习算法需要能够将行为与可能在很长一段时间后才出现的结果联系起来。

李宏毅老师用 Space Invader 讲解 Reward Delay:

  • 但是如果machine只知道開火以後就得到reward
  • 它最後learn出來的結果它只會瘋狂開火
  • 對它來說往左移、往右移沒有任何reward它不想做
  • Reward delay
    • In space invader, only “fire” obtains reward
    • Although the moving before “fire” is important
    • In Go playing, it may be better to sacrifice immediate reward to gain more long-term reward

5. 常见概念

5.1 基本流程

5.1.1 Sample函数:探索行动的策略

Sample函数在训练过程中对应着“样本增广”的作用;

5.1.2 Gradient Ascent

Note:如果比赛胜利的话,就从参数上提升此次动作序列(sequence)出现的概率 θ \theta θ

θ new ← θ old  + η ∇ R ˉ θ o l d \theta^{\text {new}} \leftarrow \theta^{\text {old }}+\eta \nabla \bar{R}_{\theta^{old}} θnewθold +ηRˉθold

∇ R ˉ θ ≈ 1 N ∑ n = 1 N R ( τ n ) ∇ log ⁡ P ( τ n ∣ θ ) = 1 N ∑ n = 1 N R ( τ n ) ∑ t = 1 T n ∇ log ⁡ p ( a t n ∣ s t n , θ ) = 1 N ∑ n = 1 N ∑ t = 1 T n R ( τ ∘ n ) ∇ log ⁡ p ( a t n ∣ s t n , θ ) \begin{aligned} \nabla \bar{R}_\theta & \approx \frac{1}{N} \sum_{n=1}^N R\left(\tau^n\right) \nabla \log P\left(\tau^n \mid \theta\right)=\frac{1}{N} \sum_{n=1}^N R\left(\tau^n\right) \sum_{t=1}^{T_n} \nabla \log p\left(a_t^n \mid s_t^n, \theta\right) \\ & =\frac{1}{N} \sum_{n=1}^N \sum_{t=1}^{T_n} R\left(\tau_{\circ}^n\right) \nabla \log p \left(a_t^n \mid s_t^n, \theta\right)\end{aligned} RˉθN1n=1NR(τn)logP(τnθ)=N1n=1NR(τn)t=1Tnlogp(atnstn,θ)=N1n=1Nt=1TnR(τn)logp(atnstn,θ)
∇ log ⁡ p ( a t n ∣ s t n , θ ) = ∇ p ( a t n ∣ s t n , θ ) p ( a t n ∣ s t n , θ ) \nabla \log p\left(a_t^n \mid s_t^n, \theta\right) = \frac{\nabla p\left(a_t^n \mid s_t^n, \theta\right)}{p\left(a_t^n \mid s_t^n, \theta\right)} logp(atnstn,θ)=p(atnstn,θ)p(atnstn,θ)

关于从直觉上理解这里为什么要除以 p ( a t n ∣ s t n , θ ) p\left(a_t^n \mid s_t^n, \theta\right) p(atnstn,θ)

Q:请问,可以从直觉上解释 why divided by p ( a t n ∣ s t n , θ ) p\left(a_t^n \mid s_t^n, \theta\right) p(atnstn,θ)吗?
ChatGPT4

  • 从直觉上来说, ∇ log ⁡ p ( a t n ∣ s t n , θ ) \nabla \log p\left(a_t^n \mid s_t^n, \theta\right) logp(atnstn,θ)中的除以 p ( a t n ∣ s t n , θ ) p\left(a_t^n \mid s_t^n, \theta\right) p(atnstn,θ)这一步出现在对数概率的梯度中,它可以被解释为一种“归一化(Normalization)”过程。
  • 在策略梯度方法中,我们希望调整参数 θ \theta θ以增加好动作的概率,并减少坏动作的概率。为了做到这一点,我们需要考虑动作的概率:如果一个好动作已经有很高的概率被选择,我们不需要太大幅度地增加它的概率;而如果一个好动作目前只有很小的概率被选择,我们可能希望更显著地增加其被选中的概率。
  • 通过计算概率的对数梯度,我们实际上是在计算“相对于动作概率的变化率”。这样,对于那些已经很可能发生的动作,我们只进行小幅度的调整;而对于不太可能发生但却是好动作的情况,我们会做出更大的调整。

4.2 Sarsa和Q-Learning——最初的强化学习算法

2.1 基于Q-Learning的强化学习——使用Q表进行动作选择

其实Q-Learning的思想很简单,就跟把大象放进冰箱是差不多的,
基本的步骤是:

  1. 观察环境,得到observation;
  2. 根据obs查询Q表格,选择Q值最大的action;
  3. 执行该动作。

3.2 Sarsa和Q-Learning的预期目标

其实这两种算法的目标不同,导致了结果不同:

Sarsa:使得sample()行为的reward的平均水平达到最大;

Q-Learning:使得maxQ()行为的reward的达到最大;

3 DQN——用神经网络取代Q表格

3.1 为什么要用神经网络取代Q表呢?

如果动作状态的空间是连续的,则使用Q表可能无法对这种空间进行表述,(连续状态的可能取值是无限多的),

于是我们将“状态-Q值”看作是一种映射,也就是说:使用函数映射的思想来描述“状态-Q值”的映射关系

既然是函数映射,于是我们的DNN就闪亮登场了~

4 Actor-Critic算法

在我看来Actor和Critic有着这样的特点:

Actor——本能者

Critic——经验者

具体的形式就是Q Function;

量化Q的方法我们采用TD,(这也是李教授讲授的方法),

我感觉Critic有着将reward规则进行可导化的作用;

感性认识:表达了模型对规则的理解,(同时将reward函数进行可导化);

相关文章:

强化学习(RL)的学习笔记

1. 前言 (1)PPO的优点 PPO(Proximal Policy Optimization)算法相比其他强化学习方法有几个显著优点: 稳定性和鲁棒性:PPO通过限制策略更新的幅度来避免训练过程中的大幅波动,这增加了算法的稳…...

2023世界传感器大会开幕,汉威科技多领域创新产品引瞩目

11月5日,2023世界传感器大会在郑州国际会展中心正式拉开帷幕。据悉,本次大会由河南省人民政府、中国科学技术协会主办,郑州市人民政府、河南省工业和信息化厅、河南省科学技术协会、中国仪器仪表学会承办。 大会由“一会一赛一展”组成&#…...

什么是机器学习中的正则化?

1. 引言 在机器学习领域中,相关模型可能会在训练过程中变得过拟合和欠拟合。为了防止这种情况的发生,我们在机器学习中使用正则化操作来适当地让模型拟合在我们的测试集上。一般来说,正则化操作通过降低过拟合和欠拟合的可能性来帮助大家获得…...

PostgreSQL JDBC连接详解(附DEMO)

PostgreSQL JDBC连接详解 PostgreSQL JDBC连接详解摘要引言1. JDBC基础1.1 JDBC简介1.2 JDBC驱动程序1.3 建立JDBC连接 2. 配置PostgreSQL JDBC连接2.1 PostgreSQL连接JDBC2.2 PostgreSQL连接JDBC是否成功2.3 PostgreSQL连接JDBC获取表信息注释等2.4 PostgreSQL连接JDBC根据表名…...

学习视频剪辑:巧妙运用中画、底画,制作画中画,提升视频效果

随着数字媒体的普及,视频剪辑已经成为一项重要的技能。在视频剪辑过程中,制作画中画可以显著提升视频效果、信息传达和吸引力。本文讲解云炫AI智剪如何巧妙运用中画、底画批量制作画中画来提升视频剪辑水平,提高剪辑效率。 操作1、先执行云…...

Android Studio代码无法自动补全

Android Studio代码自动无法补全问题解决 在写layout布局文件时,代码不提示,不自动补全,可以采用如下方法: 点击File—>Project Structure,之后如图所示,找到左侧Modules,修改SDK版本号&…...

从零开始搭建微服务

人狠话不多,直接开始少点屁话本着共同学习进步的目的和大家交流如有不对的地方望铁子们多多谅解 准备工具 开发工具 idea Java环境 jdk.18 Maven 3.8.6 仓库镜像阿里云 <mirror><id>alimaven</id><name>aliyun maven</name><url>https:…...

HF Hub 现已加入存储区域功能

我们在 企业版 Hub 服务 方案中推出了 存储区域&#xff08;Storage Regions&#xff09; 功能。https://hf.co/enterprise 通过此功能&#xff0c;用户能够自主决定其组织的模型和数据集的存储地点&#xff0c;这带来两大显著优势&#xff0c;接下来的内容会进行简要介绍&…...

linux下实现电脑开机后软件自启动

实现linux的软件自启动&#xff0c;需要四个文件 第一个【displayScreen.desktop】文件&#xff0c;.desktop文件就是一个用来运行程序的快捷方式,也叫启动器&#xff0c;常用来自启动用的文件&#xff0c;内容如下 [Desktop Entry] #要执行的脚本位置 Exec/home/yicaobao/te…...

【C/PTA】循环结构进阶练习(二)

本文结合PTA专项练习带领读者掌握循环结构&#xff0c;刷题为主注释为辅&#xff0c;在代码中理解思路&#xff0c;其它不做过多叙述。 7-1 二分法求多项式单根 二分法求函数根的原理为&#xff1a;如果连续函数f(x)在区间[a,b]的两个端点取值异号&#xff0c;即f(a)f(b)<0…...

Visual Studio 2010 软件安装教程(附下载链接)——计算机二级专用编程软件

下载链接&#xff1a; 提取码:2wAKhttps://www.123pan.com/s/JRpSVv-9injv.html 安装步骤如下&#xff1a; 1.如图所示&#xff0c;双击打开【Visual Studio 2010简体中文旗舰版】文件夹 2.如图所示&#xff0c;找到“Setup”文件夹打开&#xff0c;双击运行“setup” 3.如图…...

大促来袭 零点价格如何监测

双十一大促即将到来&#xff0c;各大品牌、店铺都会非常关注价格&#xff0c;这个时候的促销信息会很复杂&#xff0c;平台促销、店铺促销等&#xff0c;不同的优惠信息涉及的券也会很多&#xff0c;同时各优惠券关联的时间点也会不同&#xff0c;有些券零点能用&#xff0c;有…...

python 之 正则表达式模块re

文章目录 findall例子&#xff1a;特点和注意事项&#xff1a; match示例&#xff1a;match 对象的方法和属性&#xff1a;注意事项&#xff1a; search示例&#xff1a;match 对象的方法和属性&#xff1a;注意事项&#xff1a; split示例&#xff1a;参数说明&#xff1a;注意…...

vue项目npm install报错解决

一、报错信息 node-sass4.14.1 postinstall: node scripts/build.js 二、解决方式 &#xff08;1&#xff09;删除未成功安装的 node_modules 文件&#xff1b; &#xff08;2&#xff09;为 node-sass 单独设置镜像源&#xff1b; npm config set sass_binary_sitehttps:/…...

ubuntu挂载共享目录的方法

ubuntu挂载共享目录的方法 安装NFS配置NFS 安装NFS sudo apt-get install nfs-kernel-server配置NFS 创建work共享目录:(本人将此文件放在桌面)sudo mkdir worksudo gedit /etc/exports添加: /home/zynq/Desktop/work *(rw,sync,no_root_squash,no_subtree_check)运行以下命…...

累计概率分布、概率分布函数(概率质量函数、概率密度函数)、度量空间、负采样(Negative Sampling)

这里写自定义目录标题 机器学习的基础知识累计概率分布概率分布函数度量空间负采样&#xff08;Negative Sampling&#xff09;基于分布的负采样&#xff08;Distribution-based Negative Sampling&#xff09;&#xff1a;基于近邻的负采样&#xff08;Neighbor-based Negativ…...

〔001〕虚幻 UE5 安装教程

✨ 目录 🎈 下载启动程序🎈 注册个人账户🎈 选择引擎版本🎈 选择安装选项🎈 虚幻商城的使用🎈 每月免费插件🎈 安装插件🎈 下载启动程序 下载地址:https://www.unrealengine.com/zh-CN/download点击上面地址,下载 UE5 启动程序并安装🎈 注册个人账户 打开商…...

Crypto(8) BUUCTF-bbbbbbrsa1

题目描述&#xff1a; from base64 import b64encode as b32encode from gmpy2 import invert,gcd,iroot from Crypto.Util.number import * from binascii import a2b_hex,b2a_hex import randomflag "******************************"nbit 128p getPrime(nbit)…...

软件测试之随机测试详解

在软件测试中除了根据测试用例和测试说明书进行功能测试外&#xff0c;还需要进行随机测试&#xff0c;随机测试是没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行测试用例的重要…...

【广州华锐互动】3D全景虚拟旅游在文旅行业的应用场景

随着科技的不断发展&#xff0c;3D全景虚拟旅游正在成为一种新兴的旅游体验方式&#xff0c;它可以帮助旅游者更加深入地了解旅游信息&#xff0c;提升旅游体验。下面我们将详细介绍3D全景虚拟旅游可以应用于哪些场景。 一、旅游规划 3D全景虚拟旅游可以帮助旅游者更加直观地进…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...