强化学习——学习笔记

news2024/9/23 5:34:35

一、什么是强化学习?

强化学习 (Reinforcement Learning, RL) 是一种通过与环境交互来学习决策策略的机器学习方法。它的核心思想是让智能体 (Agent) 在执行动作 (Action)、观察环境 (Environment) 反馈的状态 (State) 和奖励 (Reward) 的过程中,学习到一个最优策略 (Optimal Policy),从而实现长期累积奖励最大化。

强化学习的核心框架包括以下几个部分:
智能体 (Agent):在环境中执行动作,学习最优策略的实体;
环境 (Environment):提供状态信息和奖励反馈,受到智能体动作影响的外部系统;
状态 (State):描述环境当前状况的信息;
动作 (Action):智能体可以在环境中执行的操作;
奖励 (Reward):环境对智能体执行动作的评价,是一个标量值。
举一个小栗子,小明现在有一个问题,他要决定明天是学习还是去打球。现在就有两种可能性,打球和学习,如果现在的情况是,选择打球,那么小明将会受到批评,如果选择学习,他会受到奖励。显然,小明很大可能性会选择学习。这就是强化学习的内部机制。当对象在做一个决策的时候,算法会对每种可能性做一次函数计算,计算得到的结果叫做奖励值,奖励值会作为本次决策的重要参考标准。

具体的过程可以形象化为下图:
在这里插入图片描述
作为y一个高级的智能体,我们的大脑每时每刻都在进行决策,但是我们每个决策的过程就是这三个步骤:观察→行动→观测。我们通过观察周围的环境,然后做出相应的行动,然后在行动结束后,外界环境会给我们一个信号,这个信号是说我们的行动对外界造成了一定的影响,这些影响会得到一个结果(实际上就是上文说的奖励值),环境将影响通过这个信号让我们知道了。我们得到这个奖励值后,会根据新的环境和得到的奖励值,来进行下一个决策。

二、什么是马尔可夫过程?

强化学习问题通常可以建模为一个马尔可夫决策过程,包括以下几个要素:
1、状态集合 (State Set):S;
2、动作集合 (Action Set):A ;
3、状态转移函数 (State Transition Function): P ( s ′ ∣ s , a ) P ( s^′∣s,a ) P(ss,a),描述在状态s下执行动作a后转移到状态 s ′ s^′ s的概率;
4、奖励函数 (Reward Function): R ( s , a , s ′ ) R ( s,a,s^′ ) R(s,a,s),描述在状态s 下执行动作a并转移到状态s′后获得的奖励。
5、策略 (Policy): π ( a ∣ s ) π (a∣s) π(as),描述智能体在状态s下选择动作a 的概率。
q强化学习的目标是找到一个最优策略 π ∗ π^∗ π ,使得长期累积奖励最大化。
说到这里还是没有说明什么是马尔可夫决策。我们可以看下图:
在这里插入图片描述
比如红绿灯系统,红灯之后一定是红黄、接着绿灯、黄灯,最后又红灯,每一个状态之间的变化是确定的。抑或是下图:
在这里插入图片描述比如今天是晴天,谁也没法百分百确定明天一定是晴天还是雨天、阴天(即便有天气预报)。
对于以上的过程,我们假设有如下的状态转移矩阵(从一个状态到另外一个状态的概率):
在这里插入图片描述如果昨天是晴天,那么今天是晴天的概率为0.5,是多云的概率为0.375、是雨天的概率为0.125,且这三种天气状态的概率之和必为1。

以上就是马尔可夫决策过程的细节。
具体来说:
1、当且仅当某时刻的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性,比如我们在上面两幅图中的情况。
2、具有马尔可夫性质的随机过程便是马尔可夫过程。
在马尔可夫决策过程的基础上,再加上奖励机制,就可以得到马尔可夫奖励过程。

三、什么是马尔可夫奖励过程?

上面所提到的奖励机制包括奖励函数R和折扣因子γ两部分组成。
1、奖励函数:某个状态s的奖励R(s),是指转移到该状态s时可以获得奖励的期望,有 R ( s ) = E [ R t + 1 ∣ S t = s ] R(s)=E[R_{t+1}|S_{t=s}] R(s)=E[Rt+1St=s]。也就是在状态s下奖励的期望。
奖励函数又包括如下两类:
状态价值函数 (Value Function): V π ( s ) V^\pi(s) Vπ(s),描述在状态s下,依据策略 π \pi π执行动作后能获得的未来累积奖励的期望。
动作价值函数 (Q-function): Q π ( s , a ) Q^\pi(s, a) Qπ(s,a),描述在状态s下执行动作a 并依据策略 π \pi π执行后续动作能获得的未来累积奖励的期望。
在目前多数的强化学习方法中,都是围绕动作价值函数展开研究的。

