强化学习课程:stanford_cs234 学习笔记(2)introduction to RL

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 5、强化学习课程大纲
    • 5.1 课程内容主:
    • 5.2 马尔可夫决策过程:
      • 5.2.1 马尔可夫性 markov propterty
      • 5.2.2 马尔可夫过程 markov process
      • 5.2.3 马尔可夫`决策`过程 markov decision process
      • 5.2.4 `部分可观`马尔可夫`决策`过程 partially observable markov decision process
    • 5.3 model free
      • 5.3.1 model free
      • 5.3.2 Model-free policy evaluation
      • 5.3.3 Model-free control
    • 5.4 为什么马尔可夫假设这么受欢迎?


前言

第一节课的后半段其实就是一个马尔可夫的实际案例教学
在这里插入图片描述

5、强化学习课程大纲

在这里插入图片描述

5.1 课程内容主:

1 Markov Decision Processes & Planning
马尔可夫决策过程(MDP)是强化学习的基础数学模型。
计划(Planning)是指在已知环境模型下求解最优策略,例如值迭代、策略迭代。

2 Model-free Policy Evaluation
在没有环境模型的情况下,仅基于交互经验估计策略的价值。
包括:蒙特卡洛方法、时间差分(TD)方法等。

3 Model-free Control
不依赖环境模型,直接从经验中学习最优策略。
代表方法:Q-learning、SARSA、Deep Q-Network(DQN)等。

4 Policy Search
直接优化策略函数,而不是间接地通过值函数。
例如:策略梯度方法、REINFORCE、PPO、A3C 等。

5 Offline RL including RL from Human Feedback and Direct Preference Optimization
离线强化学习(Offline RL):从现有数据中学习策略,不再与环境交互。
RLHF(Reinforcement Learning from Human Feedback):结合人类偏好训练策略,例如 ChatGPT 的训练方式。
Direct Preference Optimization:基于人类偏好直接优化策略,而不是通过奖励函数。

6 Exploration
探索 vs. 利用问题(Exploration-Exploitation Tradeoff)。
涉及 ε-greedy、UCB、最大熵 RL(如 SAC)等探索策略。

7 Advanced Topics
高级主题:可能包括元学习、多智能体强化学习、安全强化学习、模仿学习、逆强化学习等前沿内容。

5.2 马尔可夫决策过程:

这玩意又称MDP: Markov decision process
M D P = ( S , A , P , R , γ ) MDP =(S, A, P, R, γ) MDP=(S,A,P,R,γ) 其中: S 是状态,A 是动作,P 是概率,R 是s状态下执行A的奖励的期望,γ 是折扣因子。
马尔可夫决策过程和过去无关,也就是说,当前状态 s 包含了做出决策所需的所有信息,与过去的状态和动作无关。

这里有个几个概念需要整理经常把人搞晕

5.2.1 马尔可夫性 markov propterty

如果某一状态信息包含了所有相关的历史,只要当前状态可知,所有的历史信息都不需要,未来只和当前状态有关,那么,该状态St具有马尔可夫性。
数学描述:
P ( S t + 1 ∣ S t , A t , S t − 1 , A t − 1 , . . . ) = P ( S t + 1 ∣ S t , A t ) ] P(S_{t+1} | S_t, A_t, S_{t-1}, A_{t-1}, ...) = P(S_{t+1}|S_t, A_t)] P(St+1St,At,St1,At1,...)=P(St+1St,At)]

5.2.2 马尔可夫过程 markov process

马尔可夫过程介于马尔可夫链和马尔可夫决策过程之间的概念。网上定义很多,这里我说下理解:马尔可夫过程是一个具有马尔可夫性质的随机过程动态系统模型,他描述了状态如何随时间转移,但不设计动作(action)或奖励(reward)。
我在网上查到的信息总结下来就是:马尔可夫过程≈马尔可夫链。但是有细微区别,可以忽略不计
差异如下:

