强化学习入门

强化学习是指智能体通过不断试错的方式进行学习,利用与环境进行交互时获得的奖励或惩罚来指导行为

试错学习

  • 尝试(决策-decision)
  • 错误
  • 结果:每次尝试无论产生什么样的结果,都会对下一次结果产生影响
    • 奖励(reward):正确的结果
    • 惩罚(punishment):错误的结果
  • 学习:通过不断地尝试来修正自己的行为,从而在下一次尝试中做出更有利的行为

试错学习的目标通常是以最大化累积的奖励来呈现,这个过程就是序列决策(sequential decision making)。

换句话说,对于任意问题,只要能够建模成序列决策问题或者带有鲜明的试错学习特征,就可以使用强化学习来解决,并且这是截至目前最为高效的方法之一,这就是要学习强化学习的原因。

其他类型的强化学习,例如观察学习(模仿学习、离线强化学习)

马尔可夫决策过程

马尔可夫决策过程(Markov decision process,MDP),它能够以数学的形式来表达序列决策过程,也是强化学习最基本的问题模型。

智能体和环境之间交互是在一系列离散的时间(time step)中交互的,通常时间 t t t是有限的,即有限马尔可夫决策过程(Finite MDP)。上限用 T T T表示,从 t t t T T T为一个回合,比如游戏的一局。

有些方法可以拓展到连续时间的情况,但为了方便,我们尽量只考虑离散时步的情况。

性质

马尔可夫决策过程有一个前提,即马尔可夫性质。

P ( s t + 1 ∣ s 0 , s 1 , . . , s t ) = P ( s t + 1 ∣ s t ) P(s_{t+1}|s_0,s_1,..,s_t) = P(s_{t+1}|s_t) P(st+1s0,s1,..,st)=P(st+1st)

P ( s t + 1 ∣ s 0 , s 1 , . . , s t , α t ) = P ( s t + 1 ∣ s t , α t ) P(s_{t+1}|s_0,s_1,..,s_t,\alpha_t) = P(s_{t+1}|s_t,\alpha_t) P(st+1s0,s1,..,stαt)=P(st+1st,αt)

在给定历史状态 s 0 , s 1 , . . . , s t s_0,s_1,...,s_t s0,s1,...,st下,某个未来的状态只与当前状态 s t s_t st有关,与历史的状态无关。

显然,现实生活中很多场景都不符合马尔可夫性质,但可以结合其他方法来辅助强化学习。

回报

G t = r t + r t + 1 + . . . + r T G_t = r_{t} + r_{t+1} + ... +r_{T} Gt=rt+rt+1+...+rT

G t = r t + γ r t + 1 + . . . + γ n r T G_t = r_{t} + \gamma r_{t+1} + ... +\gamma^nr_{T} Gt=rt+γrt+1+...+γnrT

其中 G t G_t Gt是累积奖励(回报), γ \gamma γ是衰减因子,位于0-1之间,奖励越靠后,权越小。

带衰减因子有以下考量

  • 马尔可夫过程可能带环,避免无穷
  • 想尽可能快的得到未来的奖励
  • 作为超参数来调整对现在的状态还是之前的状态更看重

马尔可夫链

在这里插入图片描述

上图中, s 1 , s 2 , s 3 s1,s2,s3 s1,s2,s3分别表示三种不同的状态,其中的连线表示不同状态之间转移的概率。上图被称为马尔可夫链(Markov Chain),例如 P 12 = P ( S t + 1 = s 2 ∣ S t = s 1 ) P_{12} = P(S_{t+1} = s_2|S_{t} = s_1) P12=P(St+1=s2St=s1)

进一步可扩展为 P s s ′ = P ( S t + 1 = s ′ ∣ S t = s ) P_{ss'} = P(S_{t+1} = s'|S_{t} = s) Pss=P(St+1=sSt=s)

其中大写S表示所有状态的集合,可以将状态之间转化的概率用表格表示。
在这里插入图片描述

进而表示为状态转移矩阵(State Transition Matrix)

在这里插入图片描述

马尔可夫奖励过程(Markov Reward Processes,MRPs)

是马尔可夫链 + 奖励函数R,如果状态有限,则奖励函数可以用向量表示。如下图所示,可以将奖励过程看作一个随波逐流的纸船,到达不同位置获得不同的奖励。

在这里插入图片描述

状态价值函数:被定义为回报的期望,即当我们进入某一个状态后,我们现在有多大的价值。

在这里插入图片描述

在这里插入图片描述

例如计算S4的价值函数

  • 方法一,蒙特卡罗:从S4开始,采样生成很多轨迹,进行平均
  • 方法二,贝尔曼方程

在这里插入图片描述

马尔可夫决策过程(MDPs)