2、折扣因子 (Discount Factor)γ
γ取值范围为 [0, 1],表示未来奖励的折扣程度。在这里有一种解释是当一个很久发生的动作所获得奖励会随着时间的推移而慢慢变小的,比如货币贬值的现象。在强化学习中这是一个超参数的存在。
如下式所示:
在这里插入图片描述
在上式中,G表示当下即时奖励和所有持久奖励等一切奖励的加权和(考虑到一般越往后某个状态给的回报率越低,也即奖励因子或折扣因子越小,用γ表示)。

四、什么是马尔可夫决策过程?

在上文中已经对马尔可夫奖励过程进行了基本的介绍,如果在马尔可夫奖励过程的基础上增加一个来自外界的刺激比如智能体的动作,就得到了马尔可夫决策过程通俗讲,马尔可夫奖励过程与马尔可夫决策过程的区别就类似随波逐流与水手划船的区别。具体来说,在马尔可夫决策过程中, S t S_t St R t R_t Rt的每个可能的值出现的概率只取决于前一个状态 S t − 1 S_{t−1} St1和前一个动作 A t − 1 A_{t−1} At1,并且与更早之前的状态和动作完全无关。
当给定当前状态 S t S_t St(比如 S t = s S_t=s St=s),以及当前采取的动作 A t A_t At(比如 A t = a A_t=a At=a),那么下一个状态 S t + 1 S_{t+1} St+1出现的概率,可由状态转移概率矩阵表示。故有下式:
在这里插入图片描述
上式表达的意思为:在状态 s s s下采取动作 a a a后,转移到下一个状态 s ′ s^′ s的概率。
假定在当前状态和当前动作确定后,其对应的奖励则设为 R t + 1 = r R_{t+1=r} Rt+1=r,状态转移概率矩阵类似为:
在这里插入图片描述

上式表达的意思为:在状态 s s s下采取动作 a a a后,转移到下一个状态 s ′ s^′ s并获得奖励r的概率。
最终可以得到奖励函数即为:
在这里插入图片描述
上式表达的意思为:在状态s以及动作a的发生下,对所有接下来可能的奖励r求和,这里的r有不确定性,受环境所限制。
整个过程相当于将不同状态转移概率与对应的奖励r相乘并相加,以得到条件期望。
假设奖励是确定性的,则可以简化公式,去掉对r的求和,即:
在这里插入图片描述
因此上式就变为了只需要计算在状态s下采取动作a后,转移到下一个状态s′的概率乘确定的奖励r,然后对所有可能的下一个状态s′求和以得到条件期望。
这时我们还有一个疑问,如果环境反馈给我们一个现在智能体所处的状态,智能体要通过什么方式决定接下来的动作呢?这时就涉及到策略policy,策略函数可以表述为π
函数。
可得 a = π ( s ) a=π(s) a=π(s),意味着输入状态s,策略函数π输出动作a。
策略函数还有如下两种表达方式:
1、 a = π θ ( s ) a=πθ(s) a=πθ(s)
上式所要表达的意思为:当于在输入状态s确定的情况下,输出的动作a只和参数θ
有关,这个θ就是策略函数π的参数。举个例子就是y=wx+b中的w和b。
2、 π ( a ∣ s ) = P ( A t = a ∣ S t = s ) π(a|s)=P(A_{t=a}|S_{t=s}) π(as)=P(At=aSt=s)
上式所要表达的意思为:相当于输入一个状态s下,智能体采取某个动作a的概率。

以上文中的天气状态为例:不同状态出现的概率不一样(比如今天是晴天,那明天是晴天,还是雨天、阴天不一定),同一状态下执行不同动作的概率也不一样(比如即便在天气预报预测明天大概率是天晴的情况下,你大概率不会带伞,但依然不排除你可能会防止突然下雨而带伞)。

