强化学习基础概念入门

文章目录

  • 1. 什么是强化学习?
  • 2. 强化学习的基本元素
  • 3. 相关衍生元素
    • 3.1 策略(Policy)
    • 3.2 状态转移(State Transition)
    • 3.3 回报(Return)
    • 3.4 价值函数(Value Function)
  • 4. 算法分类
    • 4.1 按环境是否已知划分
    • 4.2 按学习方式划分
    • 4.3 按学习目标划分
  • 参考资料


1. 什么是强化学习?

强化学习(Reinforcement learning,RL)讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的 环境(environment) 里面去极大化它能获得的奖励。通过感知所处环境的 状态(state)动作(action)反应(reward), 来指导更好的动作,从而获得最大的 收益(return),这被称为在交互中学习,这样的学习方法就被称作强化学习。

在这里插入图片描述

在强化学习过程中,智能体跟环境一直在交互。智能体在环境里面获取到状态 S t S_t St,智能体根据这个状态,结合自己的策略输出一个动作 A t A_t At。然后这个决策会放到环境之中去,环境会根据智能体采取的决策,根据状态模型输出下一个状态 S t + 1 S_{t+1} St+1 以及返回给智能体做当前的这个动作所得到的奖励值 R t + 1 R_{t+1} Rt+1,然后智能体可以继续选择下一个合适的动作,循环反复这个过程。最终的目的是为了尽可能多地从环境中获取奖励。

例如,我们走路摔倒了,大脑后面就会给一个负面的反馈,说明走势姿势不好,接着我们从摔倒状态爬起来并正常走路,那么大脑会给一个正面的反馈,此时我们就会知道并倾向于保持这个好的走路姿势。

强化学习是和监督学习、非监督学习并列的第三种基本的机器学习方法

在这里插入图片描述

  • 监督学习 是从外部监督者提供的带标注训练集中进行学习。 (任务驱动型)
  • 非监督学习 是一个典型的寻找未标注数据中隐含结构的过程。 (数据驱动型)
  • 强化学习 没有监督学习已经准备好的训练数据输出值,它只有奖励值,且这个奖励值不是事先给出的,而是延后给出的,而非监督学习既没有输出值也没有奖励值,只有数据特征。强化学习更偏重于智能体与环境的交互,它的每一步决策与时间顺序的前后关系紧密, 这带来了一个独有的挑战 ——“试错(exploration)”与“开发(exploitation)”之间的折中权衡,智能体必须开发已有的经验来获取收益,同时也要进行试探,使得未来可以获得更好的动作选择空间。 (从错误中学习)

强化学习主要有以下几个特点:

  • 试错学习:强化学习一般没有直接的指导信息,Agent 要以不断与 Environment 进行交互,通过试错的方式来获得最佳策略(Policy);
  • 延迟回报:强化学习的指导信息很少,而且往往是在事后(最后一个状态(State))才给出的。比如 围棋中只有到了最后才能知道胜负。

强化学习常见的应用场景有:
在这里插入图片描述

2. 强化学习的基本元素

在这里插入图片描述

  • 环境(Environment) 是一个外部系统,智能体处于这个系统中,能够感知到这个系统并且能够基于感知到的状态做出一定的行动。
  • 智能体(Agent) 是一个嵌入到环境中的系统,能够通过采取行动来改变环境状态的对象,一般地说,在一个应用中谁采取动作谁就是 agent。
  • 状态(State)/观察值(Observation):状态是对世界的完整描述,不会隐藏世界的信息。观测是对状态的部分描述,可能会遗漏一些信息。
  • 动作(Action):不同的环境允许不同种类的动作,在给定的环境中,有效动作的集合经常被称为动作空间(action space),包括离散动作空间(discrete action spaces)和连续动作空间(continuous action spaces),例如,走迷宫机器人如果只有东南西北这 4 种移动方式,则其为离散动作空间;如果机器人向 360° 中的任意角度都可以移动,则为连续动作空间。
  • 奖励(Reward):是由环境给的一个标量的反馈信号(scalar feedback signal),这个信号显示了智能体在某一步采 取了某个策略的表现如何。