马尔可夫决策过程可以用一个五元组< S , A , R , P , γ S,A,R,P,\gamma S,A,R,P,γ>表示,其中A表示动作空间、R表示奖励函数、P表示状态转移矩阵、 γ \gamma γ表示衰减因子。

较MRP增加了行为A,未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。

性质

P ( s t + 1 ∣ s t , α t ) = P ( s t + 1 ∣ s 0 , s 1 , . . , s t , α t ) P(s_{t+1}|s_t,\alpha_t) = P(s_{t+1}|s_0,s_1,..,s_t,\alpha_t) P(st+1st,αt)=P(st+1s0,s1,..,stαt)

奖励函数也多了一个当前的动作 R ( s t = s , a t = a ) = E [ r t ∣ s t = s , a t = a ] R(s_t = s,a_t = a) = E[r_t|s_t=s,a_t=a] R(st=s,at=a)=E[rtst=s,at=a]

策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,我们可以把当前状态代入策略函数来得到一个概率,即

π ( a ∣ s ) = p ( a t = a ∣ s t = s ) π(a|s) = p(a_t =a|s_t=s) π(as)=p(at=ast=s)概率代表在所有可能的动作里面怎样采取行动,比如可能有 0.7 的概率往左走,有 0.3 的概率往右走,这是一个概率的表示。

在这里插入图片描述

