【机器学习】28. 强化学习(Bellman, Q-learning, DQN, 优先级经验回放)

强化学习

  • 定义
  • 强化学习的核心要素
  • 马尔可夫决策过程
  • 价值函数
  • Bellman 方程
  • Q Learning
  • 深度Q学习算法 (DQN)
    • DQN 的核心思想
    • DQN 的工作流程
    • 经验回放:(随机抽样)
    • 目标网络:
    • 损失函数
  • 优先级经验回放(Prioritized Experience Replay)
    • 优先级经验回放的核心思想
    • 优先级经验回放的优势
  • 重要概念回顾

定义

强化学习(RL)是一种通过智能体(Agent)与环境(Environment)互动,从而学习最优行为策略的机器学习方法。强化学习的目标是让智能体通过试错的方式获得最大化累积奖励的策略。

  • 学会做一系列好的决定
  • 只给我们的算法提供一个奖励函数
  • 指示学习代理:做得好或不好

强化学习的核心要素

强化学习的核心由四个要素组成:状态(State)、动作(Action)、奖励(Reward)和策略(Policy)。

状态(State, S):描述智能体当前所处的环境信息,帮助智能体判断下一步的决策。例如在迷宫问题中,状态就是当前所在的位置。

动作(Action, A):智能体在某个状态下可以采取的行动。例如在迷宫中,动作可以是“向上”“向下”“向左”“向右”。

奖励(Reward, R):智能体在执行某个动作后,环境给出的反馈,用来指导行为。奖励可以是正数(鼓励行动)或负数(惩罚行动)。

策略(Policy, π):策略是智能体在每个状态下选择动作的规则或函数。策略的目标是让智能体在环境中获得最大的长期累积奖励。策略可以是概率分布(随机策略)或确定性规则(确定性策略)

马尔可夫决策过程

RL代理(智能体)可能包括以下一个或多个组件:

  1. 策略:代理的行为函数
  2. 价值函数:每个状态和/或动作有多好
  3. 模型:agent对环境的表示

MDP通常通过五元组 (S, A, R, P ,y) 来表示:
S: 表示所有可能的状态的集合
A: 所有可能动作的集合。
R:执行动作后得到的即时奖励。
P:在状态s下执行动作a,转移到下一个状态s’的概率。
y: 折扣因子,用来确定未来奖励的价值,低的y更关注当前的奖励,高的y更关注长期回报
在马尔可夫决策过程中, 假设只需要关注当前状态就可以决定下一步, 不依赖于更早的历史

价值函数

价值函数用来衡量智能体在某一个策略下的特殊状态或行动的预期回报,根据状态或者行动分成
状态值函数:
V Π ( s ) = E ∑ t > = 0 y t r t ∣ s 0 = s , Π ∣ V^Π(s) = E\sum_{t>=0}y^tr_t |s_0 = s, Π| VΠ(s)=Et>=0ytrts0=s,Π∣
动作值函数:
Q Π ( s , a ) = E [ ∑ t > = 0 y t r t ∣ s 0 = s , a 0 = a , Π ] Q^Π(s,a) = E[\sum_{t>=0}y^t r_t|s_0=s, a_0 =a,Π] QΠ(s,a)=E[t>=0ytrts0=s,a0=a,Π]
两个函数都用来获得期望累计奖励。

Bellman 方程

定义Q*(s,a)为最优的Q值方程。
在这里插入图片描述
和动作值函数做区分, 这里表示的是在所有可能的策略中, 而动作值函数表示的是在特定的策略下

价值函数的计算通常基于贝尔曼方程,通过递归的方式计算出各个状态的价值。

Q Learning

Q-Learning 是强化学习中最常用的算法之一。它的目标是找到一个最优的 Q 函数 𝑄*(s,a),表示在状态 s 下选择动作 a 时,所能获得的最大期望累积奖励。

Q-Learning 的核心更新公式为

在这里插入图片描述
在这里插入图片描述
终止: 若达到固定回合数, 或者Q表中所有的Q值变化都很小了, 小于某个阈值近似收敛, 则终止算法, Q表中的值作为学习到的最优Q值

在这里插入图片描述
在 Q-learning 算法中,Q 矩阵中的每个数值 Q(s,a) 表示在状态 s 选择动作a 后,智能体能够获得的期望累积奖励。这个值综合了即时奖励和未来可能获得的奖励,用于评估该状态-动作对的优劣程度。

更具体地说,Q 矩阵中的数值表示在当前状态选择某个动作后,随着智能体不断沿着最佳策略前进,所能累积得到的总奖励。因此,Q 值越高,意味着该状态-动作对在长期内能够带来的收益越大。Q-learning 训练的目标就是逐步优化这些 Q 值,使得在每个状态选择最佳的动作,以达到最终目标。

