01强化学习的数学原理:大纲

news2024/12/24 21:11:56

01强化学习学习路线大纲

  • 前言
  • 强化学习脉络图
  • 章节介绍
    • Chapter 1:Basic Concepts
    • Chapter 2:Bellman Equation
    • Chapter 3:Bellman Optimality Equation
    • Chapter 4:Value Iteration / Policy Iteration
    • Chapter 5:Monte Carlo Learning
    • Chapter 6:Stochastic Approximation
    • Chapter 7:Temporal-Difference Learning
    • Chapter 8:Value Function Approximation
    • Chapter 9:Policy Gradient Methods
    • Chapter 10:Actor-Critic Methods

前言

本文来自西湖大学赵世钰老师的B站视频。本文首先对要学习的内容做一个总结,没有基础的看不懂也很正常,可以先了解一下,后期学完各个章节之后再回头来看。

强化学习脉络图

在这里插入图片描述
分成了两个板块,基本工具和算法方法。基本工具包括基本概念:贝尔曼公式、贝尔曼最优公式,算法和方法包括值迭代、策略迭代、蒙特卡洛方法、时序差分方法、基于value function approximation、policy Gradient Methonds、Actor-Critic Methods。

章节介绍

Chapter 1:Basic Concepts

基本概念:状态、动作、奖励、回报、episode、策略…。通过一个网格世界的例子,一个机器人找到目标区域的例子。之后会将这些概念放在Markov decision process(MDP)的框架下去介绍。

Chapter 2:Bellman Equation

第二章介绍贝尔曼公式。
在这里插入图片描述
这里要搞清一个概念(状态值)和一个工具(Bellman equation)以及它们之间的关系。状态值就是从一个状态出发,沿着一个策略所得到奖励汇报的一个平均值,状态值越高就越说明对应的策略越好,我评价了一个策略,得到了一个值,然后基于它的值再改进策略,就这样循环下去,最后就能得到一个最优的策略。

Chapter 3:Bellman Optimality Equation

贝尔曼最优公式实际上是贝尔曼公式的一个特殊情况,每一个贝尔曼公式都对应了一个策略,贝尔曼最优公式作为一个特殊的贝尔曼公式,对应最优策略,为什么要研究贝尔曼最优公式呢?就是因为它和最优策略有关系,这里就涉及到一个基础的问题,强化学习的终极目标是什么?强化学习的终极目标就是在求解最优策略。因此第三章非常重要。
在这里插入图片描述

最优策略的定义:沿着最优策略能够得到最大的状态值(重要)。最优策略很重要,那么如何分析它呢?需要用到一个工具,即贝尔曼最优公式。它写出来的形式其实是非常简洁的,是矩阵向量的形式。分析这个公式我们用到了不动点原理,不动点原理告诉了我们两个方面的性质,一个是判断最优的策略、最优的状态值到底存在不存在。最优的策略不一定是唯一的,但最优的状态值一定是唯一的。另一方面它能求解贝尔曼最优公式。

Chapter 4:Value Iteration / Policy Iteration

第一批能够求解最优策略的方法和算法是什么,包括值迭代、策略迭代和Truncated policy iteration。Truncated policy iteration是值迭代、策略迭代的统一化表达方式。这三个算法是迭代式算法,并且在每个迭代步骤当中有两个子步骤Policy update和value update,也就是说在当前时刻的策略不太好,此时进行估计该策略的值,进行策略评价,然后根据该策略的值来改进策略,改进之后再得到值,然后再改进如此反复迭代进行。Policy update和value update这两个步骤会不断地迭代,最后就能找到最优策略。
在这里插入图片描述

Chapter 5:Monte Carlo Learning

蒙特卡罗方法是最简单也是第一个不需要模型就能找到的最优策略的方法。没有模型实际上就是学习随机变量的期望,之前提到的state value、action value等都是随机变量的期望值,对x做随机采样,得到平均值,这个平均值就可有作为E(x)的一个很好的近似。总之,没模型要有数据,没数据的话要有模型,既没有模型也没有数据的话什么也学不了。在这里插入图片描述
具体来说第五章介绍了三个算法,分别是MC Basic、MC Exploring Starts和MC ε-greedy。难度依次增加,MC Basic模型在实际中不能用,因为效率很低;
强化学习得学习是一环扣一环得,比如,这里要学会蒙特卡罗方法首先要学会Policy Iteration,要学Policy Iteration我们首先得知道value iteration,要学value iteration我们就得先知道Bellman optimality equation。