经过上文的基本介绍之后让我们再重新定义一下最初提到的两个价值函数。
状态价值函数:
在这里插入图片描述
上式所要表达的意思就是从状态​s出发遵循策略π能获得的期望回报。
动作价值函数:
在这里插入图片描述
上式所要表达的意思就是当前状态s依据策略​执行动作​a得到的期望回报,记住这个函数,在接下来的算法中会常常涉及到,得到​Q函数后,进入某个状态要采取的最优动作便可以通过​Q函数得到​。
以上两个函数对应的流程如下图:
在这里插入图片描述
有了上述推导,我们可以知道Q函数怎么转换到状态价值函数的,如下式:
在这里插入图片描述
具体可以解释为下式,状态s的价值等于在该状态下基于策略π采取所有动作的概率与相应的价值相乘再求和的结果。
在这里插入图片描述
而从状态价值函数转换到Q函数如下式:
在这里插入图片描述
推导过程如下:
在这里插入图片描述
在状态s下采取动作a的价值等于当前奖励R(s,a),加上经过衰减的所有可能的下一个状态的状态转移概率与相应的价值的乘积。
经过上式互相带入我们就可以得到马尔可夫决策的贝尔曼方程:
在这里插入图片描述

下图即为马尔可夫决策过程。
在这里插入图片描述
上图展示了在什么样的状态s下,有多少概率会做出动作a,这就是一个决策过程。如上图。当做出动作a,环境会给智能体反馈一个环境以及奖励。

整理自:https://blog.csdn.net/v_JULY_v/article/details/128965854

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

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

相关文章

C++音视频开发面试题集锦

老规矩,先上面试题目: 1、iOS 中系统 API 提供了哪些视频编码的方式?2、VideoToolbox 视频帧解码失败以后应该如何重试?3、如何使用 PSNR 对视频转码质量进行评估?4、什么是 VAO,什么是 VBO,它…

【图书推荐】《机器学习实战(视频教学版)》

本书用处 快速入门Python机器学习基础算法。 最后3个综合实战项目(包括新闻内容分类实战、泰坦尼克号获救预测实战、中药数据分析项目实战)可以作为研究可以的素材。 内容简介 本书基于Python语言详细讲解机器学习算法及其应用,用于读者快…

Java 五种内部类演示及底层原理详解

内部类 什么是内部类 在A类的内部定义B类,B类就被称为内部类 发动机类单独存在没有意义 发动机为独立个体 可以在外部其他类里创建内部类的对象去调用方法 类的五大成员 属性 方法 构造方法 代码块 内部类 内部类的访问特点 内部类可以直接访问外部类的成员&a…

Java处理CSV文件示例

Java处理CSV文件示例 1. 导入依赖 <dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><version>1.10.0</version></dependency>文件示例 下面是示例文件文件数据 vscode和idea都有解析…

第二证券股市资讯:连续3天20%涨停!A股这一赛道,牛股批量出现!

今日&#xff0c;A股小幅轰动调整&#xff0c;上证指数下试3100点支撑。 两市成交7453亿元&#xff0c;创近4个月来新低&#xff0c;超4000只个股下跌。盘面上&#xff0c;电力、芯片、煤炭、石油等板块涨幅居前&#xff0c;铜缆高速衔接、房地产、工程机械、网络游戏等板块跌幅…

word-主控文档、文档拆分及标书编写技巧建议

一、主控文档 视图-大纲视图-显示文档-插入子文档 子文档一旦更新&#xff0c;主文档也会更新。更新主文档&#xff0c;子文档也会更新 需要注意&#xff0c;不可修改子文档名字 二、上交文件 显示文档-折叠子文档-只显示一级-取消链接-关闭大纲视图-保存 三、文档拆分 根…

Transformer 从attention到grouped query attention (GQA)

Attention原理和理解 attention原理参考&#xff1a; Attention Is All You Need The Illustrated Transformer – Jay Alammar – Visualizing machine learning one concept at a time. Transformer图解 - 李理的博客 Attention首先对输入x张量乘以WQ, WK, WV得到query,…

本地开发正常 线上CI/CD构建项目过程报错文件未能正确引用

问题快照 原因分析&#xff1a; 一般遇到这样的错误就是 文件路径或者文件名称未能正确匹配 或者文件不存在 会报这样的错误 以为很好解决 但这次 都排查 了 就是 没发现原因 不管怎么说还是要感谢 GPT的能力(分析问题的能力) 先上图 当我看到 第四步的时候 我立马 去仓库里查…

没开玩笑!高速信号不能参考电源网络这条规则,其实很难做到