深度Q学习算法 (DQN)

在传统的Q学习中, Q值是保存在Q表中的, 这个方法在小规模的, 离散的状态空间中效果好, 但在复杂环境中有以下问题:

  1. 状态空间大,Q表会变得很大。Q表的size = 状态量*动作量。导致存储和计算资源需求大。
  2. 连续状态无法用有限的Q表表示。
  3. 难以泛化。 学习到的信息无法被类似的状态利用。

深度Q学习(DQN)引入了神经网络来近似最优Q值函数

DQN(Deep Q-Network,深度 Q 网络)是 Q-learning 和深度学习相结合的强化学习方法,特别适用于具有大量状态的复杂问题,比如图像输入和高维度空间。

DQN 的核心思想

在传统的 Q-learning 中,我们使用一个 Q 表来存储状态-动作值(Q 值)。但是当状态数量庞大(如图像数据)时,直接用表格来存储并更新 Q 值就不切实际了。DQN 通过使用神经网络来近似 Q 函数,即用神经网络去预测每个状态下的 Q 值,这样可以处理更复杂和高维的状态空间

DQN 的工作流程

输入状态:智能体从环境中获取当前状态信息(比如一张游戏截图)。

神经网络预测 Q 值:将状态输入到神经网络中,网络输出不同动作对应的 Q 值。

选择动作:根据 Q 值选择动作。通常使用 ε-greedy 策略,即有一定概率随机选择动作(探索),其余情况选择 Q 值最高的动作(利用)。

执行动作和观察奖励:在环境中执行动作,获得奖励并观察新的状态。

存储经验:将当前状态、动作、奖励和新状态(即一次交互的所有信息)存储在经验回放缓冲区中。

训练网络:从经验回放缓冲区中随机抽取一些样本,用于训练神经网络,使用的目标值为:
在这里插入图片描述

经验回放:(随机抽样)

经验回放(Replay Buffer)用于存储智能体和环境的交互记录。通过在训练时从回放缓冲区随机抽样,可以打破数据的相关性,提高训练稳定性。

目标网络:

DQN 使用两个网络:当前 Q 网络和目标网络。目标网络定期同步为当前网络的参数,这样可以在训练中稳定 Q 值的更新,减少发散风险。

DQN 引入了目标网络来提高 Q 值更新的稳定性。目标网络是 DQN 中的一个辅助 Q 网络,它与主 Q 网络结构相同,但其参数(权重)不在每一步都更新。使用目标网络的原因是,在 Q-learning 中直接用当前网络估计的 Q 值会导致更新过程不稳定甚至发散,因为 Q 值的目标值在不断变化。

目标网络的工作方式:

更新方式:目标网络的参数 𝜃- 是当前 Q 网络的参数 θ 的拷贝,但它不是在每次迭代中更新,而是每隔固定的步数(例如每 1000 步)进行一次同步,即将主 Q 网络的参数复制到目标网络中。
稳定性:由于目标网络的 Q 值在更新间隔内是固定的,这种做法能减缓目标值的波动,减少发散的风险,提升 Q 值估计的稳定性。

损失函数

DQN 的目标是让 Q 值(通过神经网络估算)逼近真实的期望回报。为了实现这一点,DQN 使用一个基于 Bellman 方程的损失函数,使 Q 值在每次更新后更接近目标值。具体来说:

DQN 的损失函数定义为

在这里插入图片描述

优先级经验回放(Prioritized Experience Replay)

是 DQN 的一种改进技术,旨在更高效地使用经验数据,加速训练和提高性能。它是在经验回放(Experience Replay)的基础上提出的,通过赋予不同的经验样本不同的优先级,让那些对学习影响更大的样本被优先使用,从而更有效地更新 Q 网络。

在传统的经验回放中,经验回放缓冲区(Replay Buffer)中储存智能体与环境的所有交互经验,训练时从中随机抽取样本来更新 Q 网络。这种随机抽样的方法可以打破数据相关性,提高训练的稳定性,但它没有考虑样本的重要性,因此效果可能不够高效。优先级经验回放解决了这一问题。

优先级经验回放的核心思想

在优先级经验回放中,每条经验(即状态转移样本 (s,a,r,s ‘) )会被赋予一个优先级,优先级的大小由这条经验对学习的影响程度决定。具体来说,优先级通常由样本的TD误差(Temporal Difference Error,时间差误差)决定。