Chapter 6:Stochastic Approximation

本章学习随机近似理论。第一个问题是来估计一个随机变量的期望,我们想用这个例子来说明什么是non-incremental,什么是incremental。估计E(x)有两种方法,non-incremental的方法就是比如我有一万次采样,我要等所有的采样全部采到了,一次性求平均,就得到了E(x)的近似。incremental的思想是在最开始的时候对它有一个估计,这个估计可能不准,但是没关系,我们每得到一个采样就用这个采样来更新我们的估计,这样慢慢的我们的估计就会越来越准。
具体来说,第六章介绍了三个算法,如下:
在这里插入图片描述
总结:第六章的目的是为我们打基础。主要学习掌握增量式的算法的思想,以及SGD这个算法还有它的思想在后边都会有很广泛的应用。

Chapter 7:Temporal-Difference Learning

本章学习时序差分方法,时序差分是强化学习中非常经典的方法,具体介绍以下几种:
在这里插入图片描述

Chapter 8:Value Function Approximation

从第七章到第八章也存在一个比较大的鸿沟。从第七章到前边全都是基于表格形式的,比如说状态值Vπ(s),s是一个状态, 每一个状态都对应一个状态值,这些状态值存在一个表格或者向量当中,如果去访问或者修改的话都是非常容易的,但是如果状态非常多或者状态是连续的,那这种表格形式的效率就比较低下或者就不再适用了,这时我们就需要用函数的形式来进行代替,用V_(s,w),w是这个函数对应的参数,我们希望这个函数能和真实的Vπ(s)越接近越好。
在这里插入图片描述
总的来说,第八章我们引入了一个函数进来,而神经网络是函数非常好的表达方式,所以第八章神经网络首次进入到强化学习中。

Chapter 9:Policy Gradient Methods

从第八章到第九章也存在一个比较大的鸿沟,第八章之前全都是value-based方法,而第九章和第十章开始变成了policy-based方法。
value-based和policy-based方法的区别如下:
第八章有一个目标函数J(w),w是值函数的参数,我要更新值函数的参数使得这个值函数能够很好地近似或者估计出一个策略所对应的值,在这个基础上我再更新策略然后得到新的策略,然后在估计它的值,这样不断迭代。Policy gradient方法有些不一样,它是有一个目标函数J(θ),θ是策略的参数,这里我们也把策略从表格形式变成了函数的形式,所以我们是直接优化这个参数θ,即直接改变策略,慢慢的得到最优的策略。
在这里插入图片描述

Chapter 10:Actor-Critic Methods

Actor-Critic 方法实际上是把alue-based和policy-based方法相结合,更准确来说是把第八章和第九章中的内容结合在一起。
在这里插入图片描述

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

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

相关文章

数据结构与算法--图