高速先生成员--黄刚 看到这篇文章的题目&#xff0c;我相信大家心里都呈现出了这么一个场景&#xff1a;高速信号线在L20层&#xff0c;我只要把L19和L21层都铺上完整的地平面&#xff0c;这不就满足了高速信号线不能参考电源平面这条规则了吗&#xff1f;这难道很难做到吗&…

Windows 使用技巧

Windows 使用技巧 ①局域网内共享文件 ②CTRL Y 和 CTRL Z ①局域网内共享文件 第一步&#xff1a; 选择要共享的文件&#xff08;分享方操作&#xff09; 第二步&#xff1a; 右键打开属性&#xff0c;选择共享&#xff08;分享方操作&#xff09; 第三步&#xff1a; …

Spring使用的设计模式

Spring 框架是一个广泛使用的 Java 框架&#xff0c;它内部使用了多种设计模式来简化开发过程、提高代码的可维护性和扩展性。 以下是一些在 Spring 框架中常见的设计模式&#xff0c;以及用代码示例来解释它们&#xff1a; 一、工厂模式&#xff08;Factory Pattern&#xff…

C#开发上位机应用:基础与实践

C#是一种流行的面向对象编程语言&#xff0c;常用于Windows应用程序的开发。上位机应用是一种用于监控和控制设备或系统的应用程序&#xff0c;通常与下位机&#xff08;如传感器、执行器等&#xff09;进行通信。在本文中&#xff0c;我们将介绍C#开发上位机应用的基础知识和实…

Vue3 之 动态组件和KeepAlive组件

一、动态组件 1、简介 ​ 在某些业务场景下&#xff0c;页面的某模块具有多个组件但在同一时间只显示一个&#xff0c;需要在多个组件之间进行频繁的切换&#xff0c;如&#xff1a;tab切换等场景。除了可以使用v-if、v-show根据不同条件显示不同组件之外&#xff0c;还可以通…

Element-Plus中表格及分页功能

导入Element-Plus 具体步骤如下&#xff1a;&#xff08;内容参照官网&#xff1a;安装 | Element Plus&#xff09; # 选择一个你喜欢的包管理器# NPM $ npm install element-plus --save# Yarn $ yarn add element-plus# pnpm $ pnpm install element-plus 在main.js文件的…

【论文阅读笔记】The Google File System

1 简介 Google File System (GFS) 是一个可扩展的分布式文件系统&#xff0c;专为快速增长的Google数据处理需求而设计。这篇论文发表于2003年&#xff0c;此前已在Google内部大规模应用。 GFS不仅追求性能、可伸缩性、可靠性和可用性等传统分布式文件系统的设计目标&#xf…

超市进销存|基于SprinBoot+vue的超市进销存系统(源码+数据库+文档)

超市进销存系统 目录 基于SprinBootvue的超市进销存系统 一、前言 二、系统设计 三、系统功能设计 1 登录注册 2 管理员功能模块 3员工功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#x…

leetcode 1264页面推荐(postgresql)

需求 朋友关系列表&#xff1a; Friendship ---------------------- | Column Name | Type | ---------------------- | user1_id | int | | user2_id | int | ---------------------- 这张表的主键是 (user1_id, user2_id)。 这张表的每一行代表着 user1_id 和 user2_id 之间…

URL跳转

1.URL介绍 开放重定向&#xff08;Open Redirect&#xff09;&#xff0c;也叫URL跳转漏洞&#xff0c;是指服务端未对传入的跳转url变量进行检查和控制&#xff0c;导致诱导用户跳转到恶意网站&#xff0c;由于是从可信的站点跳转出去的&#xff0c;用户会比较信任。 2.URL跳…

【最新区块链论文录用资讯】CCF A—INFOCOM 2024 共17篇

Conference&#xff1a;IEEE International Conference on Computer Communications CCF level&#xff1a;CCF A Categories&#xff1a;计算机网络 Year&#xff1a;2024 Num&#xff1a;17 A Generic Blockchain-based Steganography Framework with High Capacity via …

员工管理和激励怎么做?试试场景化激励解决方案!

截止到2020年底&#xff0c;中国企业主体数量达3858.3万&#xff0c;同比增速达11.1%。如何留住人才、激励人才以强化人才与企业“黏性”&#xff0c;最大化提升员工的忠诚度与敬业度&#xff0c;成为企业未来人才发展战略的主要方向之一。 一、传统激励方式存在哪些不足 传统的…