西湖大学赵世钰老师【强化学习的数学原理】学习笔记1节

强化学习的数学原理是由西湖大学赵世钰老师带来的关于RL理论方面的详细课程,本课程深入浅出地介绍了RL的基础原理,前置技能只需要基础的编程能力、概率论以及一部分的高等数学,你听完之后会在大脑里面清晰的勾勒出RL公式推导链条中的每一个部分。赵老师明确知道RL创新研究的理论门槛在哪,也知道视频前的你我距离这个门槛还有多远。

本笔记将会用于记录我学习中的理解,会结合赵老师的视频截图,以及PDF文档Book-Mathematical-Foundation-of-Reinforcement-Learning进行笔记注释,之后也会补充课程相关的代码样例,帮助大家理解

笔记合集链接(排版更好哦🧐):《RL的数学原理》

记得点赞哟(๑ゝω╹๑)

Action

Agent在每个状态能够采取的行动

ActionSpace是依赖于State的,即不同状态会对应不同的ActionSpace

State transition

当采取一个action,Agent从一个State,转移到另一个State的过程

我们设计允许Agent踏入禁止区域,再惩罚扣分,而不是禁止进入,一是避免状态空间被缩小,而是适当的尝试扣分项,可能能创造更高的奖励。

状态转移矩阵

State transition可以用一个状态转移矩阵表示,这样表示相当直观,但是只能表示确认性的情况,因此现实中使用较为受限

状态转移可能性

用条件概率来表达这种有随机性的例子,让状态转移的概率形式更加一般化

Policy

Agent被告知在一个状态会采取的动作,给予这个Policy,能够创建一条路径

我们仍然使用条件概率来表示策略,使用符号π来表示任何一个state下,一个action的条件概率是多少

Reward

Agent在采取了一个动作后获得的一个实数标量

  • 正数即鼓励行为的发生
  • 负数即不被希望发生的行为
  • 0一般没有意义,但是相对来说算是奖励

Reward是我们和机器交互的一种方式,去引导Agent实现合适的策略

小贴示
  1. 当reward的产生存在概率时,则表格不再适用
  2. 只要你努力学习你就应该得到奖励,但具体数值并不会确定,同样的,Agent的奖励应该基于当前状态和奖励,而不是下一个状态

Trajectory and return

A state-action-reward chain

Return

对Trajectory的奖励进行求和

通过return,可以直观描述以及评估一个policy的好坏

Discounted return

引入discount rate,避免return的发散,实现无穷级数的收敛

在return前添加折扣discount rate -> γ

  • If γ is close to 0:让Agent的决策更趋向于即时奖励
  • If γ is close to 1:让Agent的决策更趋向于长期奖励

Episode

episode可以理解为有terminal states(终止点)的trajectory,因此通常是有限步的,这样的任务被称为episodic tasks。

与之相对的是continuing tasks,与环境的交互不会终止

episodic tasks与continuing tasks的相互转化
  1. 将target状态设为absorbing state(可以理解为黑洞状态),一旦到达就无法离开
  2. 保持target为正常节点,使用奖励策略来阻止agent离开,允许agent跳出

我们采用第二种,虽然需要更多时间探索,但是最终的效果也将更加一般化

Markov decision process(MDP)[马尔科夫决策过程框架]

Key elements of MDP:

  • Sets:
    • State:the set of states S
    • Action:the set of actions A(s) is associated for state s ∈ S.
    • Reward:the set of rewards R(s,a).
  • Probability distribution:
    • State transition probability: at state s, taking action a, the probability to transit to state s’ is p(s’|s,a)
    • Reward probability: at state s, taking action a,the probability to get reward r is p(r|s,a)
  • Policy: at state s, the probability to choose action a is π(a|s)
  • Markov property:memoryless property

p(st+1|at+1,st,…,a1,s0)=p(st+1|at+1,st),

p(rt+1|at+1,st,…,a1,s0)=p(rt+1|at+1,st).

All the concepts introduced in this lecture can be put in the framework in MDP.


之前的GWE可以被抽象为一个马尔科夫过程(Markov porcess)

Markov decision process becomes Markov process once the policy is given!

马尔科夫决策过程当有了一个明确的决策方式,就变成了马尔科夫过程

小结

By using grid-world examples, we demonstrated the following key concepts:

  • State
  • Action
  • State transition, state transition probability p(s’|s,a)
  • Reward, reward probability p(r|s,a)
  • Trajectory, episode, return, discounted return
  • Markov decision process

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

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

相关文章

数据结构_时间复杂度

✨✨所属专栏:数据结构✨✨ ✨✨作者主页:嶔某✨✨ 什么是时间复杂度? 时间复杂度的定义:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间&#xff0…

【go零基础】go-zero从零基础学习到实战教程 - 0环境配置

是个前端,最近开始学习go,后端除node外基本0基础,所以学习曲线有点绕,目标是个基础的服务端demo,搞个api服务后台,包含基础的用户登录、文章发布和写文章、权限控制,差不多就是个完整博客系统。…

发现肺结节怎么办?5个肺结节诊疗病例分享

近期“肺结节离癌症有多远”上了热搜,当体检报告上出现“肺结节”,不少朋友都万分焦虑。其实,直径小于8mm的实性肺结节不需要做手术,但要记得定期复诊看肺结节是往良性还是往恶性发展;如果是直径大于8mm的实性肺结节就…

Git 使用 下载分支 提交新项目到当前分支 三(公司快速上手版)

