强化学习的数学原理:蒙特卡洛学习

news/2024/7/8 15:31:03 标签: 学习, 人工智能

概述

实际上将之前 policy iteration 当中基于模型的部分只要替换掉不需要模型的部分,就得到了本节课的蒙特卡洛的算法;另外在本门课当中将 value iteration 和 policy iteration 统称为 model-based reinforcement learning,更准确的说应该称为动态规划的方法。

这种方法研究的是比如用数据估计出来一个模型,然后再基于这个模型来进行强化学习

而这节课讲的将是 model-free 的方法。

课程大纲:

在这里插入图片描述

会介绍基于 蒙特卡洛 思想的三个算法,三者环环相扣,另外第一个是最简单的,以至于简单到没办法用,但其是后面两个算法的基础。

Motivating example

从 model-based 的 RL 到 model-free 的 RL ,最让人难以理解的应该是怎么样在没有模型的情况下去估计一些量,而这里有一种重要的方法或者思想就是 蒙塔卡洛估计:

在这里插入图片描述

对于上面的抛硬币例子,使用 model-based 方法非常简单:

在这里插入图片描述

但有一个问题是,很有可能我们是没办法去知道这么详细准确的概率分布的,那么 model-free 的方式怎么做:

在这里插入图片描述

如上图所示,其基本的思想就是投掷硬币很多次,做很多次实验或者得到很多的采样,然后把所有的这些采样求它的平均数,而这就是 蒙特卡洛 的基本思想。

一个问题,使用这种方式得到的期望值是否精确:

在这里插入图片描述

这种直观的解释事实上是有很好的这个数学来做支撑的,也就是大数定理:

在这里插入图片描述

可以总结出如下几点:

在这里插入图片描述

蒙特卡洛不仅仅可以用到这种投掷硬币这样简单的任务当中,凡是需要做大量的采样然后实验然后最后用实验的结果来进行近似的这样的一种方法,都可以称为 蒙特卡洛 的估计的方法。

The simplest MC-based RL algorithm

Algorithm:MC Basic

重点:

在这里插入图片描述

如何使得 policy iteration 这个算法变成 model-free 的:

在这里插入图片描述

在这里插入图片描述

如何求解?

首先从任意的一个 s 和 a 的一个组合出发,然后根据当前的策略我们可以完成一个 episode。我们计算出来这个 episode 的所对应的 discounted return 用小写的 g( s, a ) 来表示,这个 g( s, a ) 就是 action value 定义式中的 G(t) 随机变量集合中的一个采样,如果我们有很多这样的采样也就是一个采样集合,我们就可以使用这些采样求一个平均值来估计这个 G(t) 的这个平均值,也就是这个 G(t) 的期望:

在这里插入图片描述

总的来说就一句话:当我们没有模型的时候,我们就得有数据没有数据的时候就得有模型

这里的数据在统计或者概率里面称为 sample,而在强化学习当中被称为 experience 。

给出详细定义:

在这里插入图片描述

实际上不难看出,该算法和 policy iteration 实际上是差不多的,第二步是一模一样的,唯一的区别在第一步:policy iteration 第一步求解 state value 然后再得到 action value,而 MC Basic 算法则是直接通过数据得到这个 state value 。

算法的伪代码描述:

在这里插入图片描述

这个算法实际上在其他地方是看不到的,这是赵世钰老师自己为了方便教学给单独命名的一个算法,因为老师认为在学习的时候应该把最最核心的想法和其他让它看起来更加复杂的这样一些东西给剥离开来。而对于蒙特卡洛算法来说,其最核心的想法就是把 policy iteration 当中的基于 model 的部分替换掉。但是怎么样去更高效的利用这些数据则是后面两个算法需要做到并且提高的事情。

关于这一小节需要注意的事情:

在这里插入图片描述

应用例子:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

然后是第二个例子,重点是分析一些有趣的性质,如 episode 的长度:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

总结一下 episode 相关的性质:

在这里插入图片描述

Use data more efficiently

Algorithm:MC Exploring Starts

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

上述这些方法实际上有一个名字,叫 Generalized policy iteration,简称 GPI。

其不是一个具体的算法,而是一大类算法,或者说它是一种思想或者架构,就是在 policy evaluation 和 policy improvement 中间不断地进行切换,而且这个 policy evaluation 不需要去非常精确地把 action value 或者 state value 给估计出来。

