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

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction

  1. 从理论和实践层面深入学习深度强化学习。
  2. 学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。
  3. 在独特的环境中训练智能体,比如 SnowballFight、Huggy the Doggo、VizDoom等,还有经典环境,如 Space Invaders、PyBullet 等。

强化学习框架

RL过程
Action
Reward
Rt/Rt+1
State
St/St+1
Agent
Environment
奖励假设(The reward hypothesis)

为什么智能体的目标是最大化预期回报?因为强化学习基于奖励假设,即所有目标都可以描述为最大化预期回报(预期累积奖励)。这就是为什么在强化学习中,为了获得最佳行为表现,我们的目标是学习采取能够最大化预期累积奖励的动作。

马尔可夫性质(Markov Property)

强化学习过程被称作马尔可夫决策过程(Markov Decision Process,简称 MDP)。马尔可夫性质,也称为无记忆性或无后效性,是概率论和随机过程理论中的一个重要概念。它描述了一个随机过程在给定现在状态及所有过去状态的情况下,其未来状态的条件概率分布仅依赖于当前状态,而与过去状态无关。换句话说,系统的下一个状态只取决于当前状态,而与之前的状态序列无关。

观测空间/状态空间(Observations/States Space)

观测(Observations)和状态(States)是智能体从环境中获取的信息。在视频游戏的情境下,观测可能是一帧画面(即屏幕截图)。而在交易智能体的情境下,观测可能是某只股票的价格等。

然而,我们需要对观测和状态进行区分:

  • 状态(State, s):状态是对世界当前状况的完整描述,不存在任何隐藏信息。

  • 观测(Observation):观测是智能体从环境中获取的部分信息,它可能并不包含关于世界当前状况的完整描述。

动作空间(Action Space)

动作空间是指在一个环境中,智能体可以采取的所有可能动作的集合。动作空间的设计对于强化学习算法的性能和效率至关重要,因为它直接决定了智能体在决策时需要考虑的选项数量。动作空间可以分为离散空间和连续空间两种类型:

  • 离散动作空间(Discrete Action Space)在离散动作空间中,智能体可以采取的动作数量是有限的。每个动作都可以被明确地定义和区分。

  • 连续动作空间(Continuous Action Space)在连续动作空间中,智能体可以采取的动作数量是无限的,或者至少是在一个连续的范围内变化。动作通常由实数或向量表示,可以取任意值(在允许的范围内)。

奖励与折扣(Rewards and the discounting)

奖励在强化学习(RL)中至关重要,因为它是智能体获得的唯一反馈。借助奖励,智能体能够判断所采取的行动是好是坏。每个时间步 t 的累积奖励可以表示为:

R ( τ ) = r t + 1 + r t + 2 + r t + 3 + . . . R(\tau) = r_{t+1} + r_{t+2} + r_{t+3} + ... R(τ)=rt+1+rt+2+rt+3+...

在强化学习中,对奖励进行折扣(discounting)是一个核心概念,主要基于以下几个关键原因:

  1. 避免短视:没有折扣,智能体可能过于追求即时高奖励,而忽视长远利益。折扣机制鼓励智能体考虑长远规划,避免陷入局部最优解。
  2. 数学和计算上的便利性:折扣使得累积奖励的期望值有界,从而保证了强化学习算法(如值迭代、策略迭代)的收敛性。这对于算法的稳定性和可靠性至关重要。
  3. 模型不确定性和风险规避:
    - 不确定性处理:在现实世界中,环境往往是不确定的,未来状态和奖励难以准确预测。折扣机制可以看作是对未来不确定性的一种处理方式,通过降低未来奖励的权重,减少了对未来不确定性的过度依赖。
    - 风险规避:折扣还体现了对风险的规避。由于未来奖励的不确定性增加,智能体可能更倾向于选择当前确定的高奖励,而非冒险追求未来可能的高奖励。
定义折扣率(Gamma)

R ( τ ) = ∑ k = 0 ∞ γ k r t + k + 1 R(\tau) = \sum_{k=0}^{\infty} \gamma^k r_{t+k+1} R(τ)=k=0γkrt+k+1

gamma参数,取值范围必须在 0 到 1 之间。在大多数情况下,gamma 的取值介于 0.95 和 0.99 之间。

  • Gamma 值越大,折扣越小。这意味着智能体更加关注长期奖励。
  • 相反,Gamma 值越小,折扣越大。这表明智能体更倾向于关注短期奖励。

强化学习任务类型

在强化学习中,任务是强化学习问题的一个具体实例。根据任务的结构和特性,我们可以将强化学习任务分为两大类:

片段式任务(Episodic Task)
  • 定义:在片段式任务中,存在一个明确的起始点和终止点(也称为终端状态)。一个完整的任务执行过程被称为一个“片段”(episode),它由一系列状态(States)、动作(Actions)、奖励(Rewards)以及新的状态组成。
  • 示例
    • 以经典游戏《超级马里奥兄弟》为例,一个片段开始于马里奥进入一个新的关卡,结束于马里奥被击败或到达关卡的终点。在这个片段中,马里奥需要不断采取动作来避开障碍物、收集金币,并最终到达终点。
连续性任务(Continuing Task)
  • 定义:与片段式任务不同,连续性任务没有明确的终止点。智能体在一个持续的环境中不断采取动作,并接收奖励。
  • 示例
    • 考虑一个机器人控制任务,机器人需要在工厂中持续执行任务,如搬运物品、装配零件等。这个任务没有明确的终止点,机器人需要不断学习并优化其控制策略,以提高任务执行的效率和准确性。

探索与利用的权衡

