当前位置: 首页 > news >正文

强化学习课程: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不如结结实实得将马尔可夫写个代码来一遍。我就不按照课程视频讲解(真的比较烂不如伯克利的那个课程)


相关文章:

  • UDP协议
  • 随机2级域名引导页HTML源码
  • 【docker】docker应用举例
  • 1.两数之和(Java)
  • 北斗储罐位移监测系统解决方案
  • java倒序题变形题重温
  • 在Ubuntu中固定USB设备的串口号
  • QML中的附加属性和附加信号处理程序
  • [特殊字符]《Curve DAO 系统学习目录》
  • Java 面向对象编程中 static 的深度剖析与实践
  • jdbc入门
  • Java 日志技术全面解析与实践教程
  • 多线程—线程安全集合类与死锁
  • 3.23周赛补题
  • C#:第一性原理理解日志(log)
  • 从零实现Json-Rpc框架】- 项目实现 - 基于Dispatcher模块的RPC框架
  • `git commit --amend` 详解:修改提交记录的正确方式
  • Content-Type设置内容类型
  • React受控表单绑定
  • wx201基于ssm+vue+uniapp的购物系统设计与实现小程序