在这里插入图片描述

强化学习的基本元素对应上图中的内容
agent
environment鸟周围的环境,水管、天空(包括小鸟本身)
state拍个照(目前的像素)
action鸟向上向下动作
reward距离(越远奖励越高)

3. 相关衍生元素

3.1 策略(Policy)

策略是智能体用于决定下一步执行什么行动的规则。可以是确定性的关系,根据一个状态即可决定采取的下一步动作,用符号 μ \mu μ 表示,关系如下:

a t = μ ( s t ) a_t=\mu(s_t) at=μ(st)

智能体采取动作的策略也可以是随机的,即在一个状态下,下一步采取的动作满足一个随机的概率分布,此时概率大的动作被智能体选择的概率较高,用符号 π \pi π 表示:

a t ∼ π ( ⋅ ∣ s t ) a_t\ \sim \pi\left(\cdot \mid \mathrm{s}_{\mathrm{t}}\right) at π(st)

一般来说,如果策略过于确定,则容易被针对,即在与别人博弈的过程中难以取胜,因此在很多应用里面的策略函数是一个概率密度函数,让别人不一定能预测到下一步的动作。

3.2 状态转移(State Transition)

状态转移即智能体在采取某一个动作之后,环境的状态发生改变的过程。状态转移过程可以理解为一个概率模型,将状态 s s s 在智能体采取动作 a a a 后转到下一个状态 s ′ s' s 的概率设为 P s s ′ a P^a_{ss'} Pssa,状态转移过程可以是确定的也可以是随机的,一般认为是随机的,它的这种随机性来源于环境。可以用状态密度函数来表示:

p ( s ′ ∣ s , a ) = P ( S ′ = s ′ ∣ S = s , A = a ) p(s'|s,a)=\mathbb{P}(S'=s'|S=s, A=a) p(ss,a)=P(S=sS=s,A=a)

当前的环境状态 s s s 在智能体的行动 a a a 下,可能转变为不同的 s ′ s' s,不同的转移后状态用概率函数进行表示,在环境中,这种变化通常是未知的,因此需要在不断的训练当中去探索。

策略动作的随机性,以及环境状态转移的随机性,是强化学习中的两种基本的随机因素。

3.3 回报(Return)

回报又称 cumulated future reward,一般表示为 U U U,定义为:

U t = R t + R t + 1 + R t + 2 + R t + 3 + . . . U_t=R_t+R_{t+1}+R_{t+2}+R_{t+3}+... Ut=Rt+Rt+1+Rt+2+Rt+3+...

其中 R t R_t Rt 表示第 t t t 时刻的奖励 R e w o r d Reword Reword,agent 的目标就是让 R e t u r n Return Return 最大化。这里,我们不仅看当前做出动作后的奖励 R t R_t Rt,还需要看后续的各个时刻的奖励,例如下棋,我们不止看当前步是否能得利,还得看当前步对后续棋盘格局是否有影响,以使得后续也有持续高的回报。

未来的奖励不如现在等值的奖励那么好(比如一年后给 100 块不如现在就给),所以 R t + 1 R_{t+1} Rt+1 的权重应该小于 R t R_t Rt。因此,强化学习通常用 discounted return(折扣回报,又称 cumulative discounted future reward,累计贴现未来奖励),取 γ \gamma γ 为 discount rate(折扣率,有时也叫做奖励衰减因子), γ ∈ ( 0 , 1 ] \gamma\in (0,1] γ(0,1],如果 γ = 1 \gamma=1 γ=1,则说明后续的回报与当前的回报一视同仁,具体公式如下:

U t = R t + γ R t + 1 + γ 2 R t + 2 + γ 3 R t + 3 + . . . U_t=R_t+\gamma R_{t+1}+\gamma^2R_{t+2}+\gamma^3R_{t+3}+... Ut=Rt+γRt+1+γ2Rt+2+γ3Rt+3+...

3.4 价值函数(Value Function)

举例来说,在象棋游戏中,定义赢得游戏得1分,其他动作得0分,状态是棋盘上棋子的位置。仅从1分和0分这两个数值并不能知道智能体在游戏过程中到底下得怎么样,而通过价值函数则可以获得更多洞察。

价值函数使用对未来的收益期望进行预测,一方面不必等待未来的收益实际发生就可以获知当前状态的好坏,另一方面通过期望汇总了未来各种可能的收益情况。使用价值函数可以很方便地评价不同策略的好坏。

  • v π v_{\pi} vπ 状态价值函数(State-value Function):用来度量给定策略 π \pi π 的情况下,当前状态 s t s_t st 的好坏程度:

v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=\mathbb{E}_{\pi}[G_t|S_t=s] vπ(s)=Eπ[GtSt=s]

当智能体从状态 s s s 开始,基于策略 π \pi π (随机)选择后续动作所产生的期望回报,代表了该状态 s s s 的价值,即告知当前的局势的好坏程度。

  • q π q_{\pi} qπ 动作价值函数(Action-value Function):用来度量给定状态 s t s_t st 和策略 π \pi π 的情况下,采用动作 a t a_t at 的好坏程度:

q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s,a)=\mathbb{E}_{\pi}[G_t|S_t=s,A_t=a] qπ(s,a)=Eπ[GtSt=s,At=a]