左侧的马尔可夫链或者马尔可夫奖励过程,从一个状态到另一个状态只需要状态转移函数 P ( s ′ ∣ s ) P(s'|s) Pss。右侧的马尔可夫决策过程需要先选择行为,即中间一层黑色结点,最终转移到另一种状态。

在这里插入图片描述

DQN

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

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

相关文章

Springboot 子工程构建完后无法找到springboot依赖

问题: 构建完子工程后无法找到SpringBootTest 解决方案: 最好用这个构建 https://www.cnblogs.com/he-wen/p/16735239.html 1.先观察项目目录 是否正确 2.观察子工程目录 3.看pom.xml中是否引用springboot依赖 4.检查代码 查看父项目是否包含子模块 查看子模块的父项目是否…

vscode 中配置 python 虚拟环境

vscode 中配置 python 虚拟环境 Start 在编写代码的过程中&#xff0c;我们经常会用到一些第三方依赖&#xff0c;帮助我们快速完成功能。在 Python 中&#xff0c;默认情况都是统一安装在全局环境中&#xff0c;但是这样伴随着电脑项目越来越多&#xff0c;不同项目对依赖的…

Intel Quartus II IP之DP1.4 工程的创建与使用

前述&#xff1a; Win10电脑安装了Quartus 21.4&#xff0c;这可以满足绝大多数情况&#xff0c;但是对于创建DMI/DP IP的设计demo工程时会报错&#xff0c;因为还需要Eclipse与WSL&#xff08;Windows Subsystem for Linux&#xff09;。 具体安装方法参考&#xff1a; Int…

redis7部署集群:包含主从模式、哨兵模式、Cluster集群模式等三种模式

前言&#xff1a; redis部署集群常见的一般有三种模式&#xff1a;主从模式&#xff0c;Sentinel&#xff08;哨兵模式&#xff09;&#xff0c;Redis Cluster&#xff08;高可用Cluster集群&#xff09;&#xff0c;根据不同的需求可自定义选择部署方式。 Redis 主从模式&…

c# 视频播放之Vlc.DotNet.Forms

先说下优缺点 优点&#xff1a;与电脑无关&#xff0c;能播放主流编码格式视频。 缺点&#xff1a;只能播放本地视频&#xff0c;网络视频播放不了。 下面是具体操作和代码 1. 安装Vlc.DotNet.Forms 和 VideoLAN.LibVLC.Windows Vlc.DotNet.Forms 是播放库&#xff0c;Vid…

三网话费余额查询的API系统,基于thinkphp6.0框架,附带搭建教程

系统用的是Thinkphp6.0框架 PHP版本需要用8.2 搭建教程 1、源码上传后&#xff0c;吧运行目录改为 /public 2、然后吧 数据库文件.sql 这个文件导入到数据库内 3、打开/config/database.php目录文件&#xff0c;然后进行配置数据库信息 4、挂任务计划&#xff0c;用处&…

未来的NAS:连接您的数字生活

未来的NAS&#xff1a;连接您的数字生活 引言 网络附加存储&#xff08;Network Attached Storage&#xff0c;简称NAS&#xff09;是一种通过网络连接的存储设备&#xff0c;用于集中存储和共享数据。传统的NAS设备通常包含一个或多个硬盘驱动器&#xff0c;可以通过局域网连…

【python】学习笔记01

一、基础语法 1. 字面量 - 什么是字面量&#xff1f; 在代码中&#xff0c;被写下来的的固定的值&#xff0c;称之为字面量。 - 常用的值类型 Python中常用的有6种值&#xff08;数据&#xff09;的类型。 666 13.14 "程序员"print(666) print(13.14) print(&qu…

服务器变矿机,该如何应对?

开始 恶意的挖矿程序会导致服务器cpu的异常占用&#xff0c;很让人讨厌。起初&#xff0c;我只是使用top命令显示出占用cpu不正常的进程&#xff0c;发现其中一个进程占用了百分之九十九点几&#xff0c;然后通过kill -9 <PID>命令干掉它。但总是过不了几天&#xff0c;…

C++三剑客之std::variant(二):深入剖析

目录 1.概述 2.辅助类介绍 2.1.std::negation 2.2.std::conjunction 2.3.std::is_destructible 2.4.std::is_object 2.5.is_default_constructible 2.6.std::is_trivially_destructible 2.7.std::in_place_type和std::in_place_index 3.原理分析 3.1.存储分析 3.2.…

Jira 宣布Data Center版涨价5%-15%,6年内第8次提价

近日&#xff0c;Atlassian官方面向合作伙伴发布2024年涨价通知&#xff1a; 自2024年2月15日起&#xff0c;旗下核心产品Jira Software、Confluence、Jira Service Management的DC版本&#xff08;Data Center版本&#xff09;价格提高5%-15%&#xff08;涨幅与坐席数阶梯相关…

Django中使用MySQL的视图View

文章目录 一、MySQL创建视图二、Django模型定义 一、MySQL创建视图 首先确定好自己需要链接的两张表及其对应的字段&#xff0c;视图的意义是将两张表数据联合一起变成一张新的表方便后续查询数据。 源Django两张表模型 class ProjectTaskRange(BaseModel, TimeModel):class …

IOS-高德地图SDK接入-Swift

申请key 这个要前往高德开发平台注册成为个人开发者然后在控制台创建一个应用&#xff1a; 高德开发平台 注册步骤就不写了&#xff0c;写一下创建应用的步骤&#xff1a; 1、点击应用管理——>我的应用 2、点击右上角的创建新应用 3、输入内容&#xff1a; 4、点击添加ke…

新定义51单片机(RD8G37)实现测距测速仪

本文描述用新定义51单片机&#xff08;RD8G37&#xff09;超声波一体测距传感器实现简单的测距测速仪。 测距仪演示效果 新定义RD8G37Q48RJ开发板 超声波测距模块&#xff1a; 8位并口屏 1、main.c unsigned short timeConsuming0; unsigned int oldDistance;void rectClearS…

阿里云国外服务器价格表

阿里云国外服务器优惠活动「全球云服务器精选特惠」&#xff0c;国外服务器租用价格24元一个月起&#xff0c;免备案适合搭建网站&#xff0c;部署独立站等业务场景&#xff0c;阿里云服务器网aliyunfuwuqi.com分享阿里云国外服务器优惠活动&#xff1a; 全球云服务器精选特惠…

web terminal - 如何在mac os上运行gotty

gotty可以让你使用web terminal的方式与环境进行交互&#xff0c;实现终端效果 假设你已经配置好了go环境&#xff0c;首先使用go get github.com/yudai/gotty命令获取可执行文件&#xff0c;默认会安装在$GOPATH/bin这个目录下&#xff0c;注意如果你的go版本比较高&#xff…

大数据深度学习ResNet深度残差网络详解:网络结构解读与PyTorch实现教程

文章目录 大数据深度学习ResNet深度残差网络详解&#xff1a;网络结构解读与PyTorch实现教程一、深度残差网络&#xff08;Deep Residual Networks&#xff09;简介深度学习与网络深度的挑战残差学习的提出为什么ResNet有效&#xff1f; 二、深度学习与梯度消失问题梯度消失问题…

2024年腾讯云轻量服务器和CVM云服务器性能如何?

腾讯云轻量服务器和云服务器有什么区别&#xff1f;为什么轻量应用服务器价格便宜&#xff1f;是因为轻量服务器CPU内存性能比云服务器CVM性能差吗&#xff1f;轻量应用服务器适合中小企业或个人开发者搭建企业官网、博客论坛、微信小程序或开发测试环境&#xff0c;云服务器CV…

RaspberryPi(树莓派)配置 VNC

RaspberryPi&#xff08;树莓派&#xff09;是可以通过 VNC 来连接到机器上进行图形化操作的。 什么 VNC VNC&#xff08;Virtual Network Computing&#xff09;&#xff0c;为一种使用RFB协议的屏幕画面分享及远程操作软件。此软件借由网络&#xff0c;可发送键盘与鼠标的动…

node.js(express.js)+mysql实现注册功能

文章目录 实现步骤一、获取客户端提交到服务器的用户信息&#xff0c;对表单中的数据&#xff0c;进行合法性的效验 代码如下:二、检测用户名是否被占用三、对密码进行加密四、插入新用户&#xff08;完整代码&#xff09;总结 实现步骤 一、获取客户端提交到服务器的用户信息…