马尔可夫过程马尔可夫链
学术用语更抽象侧重应用一个具体的案例
表达形式强调状态过程桥电工转移图或概率矩阵
应用理论分析和数学模型多用于建模或者工程问题
是否包含动作/奖励不包含不包含

所以可以理解为马尔可夫链 < = <= <=马尔可夫过程

5.2.3 马尔可夫决策过程 markov decision process

这里我就懵了,怎么又搞个决策那么就和马尔可夫过程进行对比:

马尔可夫过程马尔可夫决策过程
当前和未来状态
状态转移概率(或概率矩阵)
当前动作动作没有
奖励没有没有
策略或者控制没有

目前就很容易看出来马尔可夫决策过程就是基于这种马尔可夫过程加入了动作以及动作对应的奖励并可以解决智能体奖励最大化的问题。

5.2.4 部分可观马尔可夫决策过程 partially observable markov decision process

部分客观马尔可夫决策过程是强化学习序列决策中非常重要的一个扩展模型。很容易看到部分可观马尔可夫首先是基于马尔可夫过程,但是优势部分客观,这个非常符合我们日常遇到的我们不能完全观测到全部信息,只能是通过观察到的信息做决策。
部分可观马尔可夫决策过程 叫 POMDP。POMDP= (S, A, P, R, γ,O, Z)

S状态空间
A动作
P状态转移概率
R奖励
γ折扣因子
O观察空间
Z观察概率函数

这里的智能体由于看不到真实状态,必须有一个信念(belief)其实我认为是一个经验或者先验概率,假设我们有状态s 到 s’ 那么有:
b t ( s ′ ) = P ( S t = s ′ ∣ O 1 : t , A 1 : t − 1 ) b_t(s') = P(S_t = s'|O_{1:t}, A_{1:t-1}) bt(s)=P(St=sO1:t,A1:t1)
= η ⋅ P ( O t ∣ s ′ , A t − 1 ) ​ ⋅ P ( s ′ ∣ s t − 1 , A t − 1 ) ⋅ b t − 1 ( s ) = \eta ⋅P( O_t|s', A_{t-1})​⋅{P(s'|s_{t-1}, A_{t-1})}⋅b_{t-1}(s) =ηP(Ots,At1)P(sst1,At1)bt1(s)
这里是在执行 A t − 1 A_{t-1} At1动作后,达到状态 S t S_t St并进行观察 O t O_t Ot。只有 action 即A是 t-1其他都是 t时刻的。可以这样记忆:先动作,再状态转移,再观测

5.3 model free

这里提到了 model free 和 model-free policy
其中的 model 指环境中的动态模型,即状态转移概率P(s’ | s, a) 和奖励函数R(s, a)。

5.3.1 model free

顾名思义
Model-based RL(有模型的强化学习):假设你可以访问或学到这个环境模型,可以用它来做模拟、规划或预测未来。
Model-free RL(无模型的强化学习):不需要知道或学习环境的转移概率或奖励模型,智能体只通过与环境交互、观察到的状态、动作和奖励来学习策略或价值函数。
为什么要用model-free
在很多现实世界中,环境是未知的、复杂的或无法建模(如游戏、机器人环境)。
model-free 方法更“黑盒”,但能直接从经验中学习——比如你玩游戏,只管操作,不用知道游戏引擎内部规则。

5.3.2 Model-free policy evaluation

目标:在没有已知模型的情况下,估计某个策略的价值函数
常用方法:
蒙特卡洛方法(Monte Carlo)
时序差分法(TD learning)
后面会高明白

5.3.3 Model-free control

目标:在不依赖模型的情况下直接学习最优策略或最优 Q 函数。

代表方法:
Q-learning
SARSA
Deep Q-Network (DQN)
Actor-Critic 系列算法(如 A2C, PPO)
后面会高明白

5.4 为什么马尔可夫假设这么受欢迎?