当已知智能体的策略函数 π \pi π,则在状态 s s s 下,对当前状态下可以采取的所有动作进行打分,就可以知道采取哪个动作好,哪个动作不好。当然,在不同的动作策略下,对动作的价值判断就不同,而好的动作策略是让博弈的赢面更大,因此最大化 q π q_{\pi} qπ π \pi π 即是最优策略,相应的动作价值函数称为 q ∗ q^* q 最优动作价值函数。

4. 算法分类

在这里插入图片描述

4.1 按环境是否已知划分

按照环境是否已知划分为:免模型学习(Model-Free)有模型学习(Model-Based)

  • Model-free 就是不去学习和理解环境,环境给出什么信息就是什么信息,常见的方法有policy optimization和Q-learning。
  • Model-Based 是去学习和理解环境,学会用一个模型来模拟环境,通过模拟的环境来得到反馈。Model-Based 相当于比Model-Free 多了模拟环境这个环节,通过模拟环境预判接下来会发生的所有情况,然后选择最佳的情况。

一般情况下,环境都是不可知的,即无法套用 Model-Based 算法。

4.2 按学习方式划分

按照学习方式划分为:在线策略(On-Policy)离线策略(Off-Policy)

  • On-Policy 是指 agent 必须本人在场, 并且一定是本人边玩边学习。典型的算法为 Sarsa。
  • Off-Policy 是指 agent 可以选择自己玩, 也可以选择看着别人玩, 通过看别人玩来学习别人的行为准则, 离线学习同样是从过往的经验中学习, 但是这些过往的经历没必要是自己的经历, 任何人的经历都能被学习,也没有必要是边玩边学习,玩和学习的时间可以不同步。典型的方法是 Q-learning,以及 Deep-Q-Network。

4.3 按学习目标划分

按照学习目标划分:基于价值(Value-Based)基于策略(Policy-Based)

在这里插入图片描述

  • 基于价值 Value-Based 的方法通过训练得到 Q 表或者是近似一个价值函数,并以此判断动作价值,制定相应的策略。该方法适用于非连续的动作。
    1. 这类方法具有较高的稳定性和更容易解释的理论;
    2. 不适用于高维(连续)问题等的复杂问题,当问题复杂时容易受到噪声干扰,收敛性较差,且对参数即为敏感;
    3. 常见的方法有 Q-learning、DQN和Sarsa。
  • 基于策略 Policy-Based 的方法通过直接学习最优策略来指导决策,在处理连续动作空间,和高维状态空间时具有较强的适应性。
    1. 这类方法具有较高的适应性,且能够处理随机策略;
    2. 由于是直接优化策略,最终的策略方法可能具有较高方差,且一些策略方法需要大量的采样来准确估计,可能会导致训练时间较长;
    3. 常见的方法有 Policy gradients、REINFORCE。
  • 更为厉害的方法是二者的结合:Actor-Critic,Actor根据概率做出动作,Critic 根据动作给出价值,以期每次都选取最优动作,从而加速学习过程,常见的有 A2C,A3C,DDPG等。