TD 误差的定义为:
在这里插入图片描述
TD 误差:表示当前 Q 值与目标 Q 值的差距。误差大的样本表明智能体的估计与实际奖励存在较大偏差,说明这类样本对改进 Q 值估计更有帮助,因此应该优先使用。

在这里插入图片描述

优先级经验回放的优势

  • 更快的收敛速度:优先级高的样本优先被抽取和更新,使模型更快纠正大误差样本,提升学习效率。
  • 更好的性能:DQN 通过优先级经验回放可以更高效地学习到最优策略,尤其在复杂任务中比随机抽样的方式有显著改进。

重要概念回顾

  1. state-value函数衡量的是当前的状态在遵循Policy的预期累积回报; action-value函数是在当前状态下采取行动后遵循Policy的预期累积回报
  2. 最优Q函数就是在所有可能的Policy中, 最大的预期累积回报. 最优Q函数遵循Bellman方程, Q*等于即时回报和将来回报乘以折扣因子
  3. Q-Learning对Q表的每个Q值进行增量更新(使用Bellman),得到Q表中所有值近似收敛于最佳Q值
  4. 在每轮迭代中, 利用ϵ调控探索/利用选择动作, 并维护一个记忆池打破和时间的相关性, 从记忆池中均匀采样然后反向传播更新Q网络的权重,并且为了防止目标Q值计算的不稳定, 我们引入一个Q网络
  5. 强化学习不需要标签数据(不像监督学习需要每条数据的正确输出)
    需要奖励信号来评估行为的效果,这种反馈可以是即时的(每一步都有)或延迟的(如在完成任务后才有)。
    这种奖励机制使得强化学习可以用于解决很多动态和长期决策的问题,比如游戏、机器人控制等。
  6. 与监督学习比的优缺点:
    优点:
    a. 适合长期策略优化:强化学习的目标是最大化长期回报,因此适合解决需要综合考虑多个步骤或延迟奖励的任务,如路径规划、资源分配等。监督学习只关注单步预测:监督学习通常只能进行单步预测,无法优化长期策略,不适合动态任务和需长期规划的场景。
    b. 无需标签数据:强化学习依靠环境反馈的奖励信号,而不需要大规模标注数据,适合那些难以标注的任务。
    c. 自适应性强:RL在动态和复杂的环境中可以自动调整和优化策略,使其在未知环境中更具适应性
    缺点:
    a. 数据效率低:智能体需要大量试错来学习策略,训练过程较长,尤其是在高维或复杂任务中
    b. 奖励设计难度高:需要设计合理的奖励机制,不合理的奖励信号可能导致智能体学到次优或不符合预期的行为。
    c. 准确率可能更低
    d. 对比部分高解释性监督学习模型(决策树),解释性低。
  7. 与无监督学习对比的优缺点:
    1. 无监督不适合做决策任务,通常是发现数据模式或者聚类结构。
    2. 强化学习适合长期策略优化
    3. 计算需求相对更高。

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

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

相关文章

大数据-217 Prometheus 安装配置 启动服务 监控服务

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

利用RANSAC算法拟合平面并生成包围框的点云处理方法,点云聚类、质心坐标、倾斜角度、点云最小外接矩形