在这里插入图片描述
马尔可夫假设之所以流行,是因为它足够简单,可以近似成立,并且能带来高效的算法推理和实现优势。我们只要合理设计状态表示,就能在多数场景中享受其带来的计算与建模便利。


后面的课程就是一个马尔可夫实际case不如结结实实得将马尔可夫写个代码来一遍。我就不按照课程视频讲解(真的比较烂不如伯克利的那个课程)


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

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

相关文章

[Linux]在vim中批量注释与批量取消注释

1.在vim中批量注释的步骤&#xff1a; 1.在normal模式下按Ctrl v &#xff0c;进入V-BLOCK模式 2.按 J 键 或 K 键选择要注释的内容&#xff0c;J向上K向下 我们给第5&#xff0c;6&#xff0c;7行进行注释 3.按住shift i进入插入模式&#xff0c;输入 // 4.点击ESC键&…

16-CSS3新增选择器

知识目标 掌握属性选择器的使用掌握关系选择器的使用掌握结构化伪类选择器的使用掌握伪元素选择器的使用 如何减少文档内class属性和id属性的定义&#xff0c;使文档变得更加简洁&#xff1f; 可以通过属性选择器、关系选择器、结构化伪类选择器、伪元素选择器。 1. 属性选择…

Spring Initializr搭建spring boot项目

介绍 Spring Initializr 是一个用于快速生成 Spring Boot 项目结构的工具。它为开发者提供了一种便捷的方式&#xff0c;可以从预先定义的模板中创建一个新的 Spring Boot 应用程序&#xff0c;从而节省了从头开始设置项目的大量时间。 使用 Spring Initializr&#xff0c;你…

C++中的new、malloc、realloc、calloc——特点?函数原型?释放方式?区别?校招面试常问内容?

作者&#xff1a;求一个demo 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 内容通俗易懂&#xff0c;没有废话&#xff0c;文章最后是面试常问内容&#xff08;建议通过标题目录学习&#xff09; 废话不多…

【字符设备驱动开发–IMX6ULL】(一)简介

【字符设备驱动开发–IMX6ULL】&#xff08;一&#xff09;简介 一、Linux驱动与裸机开发区别 1.裸机驱动开发回顾 ​ 1、底层&#xff0c;跟寄存器打交道&#xff0c;有些MCU提供了库。 spi.c&#xff1a;主机驱动&#xff08;换成任何一个设备之后只需要调用此文件里面的…

Spring AI MCP 架构详解

Spring AI MCP 架构详解 1.什么是MCP? MCP 是一种开放协议&#xff0c;它对应用程序向大语言模型&#xff08;LLMs&#xff09;提供上下文信息的方式进行了标准化。可以把 MCP 想象成人工智能应用程序的 USB-C 接口。就像 USB-C 为将设备连接到各种外围设备和配件提供了一种…

【Java】IO流

一、IO流的定义 二、 字节流 &#xff08;一&#xff09;FileOutputStream 操作本地文件的字节输出流&#xff0c;可以把程序中的数据写到本地文件中。 1、书写步骤 注&#xff1a; &#xff08;1&#xff09;创建字节输出流对象&#xff1a; 参数是字符串表示的路径或者…

Java 大视界 -- Java 大数据机器学习模型在电商商品推荐冷启动问题中的解决策略(160)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

MySQL———作业实验

一、创建数据库表 1.创建数据库 mysql> create database mydb11_stu; mysql> use mydb11_stu; 2.建表 &#xff08;1&#xff09;创建student表 mysql> create table student ( -> id int(10) not null unique primary key, -> name varch…

深度解析衡石科技HENGSHI SENSE嵌入式分析能力:如何实现3天快速集成

嵌入式分析成为现代SaaS的核心竞争力 在当今SaaS市场竞争中&#xff0c;数据分析能力已成为产品差异化的关键因素。根据Bessemer Venture Partners的最新调研&#xff0c;拥有深度嵌入式分析功能的SaaS产品&#xff0c;其客户留存率比行业平均水平高出23%&#xff0c;ARR增长速…