数据结构与算法--图 1 图的基本概念 2 无向图和有向图 3 图相关的关键术语 4 图的相关性质 5 图的存储 4.1 邻接表法 4.2 邻接矩阵法 6 图的代码表示 1 图的基本概念 图(Graph) 是由一个顶点集V和一个弧集E构成的网状数据结构,记作 G ( V , E ) G (V ,E…

RPC框架学习

一、设计目标 RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(XML/Json/ 二进制)和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者&a…

多线程知识汇总

IntentService 多线程的应用在Android 开发中是非常常见的,常用方法主要有: 集成Thread类 实现Runnable接口 AsyncTask Handler HandlerThread IntentService IntentService 定义: Android 里的一个封装类,继承四大组件之一 ser…

Android 跨进程通信并传输复杂数据

前言 AIDL (Android Interface Definition Language) 支持以下数据类型: 基本数据类型:int、long、float、double、boolean、char、byte。 字符串类型:String。 集合类型:List、Map、Set。 Parcelable 类型:实现了 Par…

linux 文件锁

建议锁,强制锁,记录锁的概念 建议锁: 如果某一个进程对一个文件持有一把锁之后,其他进程仍然可以直接对文件进行操作(open, read, write)而不会被系统禁止,即使这个进程没有持有锁。只是一种编程上的约定。建议锁只对遵守建议锁准则的进程生…

@JsonFormat、@JSONField、@DateTimeFormat详细解说

JsonFormat、JSONField、DateTimeFormat详细解说_jsonfield format_xinlianluohan的博客-CSDN博客 三者出处 1、JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以…

CSS SASS calc() 计算表达式或使用变量

calc()是css的一个函数,可用于元素计算长度,比如div宽度想要减去一个固定宽度后并自适应,可以写为calc(100% - 60px) 注意“-”两边有空格 sass已经是常用的预编译语言,允许使用变量等规则,如果…

上海亚商投顾:沪指窄幅震荡微跌 两市成交金额创年内新低

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日窄幅震荡,创业板指盘中跌超1%,黄白二线有所分化。华为星闪概念股午后拉升&…

EPC与5GC/5GS互联互通

一、5GS与EPC/E-UTRAN互通的非漫游架构 1.N26接口是MME和5GS AMF之间的CN间接口,以实现EPC和NG核心之间的互通。网络中支持N26接口是可选的,用于互通。N26支持在S10上支持的功能的子集(对于互通是必要的)。 2&#xf…

面试题:HTTPS 是如何保证传输安全的?又被问了!

文章目录 1. HTTP 协议1.1 HTTP 协议介绍1.2 HTTP 中间人攻击1.3 防止中间人攻击 2. HTTPS 协议2.1 HTTPS 简介2.2 CA 认证体系 总结 1. HTTP 协议 在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议的概念。 1.1 HTTP 协议介绍 HTTP 协议是一种基于文本的传输协议&…

Android13 大屏设备底部显示TaskBar并NavagatonBar居右

Android 13大屏设备时底下显示任务栏以及虚拟按键靠右的问题, 当前需求是去掉底部任务栏的显示,并把虚拟按键导航栏居中显示。 修改前的效果: 修改后的效果: 通过查看源码逻辑,可以发现只需把isTablet相关的逻辑和…

Mybatis 映射器中映射方法接受多个参数(@Param)

前面我们介绍了使用Mybatis映射器进行数据的增删改查操作;本篇我们继续介绍在Mybatis映射器的映射方法中如何使用多个参数。 如果您对Mybatis使用映射器进行数据的增删改查操作不太了解,建议您先进行了解后再阅读本篇,可以参考: …

【数据结构】二叉树的构建与基本操作实现

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 1.前序建立二叉树 2.销毁二叉树 3.统计 …

uni-app 之 picker选择器

uni-app 之 picker选择器 同步滚动&#xff1a;开 uni-app 之 picker选择器 一、普通选择器 二、多列选择器 三、时间选择器 四、日期选择器 一、普通选择器 <template><view><picker change"bindPickerChange" :value"index" :range&q…

LabVIEW开发航天器模拟器的姿态控制和反作用轮动量管理

LabVIEW开发航天器模拟器的姿态控制和反作用轮动量管理 在过去十年中&#xff0c;航天器一直是现代技术进步的先决条件。迄今为止&#xff0c;为了更好地完成各种实际任务&#xff0c;已经在航天器姿态控制领域进行了大量研究。航天器一旦进入太空&#xff0c;就容易出现不确定…

JavaWeb开发-05-SpringBootWeb请求响应

一.请求 1.Postman 2.简单参数 ​ package com.wjh.controller;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;/** 测试请求参数接受*/ R…

【IntelliJ IDEA】cmd和idea Terminal查看java版本不一致

问题描述 原来win10电脑上安装的是jdk8的版本&#xff0c;因某些原因&#xff0c;现在想换成jdk7的版本&#xff0c;修改环境变量后&#xff0c;在cmd中执行 [java -version]命令&#xff0c;显示的是7的版本。 但在idea的Terminal中执行&#xff0c;确实显示8的版本。 原因分…

vue设置路由模式为history,打包部署,并解决404问题

现在Router配置里面加上 base 和 mode 属性&#xff1a; export default new Router({base: /your_project_name/,mode: history,routes: [......] })这样就能支持 history 模式了&#xff0c;但是现在静态资源获取还有问题。 解决静态资源获取问题 在 config/index.js 文件…

TS中的数据类型

一、number类型 let c: number; c 10; c "hello"; // 不能复制string类型 二、string类型 let d: string; d "hello"; d 10; // 不能复制number类型 三、boolean类型 let e: boolean true; e false; e 10; // 不能赋值true和false以外的值 四…

Cypress安装与使用教程(1)—— 软测大玩家

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…