该代码用于分析和处理点云数据,通过对点云数据进行裁剪、平面拟合和生成包围框来提取特定区域的特征并发布结果。主要使用了RANSAC算法来识别并拟合平面,从而提取平面的法向量,接着根据该平面计算出该区域的最小矩形包围框(Boundi…

算法妙妙屋-------1.递归的深邃回响:二叉树的奇妙剪枝

大佬们好呀,这一次讲解的是二叉树的深度搜索,大佬们请阅 1.前言 ⼆叉树中的深搜(介绍) 深度优先遍历(DFS,全称为DepthFirstTraversal),是我们树或者图这样的数据结构中常⽤的⼀种…

深入解析DHCP带来了什么功能,服务器回应到底是用广播还是单播呢?

前言 不知道大家在看到这个图的时候第一时间想到的是什么,【好复杂】【看不懂】【终端数好多】,这里不看整体的结构怎么样,来看看终端数量都非常的多,终端要与网络中进行通信,势必需要IP地址,从最开始学习到…

<项目代码>YOLOv8 棉花识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

知乎日报前三周总结

目录 前言 首页 网络请求 上拉加载 详情页 加载WebView 左右滑动 主页与详情页同步更新 总结 前言 在这几周进行了知乎日报的仿写,这篇博客来总结一下前三周仿写的内容 首页 首页的界面如图所示,其实就是一个导航栏和一个数据视图组成的&#…

小白快速上手 labelimg:新手图像标注详解教程

前言 本教程主要面向初次使用 labelimg 的新手,详细介绍了如何在 Windows 上通过 Anaconda 创建和配置环境,并使用 labelimg 进行图像标注。 1. 准备工作 在开始本教程之前,确保已经安装了 Anaconda。可以参考我之前的教程了解 Anaconda 的…

【算法】【优选算法】二分查找算法(上)

目录 一、二分查找简介1.1 朴素二分模板1.2 查找区间左端点模版1.3 查找区间右端点模版 二、leetcode 704.⼆分查找2.1 二分查找2.2 暴力枚举 三、Leetcode 34.在排序数组中查找元素的第⼀个和最后⼀个位置3.1 二分查找3.2 暴力枚举 四、35.搜索插⼊位置4.1 二分查找4.2 暴力枚…

自己构建ARM平台DM8镜像

??? 为什么不使用官方提供的docker版本,测试有问题,分析函数不能使用,报错。 自己构建ARM平台的dm8镜像,参考 https://gitee.com/xlongfu/dm-docker/tree/master,发现一些问题 首先…

Linux之实战命令73:at应用实例(一百零七)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

万字长文解读【深度学习面试——训练(DeepSpeed、Accelerate)、优化(蒸馏、剪枝、量化)、部署细节】

🌺历史文章列表🌺 深度学习——优化算法、激活函数、归一化、正则化深度学习——权重初始化、评估指标、梯度消失和梯度爆炸深度学习——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总万字长文解读…

C++ | Leetcode C++题解之第554题砖墙

题目&#xff1a; 题解&#xff1a; class Solution { public:int leastBricks(vector<vector<int>>& wall) {unordered_map<int, int> cnt;for (auto& widths : wall) {int n widths.size();int sum 0;for (int i 0; i < n - 1; i) {sum wi…

DDei在线设计器V1.2.42版发布

V1.2.42版 新特性&#xff1a; 1.快捷编辑框可以映射到主控件的多个属性上&#xff0c;从而实现快速编辑。 2.跟随图形的支持范围增加&#xff0c;从仅支持线控件到支持所有控件 2.新增控件双击回调函数EVENT_CONTROL_DBL_CLICK&#xff0c;可以用于覆盖默认的快速编辑逻辑…

大数据的实时处理:工具和最佳实践

在当今的数字世界中&#xff0c;数据以前所未有的速度从无数来源生成&#xff0c;包括社交媒体、物联网设备、电子商务平台等。随着组织认识到这些数据的潜在价值&#xff0c;他们越来越多地转向实时处理&#xff0c;以获得即时、可操作的见解。但是&#xff0c;实时处理大数据…

【51单片机】蜂鸣器演奏音乐——小星星天空之城

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 蜂鸣器按键发声无源蜂鸣器演奏音乐简单乐理小星星天空之城 蜂鸣器 蜂鸣器在开发板的位置如下&#xff1a; 蜂鸣器是一种将电信号转…

【含开题报告+文档+源码】高校校园二手交易平台的设计与实现

开题报告 随着互联网的快速发展&#xff0c;电子商务成为了现代化社会中不可或缺的一部分。线上交易平台的兴起&#xff0c;为商家和消费者创造了更多的交易机会和便利。然而&#xff0c;传统的电商平台通常由一家中央机构管理和控制&#xff0c;对商家和消费者的自由度有一定…

录制的音频听起来非常缓慢,声音很模糊

一、主题 录制的音频听起来非常缓慢&#xff0c;声音很模糊 二、问题背景 硬件&#xff1a;T113&#xff0c;R528等平台系列产品 软件&#xff1a;Tina5.0 三、问题描述 1、复现步骤 使用arecord进行录音。 arecord -Dhw:audiocodec -f S16_LE -r 16000 -c 2 -d 5 /tmp/t…

计算机的错误计算(一百五十)

摘要 探讨 MATLAB 中 的计算精度问题。当 为含有小数的大数或 &#xff08;&#xff09;附近数时&#xff0c;输出会有错误数字。 例1. 已知 计算 直接贴图吧&#xff1a; 另外&#xff0c;16位的正确值分别为 -0.7882256119904400e0、0.1702266977524110e0、-0.…

【网络安全 | 漏洞挖掘】Google SSO用户的帐户接管

未经许可,不得转载。 文章目录 DOM XSS获取 CSRF Token解除Google账户绑定在这篇博文中,我将详细介绍找到针对Google SSO用户的账号接管(ATO)漏洞的过程。 DOM XSS 我遇到 DOM XSS 漏洞的位置非常微妙,因为我遇到了非常严格的WAF。 获取 CSRF Token 在找到XSS漏洞后,我…