Day17 -实例:利用不同语言不同框架的特征 进行识别

前置&#xff1a;我们所需的web站点&#xff0c;都可以利用fofa去搜索&#xff0c;例如&#xff1a;app"flask"这样的语句去找对应的站点&#xff0c;找到后&#xff0c;我们模拟不知道是什么框架&#xff0c;再根据特征去判断它的框架。 ***利用工具可以再去结合大…

Linux输入系统应用编程

什么是输入系统 Linux 输入系统是处理用户输入设备(如键盘、鼠标、触摸屏、游戏手柄等)的软件架构。在应用编程层面&#xff0c;它提供了与这些输入设备交互的接口。 主要组成部分 输入设备驱动层&#xff1a;直接与硬件交互的驱动程序 输入核心层&#xff1a;内核中的输入子…

【C++初阶】---类和对象(下)

1.再探构造函数&#xff08;初始化链表&#xff09; •之前我们实现构造函数时&#xff0c;初始化成员变量主要使⽤函数体内赋值&#xff0c;构造函数初始化还有⼀种⽅式&#xff0c;就是初始化列表&#xff0c;初始化列表的使⽤⽅式是以⼀个冒号开始&#xff0c;接着是⼀个以逗…

Ubuntu 22.04.5 LTS 设置时间同步 ntp

提示&#xff1a;文章为操作记录&#xff0c;以备下次使用 文章目录 前言一、设置ntp1.1替换国内源1.2 更新源&安装1.3 验证 前言 设置时间同步&#xff0c;环境版本 # cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.5 LTS" NAME"Ubuntu" VERSION_…

飞书电子表格自建应用

背景 coze官方的插件不支持更多的飞书电子表格操作&#xff0c;因为需要自建应用 飞书创建文件夹 创建应用 开发者后台 - 飞书开放平台 添加机器人 添加权限 创建群 添加刚刚创建的机器人到群里 文件夹邀请群 创建好后&#xff0c;就可以拿到id和key 参考教程&#xff1a; 创…

计算机网络——传输层(TCP)

传输层 在计算机网络中&#xff0c;传输层是将数据向上向下传输的一个重要的层面&#xff0c;其中传输层中有两个协议&#xff0c;TCP&#xff0c;UDP 这两个协议。 TCP 话不多说&#xff0c;我们直接来看协议报头。 源/目的端口号&#xff1a;表示数据从哪个进程来&#xff0…

【ArcGIS】ArcGIS10.6彻底卸载和ArcGIS10.2安装全过程

卸载python3后,解决了ArcGIS与python3冲突问题后,软件可以正常打开使用了 但是还是出现了问题 用ArcGIS 进行空间分析时,中间操作没有任何报错和问题,但是就是没有运行结果 在别人的软件上操作一遍可以出现运行结果 关闭确有这个,但真的不是我给它的运行时间不够,反反复复试…

智慧电力:点亮未来能源世界的钥匙

在科技日新月异的今天&#xff0c;电力行业正经历着前所未有的变革。智慧电力&#xff0c;作为这一变革的核心驱动力&#xff0c;正逐步改变着我们对电力的认知和使用方式。它不仅是电力行业的一次技术革新&#xff0c;更是推动社会可持续发展、实现能源高效利用的重要途径。 智…

oracle中java类的使用

方式一&#xff1a; 编写一个简单的java类 vi OracleJavaDemo.java public class OracleJavaDemo { public static String processData(String input) { return "Processed: " input; } } 编译 javac OracleJavaDemo.java 生成OracleJavaDemo…

pycharm2024.1.1版本_jihuo

目录 前置&#xff1a; 步骤&#xff1a; step one 下载软件 step two 卸载旧版本 1 卸载软件 2 清除残余 step three 下载补丁 step four 安装2024.1.1版本软件 step five 安装补丁 1 找位置放补丁 2 自动设置环境变量 step six 输入jihuo码 前置&#xff1a; 之…