之前介绍的算法和本节课学习的算法实际上都能够落到这个 GPI 的框架当中。

基于上面的思想,我们就可以得到一个新的算法,称为 MC Exploring Starts ,算法伪代码:

在这里插入图片描述

在这里插入图片描述

然而这个算法的理论和实际是割裂的,因为在实际当中非常难实现,比如在一个网格世界当中要有一个机器人在那里,它要从不同的 (s, a) 出发的时候,我们必须得给它搬运过去设置好程序等等会比较麻烦。因此我们是需要将 exploring starts 这个条件给去掉或者说叫转化掉的,而在下一小节中所介绍的算法中我们可以做到这个事情。

MC without exploring starts

Algorithm:MC ε-Greedy

去掉 exploring starts 的方法就是引入 soft policy:

在这里插入图片描述

在这里插入图片描述

exploitation 字面意义上是“剥削”,但是在强化学习中应该被理解为 “充分利用” 的意思。

那么如何将这种策略和我们之前说的蒙特卡洛的强化学习问题结合在一起呢?

先看我们之前的方式:

在这里插入图片描述

而现在的做法也很简单:

在这里插入图片描述

算法伪代码如下:

在这里插入图片描述

一些例子,用来更好的理解这个算法:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

一个技巧就是,最开始的时候 ε 可以设置大一点,这个时候探索性比较强,然后 ε 就可以逐渐减小到 0,最后就可以得到一个最优的策略。

Summary

在这里插入图片描述


http://www.niftyadmin.cn/n/5537366.html

相关文章

如何通过KB知识库系统实现内部知识的管理

“Baklib 通过构建KB知识库系统实现内部知识的管理,构建 CMS 系统实现网站内容管理,构建 DAM 实现对原子化数字内容的管理。” Baklib 从多个维度和深度实现对数字内容的管理。 CMS 系统 CMS 系统(Content Management System 内容管理系统)是一种帮助用…

前端面试题2(vue3)

1. Vue 3 中的 Composition API 是什么?与 Options API 的区别是什么? 答案: Composition API 是 Vue 3 引入的一种新的编程模型,它允许开发者以更灵活和模块化的方式组织代码。与传统的 Options API 相比,Compositio…

大量设备如何集中远程运维?用好向日葵的这几个功能很重要

当企业的业务不断发展,不同系统、不同用途的IT设备数量也会不断上升,面对不断扩张的设备规模,IT运维的压力自然也会陡然上升。 面对这种情况,传统的线下运维方式已经不再合适,我们需要引入一个专业的,可以…

拍摄泡咖啡的剧本!

泡咖啡的过程可以是一种放松和享受的仪式,同时也是一个记录生活美好瞬间的好机会。以下是一些步骤和提示,帮助您记录泡咖啡的过程: 1. **准备材料**: 确保您有新鲜的咖啡豆、磨豆机、咖啡壶、滤纸、热水和杯子。 2. **选择音乐**&…

2024 Parallels Desktop for Mac 功能介绍

Parallels Desktop的简介 Parallels Desktop是一款由Parallels公司开发的桌面虚拟化软件,它允许用户在Mac上运行Windows和其他操作系统。通过强大的技术支持,用户无需重新启动电脑即可在Mac上运行Windows应用程序,实现了真正的无缝切换。 二…

Dockerfile打包部署常用操作

文章目录 1、Dockerfile部署java程序(jar包)1.1、创建Dockerfile1.2、将Dockerfile和要上传的jar包放到一个目录下,构建镜像1.3、创建启动容器 2、Dockerfile部署vue2.1、创建dockerfile文件2.2、将打包的dist文件放到dockerfile同文件目录下…

公共事件应急日常管理系统-计算机毕业设计源码40054

公共事件应急日常管理系统的设计与实现 摘 要 本研究基于Spring Boot框架,设计并实现了公共事件应急日常管理系统,旨在提升公共事件的应急响应和日常管理效率。系统包括应急资源管理、物资申请管理、物资发放管理、应急培训管理、科普宣教管理、公共事件…

RedHat9 | kickstart无人值守批量安装

一、知识补充 kickstart Kickstart是一种用于Linux系统安装的自动化工具,它通过一个名为ks.cfg的配置文件来定义Linux安装过程中的各种参数和设置。 kickstart的工作原理 Kickstart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,…