文章背景 git已经装好了,公司的也给创建好账户了,仓库地址也有了。 领导已经给你说了是哪个分支了。 如何下载远程仓库中的一个项目分支,到本地电脑上。 并且如何将新建的项目上传到当前分支的远程仓库 下载 步骤 创建文件夹。 右键 Op…

[SqlServer数据库:基于容器化]:快速部署安装

文章目录 一:拉取镜像运行容器1.1:拉取镜像1.2:运行容器1.2:查看容器 一:拉取镜像运行容器 1.1:拉取镜像 docker pull mcr.microsoft.com/mssql/server:2019-latest [rootsv-master ~]# sudo docker pul…

前端JS必用工具【js-tool-big-box】,Number数值转换的方法调用学习

这一小节,我们针对前端工具包(npm)js-tool-big-box的使用做一些讲解,主要是针对Number数值型转换的一些方法使用。 目录 前言 1 安装和引入 2 千位逗号分割 3 判断是否大于0 4 判断是否大于0的整数 5 生成指定范围内的随机数…

Win32 API 光标隐藏定位和键盘读取等常用函数

Win32 API 光标隐藏定位和键盘读取等常用函数 一、Win32 API二、控制台程序指令modetitlepausecls 三、控制台屏幕上坐标的结构体COORD四、句柄获取函数GetStdHandle五、控制台光标操作1.控制台光标信息结构体CONSOLE_CURSOR_INFO2.得到光标信息函数GetConsoleCursorInfo3. 设置…

【NC16619】传球游戏

题目 传球游戏 动态规划 思路 这道题主要考察对状态转移的理解。说实话,动态规划问题只要想到了就简单,想不到就很难,除了像背包问题那一类有固定套路的题以外,其实大部分的动态规划问题都没什么所谓的公式。还是得多练&#xf…

【Java数据结构】深入解析ArrayList与顺序表

【Java数据结构】深入解析ArrayList与顺序表 1.前言~🥳🎉🎉🎉 2.ArrayList的介绍 3.使用ArrayList 3.1 ArrayList的构造方法 3.11 第一个构造方法 3.12第二个构造方法 3.13第三个构造方法 3.2ArrayList中的tostring方…

Spring IOC(一)

1. Spring IOC入门 1.1 什么是Spring IoC IoC(Inversion of Control),即控制反转,是一种设计原则。简单来说,IoC就是将程序的某种传统控制流程反转了。 在Spring框架中,控制反转体现在对象的创建和管理上。…

jsp servlet 学生信息管理系统

一、角色划分 1、超级管理员 2、学生 二、模块展示 1、登录 2、列表页面【超级管理员展示所有用户信息、学生只展示当前登录用户信息】 3、新增 4、编辑 三、数据库【mysql】 四、运行演示 jsp servlet 学生信息管理系统

rust疑难杂症解决

rust疑难杂症解决 边碰到边记录,后续可能会逐步增加,备查 cargo build时碰到 Blocking waiting for file lock on package cache 原因是Cargo 无法获取对包缓存的文件锁, 有时vscode中项目比较多,如果其中某些库应用有问题&…

CSS 之 transition过渡动画

一、简介 ​ CSS 制作 Web 动画有两种方式: 帧动画(Keyframe Animation)和过渡动画(Transition Animation)。针对不同的业务场景中,我们应该选择不同的动画方式,通常来说:对于交互元…

vue3插槽的name和v-slot的研究

slot可以分为具名插槽和默认,默认插槽name是default 在父组件的template需要些v-slot/#,没写不生效,而在父组件下,而没被template包含的默认放在template且含有#default. 1)没写slot,可以不写template,也可写default的template2)写了name的slot,即使是default也必须些template…

【Jenkins】持续集成与交付 (五):Jenkins用户权限管理

【Jenkins】持续集成与交付 (五):Jenkins用户权限管理 1、安装插件(Role-based Authorization Strategy)2、开启权限全局安全配置3、创建角色4、创建用户5、给用户分配角色6、测试权限💖The Begin💖点点关注,收藏不迷路💖 1、安装插件(Role-based Authorization Stra…

STM32G431RBT6之LCD与LED配置

首先,配置时钟树,时钟树的配置在我的另外一篇博客里,这里不再赘述. LCD与LED具有共同的IO口,同时创建工程较好. 打开原理图,发现LED的IO口是PC8~PC15,还有一个容易看漏的PD2.LCD的IO口是PC0到PC15. 当然,看产品手册也可以知道,但是还是推荐大家看原理图. 打开cubumx,给PC0~PC…

Java设计模式 _结构型模式_过滤器模式

一、过滤器模式 1、过滤器模式 过滤器模式(Filter Pattern)是这一种结构型设计模式。过滤器,顾名思义,就是对一组数据进行过滤,从而最终获取到我们预期的数据。 2、实现思路 (1)、定义过滤器的…

想要应聘前端工程师——学习路线指南

前端工程师学习路线 按照前端岗位需求,以优先学习工作更需要,面试更常考的内容为原则,由浅入深,层层铺垫,与时俱进,可以较容易地总结出前端学习路线图: HTML / CSS / JavaScript 基础学习 《Web 入门》 MDN 权威入门指南,HTML / CSS / JavaScript 快速上手 《CSS 世界…

华为OD机试 - 密码解密(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷C卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试…

emacs/tmux 常用快捷键

始于1983的 emacs 入门教程, 官方文档 插件大全, emacs china #源码安装 sudo apt-get install libgtk-3-dev libxpm-dev libtiff-dev libgnutls28-dev https://git.savannah.gnu.org/cgit/emacs.git/# sudo apt-add-repository -y ppa:adrozdoff/emacs sudo apt update sudo…