最后,在探讨解决强化学习问题的不同方法之前,我们必须再讨论一个非常重要的主题:探索与利用的权衡。探索(Exploration)是指通过尝试随机动作来探索环境,以获取更多关于环境的信息。利用(Exploitation)则是指利用已知的信息来最大化奖励。

解决探索/利用的权衡问题

在强化学习中,探索(Exploration)与利用(Exploitation)的权衡是一个核心挑战。智能体需要在尝试新动作以获取更多信息(探索)和利用已知信息以最大化当前奖励(利用)之间找到平衡。以下是一些解决这一权衡问题的主要方法:

  1. ε-贪心策略(ε-Greedy)以概率 ϵ 随机选择一个动作(探索),以概率 1−ϵ 选择当前估计的最优动作(利用)。
  2. 软最大策略(Softmax/Boltzmann Exploration)根据动作的估计价值,通过 softmax 函数计算每个动作的选择概率。价值越高的动作被选择的概率越大,但所有动作都有非零概率被选择。
  3. 上置信界算法(UCB)在选择动作时,不仅考虑动作的估计价值,还考虑动作的不确定性(即探索的必要性)。通常选择价值高且不确定性大的动作。
  4. 贝叶斯方法 使用贝叶斯框架来建模动作价值的分布,通过后验分布来量化不确定性。智能体根据后验分布选择动作,通常选择期望价值高且不确定性大的动作。
  5. 汤普森采样(Thompson Sampling)根据动作价值的后验分布,随机采样一个价值,然后选择采样价值最高的动作。
  6. 深度强化学习中的探索方法
    • 噪声网络(Noisy Networks)
      在神经网络的权重中添加噪声,使得智能体的策略具有一定的随机性,从而实现探索。
    • 计数法(Count-Based Exploration)
      对状态或状态-动作对的访问次数进行计数,根据访问次数调整探索的强度。通常用于离散状态空间。
    • 内在奖励(Intrinsic Motivation)
      除了环境提供的外部奖励外,智能体还获得一个内在奖励,鼓励其探索新奇或不确定的状态。
    • 好奇心驱动(Curiosity-Driven Exploration)
      智能体通过预测模型来评估状态的“新奇性”,并根据新奇性获得奖励,从而鼓励探索。

解决强化学习(RL)问题的两种主要方法

换句话说,我们如何构建一个强化学习智能体,使其能够选择能够最大化其预期累积奖励的动作?

策略 π

策略 π 是智能体的“大脑”,它是一个函数,能够根据智能体当前所处的状态告诉我们应该采取什么动作。因此,策略 π 定义了智能体在给定状态下的行为。这一策略(Policy)正是我们希望学习的函数,我们的目标是找到最优策略 π,即当智能体依据该策略行动时,能够最大化其预期回报的策略。我们通过训练来找到这个最优策略 π。找到这个最优策略 π ,存在两种方法

  1. 直接方法,即教导智能体学习在当前状态下应采取何种动作:这被称为基于策略的方法(Policy-Based Methods)。
  2. 间接方法,即教导智能体学习哪个状态更具价值,然后采取能够导向更具价值状态的动作:这被称为基于价值的方法(Value-Based Methods)。
基于策略的方法(Policy-Based Methods)

这个策略函数的作用是定义从每个状态到最佳对应动作的映射关系。具体而言,它可以为每个状态指定一个具体的最佳动作;或者,它也可以为某个状态下所有可能的动作定义一个概率分布,表示智能体选择每个动作的可能性。

  • Deterministic : a = π ( s ) a = \pi(s) a=π(s)
  • Stochastic : π ( a ∣ s ) = P [ A , s ] \pi(a|s) = P[A,s] π(as)=P[A,s]
基于价值的方法(Value-based methods)

在基于价值的方法中,我们并不直接学习策略函数,而是学习一个价值函数(value function),该函数将状态映射到处于该状态时的预期价值。一个状态的价值是指,如果智能体从该状态出发,并按照我们的策略行动,它所能获得的预期折扣回报(expected discounted return)。“按照我们的策略行动”仅仅意味着我们的策略是“前往价值最高的状态”。

v π ( s ) = E π [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . ∣ S t = s ] v_{\pi}(s) = \text{E}_{\pi}[R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + ...|S_t = s] vπ(s)=Eπ[Rt+1+γRt+2+γ2Rt+3+...∣St=s]

强化学习中的“深度”

但“深度”(Deep)这一概念是如何融入强化学习其中的呢?深度强化学习(Deep Reinforcement Learning)引入了深度神经网络来解决强化学习问题——这也是“深度”一词的由来。例如,两种基于价值(value-based)的算法:Q-Learning(经典的强化学习算法)和深度Q-Learning(Deep Q-Learning)。两者的区别在于:在第一种方法(Q-Learning)中,我们使用传统算法来创建一个Q表,该表帮助我们确定在每个状态下应采取何种动作。而在第二种方法(深度Q-Learning)中,我们将使用神经网络来近似Q值。

Deep Q Learning
Q value action 1
State
Deep Q
Neural Network
Q value action 2
Q value action 3
Q Learning
Q Value
State
Q Table
Action

补充阅读材料

Deep Reinforcement Learning

  • Reinforcement Learning: An Introduction, Richard Sutton and Andrew G. Barto Chapter 1, 2 and 3
  • Foundations of Deep RL Series, L1 MDPs, Exact Solution Methods, Max-ent RL by Pieter Abbeel
  • Spinning Up RL by OpenAI Part 1: Key concepts of RL

Gym

  • Getting Started With OpenAI Gym: The Basic Building Blocks
  • Make your own Gym custom environment

相关文章:

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

Android15默认授权浮窗权限

我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

SpringCloudGateway 自定义局部过滤器

场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

uniapp中使用aixos 报错

问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...