参考资料

  1. 张浩在路上:强化学习入门
  2. 强化学习介绍 / OpenAI Spinning Up
  3. Reinforcement Learning: An Introduction - Chapter 13: Policy Gradient Method
  4. Sutton R S. Policy Gradient Methods for Reinforcement Learning with Function Approximation[J]. Submitted to Advances in Neural Information Processing Systems, 1999, 12:1057-1063.
  5. 强化学习——策略梯度与Actor-Critic算法

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

农业小型气象站解析

TH-NQ12农业小型气象站,作为现代智慧农业体系的重要组成部分,以其独特的优势在农业生产中发挥着不可或缺的作用。这种专为农业领域设计的小型气象站,不仅具备高度自动化和智能化的特点,而且能够实时监测和记录农田环境中的多种气象…

QT:QMainWindow、ui界面、资源文件的添加、信号和槽

1.练习:使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(…

[python] Numpy库用法(持续更新)

先导入一下 import numpy as np 一、np.random用法 生成随机整数:np.random.randint(low, high, size) low: 最小值high: 最大值size: 生成的数组大小(可以是多维,下面同理) 生成随机浮点数:np.random.uniform(low, …

Ubuntu 22.04进行远程桌面连接

文心一言 Ubuntu 22.04进行远程桌面连接,无论是连接到Windows 10还是另一个Ubuntu 22.04,都可以通过不同的方式实现。以下是具体的步骤: 连接到Windows 10 在Windows 10上开启远程桌面功能:首先,需要在Windows 10上…

ViT:拉开Trasnformer在图像领域正式挑战CNN的序幕 | ICLR 2021

论文直接将纯Trasnformer应用于图像识别,是Trasnformer在图像领域正式挑战CNN的开山之作。这种简单的可扩展结构在与大型数据集的预训练相结合时,效果出奇的好。在许多图像分类数据集上都符合或超过了SOTA,同时预训练的成本也相对较低   来源…

深入理解MD5算法:原理、应用与安全

title: 深入理解MD5算法:原理、应用与安全 date: 2024/4/11 20:55:57 updated: 2024/4/11 20:55:57 tags: MD5算法数据安全哈希函数摘要算法安全漏洞SHA算法密码学 第一章:引言 导言 在当今数字化时代,数据安全和完整性变得至关重要。消息…

【学习路径】AI入门路线分享

近期整理飞书文档,一些权限被关掉了。看好多人在申请访问这个飞书文档,于是把它单独拿出来放在CSDN上,供大家参考~ 原视频地址:AI:从小白到入门,超详细人工智能成长路径分享_哔哩哔哩_bilibili 文章目录 1.…

HarmonyOS实战开发-证书管理、如何实现对签名数据进行校验功能。

介绍 本示例使用了ohos.security.certManager相关接口实现了对签名数据进行校验的功能。 实现场景如下: 1)使用正确的原始数据和签名数据进行签名校验场景:模拟服务端对签名数据进行校验,验证客户端身份和原始数据完整性。 2&…

【安装部署】国产数据库OpenGauss的安装部署以及问题排查解决(全网唯一一个解决的!含源码分析)

国产数据库OpenGauss的安装部署以及问题排查解决(含源码分析) 💖点赞超100,将取消VIP文章,免费公开 前面都是一些排除得方式,如果想知道最终的问题,可以直接切换到3.3章节 💖如果您需要这篇文章可以扫描下方的公众号二维码,私信我们,我们将帮您解答 目录 国产数…

CentOS7安装MySQL8.0教程

环境介绍 操作系统:Centos7.6 MySQL版本: 8.0.27 只要是8.0.*版本,那就可以按照本文说明安装 一、安装前准备 1、卸载MariaDB 安装MySQL的话会和MariaDB的文件冲突,所以需要先卸载掉MariaDB。 1.1、查看是否安装mariadb rpm -…

AI大模型探索之路-应用篇10:Langchain框架-架构核心洞察

目录 前言 一、LangChain设计目标 二、LangChain设计之道 三、LangChain典型应用 1、简单的问答Q&A over SQL CSV: 2、聊天机器人Chatbots: 3、总结摘要Summarization: 4、网页爬虫Web scraping: 5、本地知识库(Q&A with RAG): 三、LangChain架构…

blender安装mmd并导入pmx,pmd文件

点击链接GitHub上下载这个,值得注意的是blender4.0以上版本暂时不支持,这里使用的是blender3.6版本GitHub - powroupi/blender_mmd_tools: mmd_tools is a blender addon for importing Models and Motions of MikuMikuDance. 复制当前内容 粘贴到当前…

组合数学<1>——组合数学基础

今天我们聊聊组合数学。(本期是给刚刚学习组合数学的同学看的&#xff0c;dalao们可以自行忽略) 建议:不会求逆元的出门左转数论<2>&#xff0c;不会数论的出门右转数论<1>。 加乘原理 加乘原理小学奥数就有。 总的来说:加法原理:分类;乘法原理:分步 比如说&a…

中国网站数量竟然比2022年多了10000个

关注卢松松&#xff0c;会经常给你分享一些我的经验和观点。 CNNIC发布了最新中国互联网报告&#xff0c;报告显示&#xff1a; 2018年中国有523万个网站&#xff0c;2023年13月下降到388万个&#xff0c;5年时间网站数量下降30%&#xff0c;但相比于2022年12月&#xff0c;竟…

ThinkPHP审计(1) 不安全的SQL注入PHP反序列化链子phar利用简单的CMS审计实例

ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例 文章目录 ThinkPHP代码审计(1) 不安全的SQL注入&PHP反序列化链子phar利用&简单的CMS审计实例一.Thinkphp5不安全的SQL写法二.Thinkphp3 SQL注入三.Thinkphp链5.1.x结合phar实现…

第6章 6.3.1 正则表达式的语法(MATLAB入门课程)

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 正则表达式可以由一般的字符、转义字符、元字符、限定符等元素组…

普通函数和箭头函数的区别

普通函数和箭头函数在JavaScript中主要有以下区别&#xff1a; 语法形式。箭头函数使用简洁的箭头语法>定义&#xff0c;不需要像普通函数那样使用function关键字。匿名性。箭头函数只能是匿名的&#xff0c;而普通函数可以是匿名的&#xff0c;也可以具有具体的名称。this…

【C++】1.从C语言转向C++

目录 一.对C的认识 二.C的关键字 三.命名空间 3.1命名空间的定义 3.2命名空间的使用 四.C的输入与输出 五.缺省参数 5.1全缺省参数 5.2半缺省参数 六.函数重载 七.引用 7.1引用的特性 7.2引用和指针的区别 八.内联函数 九.auto关键字&#xff08;C1…

LLMs之ToolAlpaca:ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略

LLMs之ToolAlpaca&#xff1a;ToolAlpaca(通用工具学习框架/工具使用语料库)的简介、安装和使用方法、案例应用之详细攻略 目录 ToolAlpaca的简介 0、《ToolAlpaca: Generalized Tool Learning for Language Models with 3000 Simulated Cases》翻译与解读 1、数据集列表 2…

openGauss_5.0.1 企业版安装及问题记录(CentOS系统):主备模式服务器安装

目录 &#x1f4da;第一章 官方地址&#x1f4d7;安装包下载地址&#x1f4d7;文档指南 &#x1f4da;第二章 安装&#x1f4d7;准备工作&#x1f4d7;开始安装&#x1f4d5;创建XML配置文件&#x1f4d5;初始化安装环境&#x1f4d5;执行安装&#x1f4d5;验证 &#x1f4da;第…