Skip to content

强化学习基础

强烈推荐:https://hrl.boyuai.com/

基本概念

RL, in a nutshell, is to “learn to make good sequences of decisions through trail-and-errors”

机器学习范式

  • 监督

  • 给定训练数据 training data

  • 和期望的输出(标签)desired outputs (with labels)

  • 半监督

  • 给定训练数据 training data

  • 和部分期望的输出 some labels

  • 无监督

  • 仅给定训练数据 training data

  • without labels

  • 强化学习 Reinforce Learning (RL)

  • 从序列决策中获取奖励 observations and periodic rewards as the agent takes sequential actions;

强化学习是一种自动化目标导向的计算方法,与其他机器学习范式最大的区别在于:

  • 交互:与环境之间存在交互,从环境中学习
  • 决策序列:以前的决策会影响以后的决策,也就是学习的过程
  • 探索:不断试错、探索的学习过程

强化学习算法构成

给定

三大集合
  • 状态集合
  • 动作集合
  • 奖励值集合
两大模型 (两大主角)

两大模型

环境模型(optional)

述了环境的具体表现。在给定状态和动作情况下,模型可能会预测结果的下一个状态和下一个奖励

  • 有环境模型:定义了环境模型
  • 无环境模型:不定义环境模型,靠智能体感知实时状态来理解环境
主角模型(智能体)

概念来源于分布式人工智能思想。通常意义上,智能体是一个能够感知并施加某种作用到自身和环境、有生命周期的一个物理的或抽象的计算实体。智能体接受一个任务指令后,经过学习,可自主完成该任务

目标

智能体获取从任务开始到任务结束过程中每一步的最优动作

三大特征

  • 探索试错
  • 延迟回报
  • 长期目标

强化学习的关键特征是长期目标优化,智能体关注整体学习问题,优化整个过程

大多强化学习算法的关键特征是值函数的使用

特有挑战

探索和开发 (exploration and exploitation):短期和长期目标的权衡

强化学习的问题建模

问题模型

状态空间

智能体所处的实际环境所有状态集合

当前状态

智能体感知到的环境当前所处的状态

动作策略

智能体在某时间的行为

奖励信号

智能体收到的关于动作效果的反馈

价值函数

奖励信号 只能说明 动作的即时效果,而 价值函数 则指明什么策略的 长期效果 是好还是差。

马尔科夫决策问题模型

马尔可夫奖励过程(MRP)

马尔可夫奖励过程(Markov reward process)

动作序列集

动作序列集(Action Sequence Set)是指一组按特定顺序排列的动作序列。它通常用于描述某个系统、机器人或智能体在特定环境中的行为。动作序列集可以包含一系列离散的动作步骤,也可以包含连续的动作序列。

动作序列集可以被分为两类:

  • 有终止态的离散动作(动作幕)
  • 无终止态的连续动作

动作幕(Episode)

一个完整的有起始终止状态动作序列集(Episode,简称动作幕

  • 从标准起始态或从标准分布的初始态集合中抽取初始态开始
  • 以终止态结束
  • 不同动作序列集都可以认为是在同一个终止态结束,只是序列具体元素不同

Warning

区分奖励和收益

简单收益

Return (aka cumulative future reward) ,未来的累积奖励,也就是简单收益

折扣回报

Discounted Return ,折扣回报,也就是引入了折扣因子的简单收益。

马尔科夫决策过程(MDP)

马尔可夫决策过程(Markov decision process,MDP)

MDP 与 MRP 非常相像,主要区别为 MDP 中的状态转移函数和奖励函数都比 MRP 多了动作 a 作为自变量。

问题模型

MDP(马尔科夫决策过程)是一个描述智能体和环境交互的四元组 (S, A, 𝑅, 𝑝)

  • S :Status 状态的集合
  • A :Action 动作的集合
  • R :Reward 奖励的集合
  • p :当前状态执行了一个动作跳转到下一个状态的概率

  • 对象

  • 智能体
  • 环境
  • 交互
  • 动作
  • 状态
  • 奖励

MDP模型

状态-奖励表

扫地机器人状态-奖励表

扫地机器人状态-奖励表

状态迁移图

扫地机器人状态迁移图

扫地机器人状态迁移图

游戏轨迹

(state, action, reward) trajectory 游戏轨迹

s1,a1,r1,s2,a2,r2,sT,aT,rT

Info

即时奖励和长期目标的关系

某一决策的即时奖励较高不一定带来较高的长期目标

追求长期目标 ≠ 追求即时奖励

强化学习的值函数

基础概统知识

以下定义针对离散型随机变量:

概率

随机变量 A = a 发生的概率

p(A=a)

条件概率

在 C = c 条件下,A = a 的概率

p(A=a|C=c)

Abstract

智能体处于状态 s(S=s) 时,它的策略 π 执行动作 a(A=a) 的概率

π(a|s)

期望

也称随机变量 𝑿 的期待值

E[X]=ixip(X=xi)

条件期望

Y=y 条件下,X 的期望

E[X|Y=y]=ixip(X=xi|Y=y)

简单值函数

直觉上看,为找到一个好的动作决策,需为每个动作赋值,只考虑了即时奖励,未考虑长期过程

有了值函数 q(a) ,决策问题即可转为优化问题求解,找最优动作:

argmaxa q(a)

定义

q(a)=E[R|A=a]a{1,...,k}=rp(r|a)r

其中 p( r | a ) 是在执行 a 动作情况下观察到智能体获得奖励 r 的概率;R 字母表示 Reward 奖励。

采样平均

除了按定义方法计算,还可以通过采样平均方法计算,即通过以往动作所获奖励情况来估算值函数

Q(a)=获得奖励的总和动作a的执行次数

具体计算公式为:

Q(a)=i=1n1Ri1Ai=ai=1n11Ai=a

其中 1Ai=a 表示 Ai=a 时取 1 ,否则取 0

问题

未考虑长期过程,实际并不采用

简单收益

简单收益的定义

G 字母表示 Gain 收益,也叫做回报 Return

Gt=Rt+1+Rt+2+Rt+3+...+RT

简单收益的期望

离散动作的简单收益
E[Gt]=E[Rt+1+Rt+2+Rt+3+...+RT]
连续动作的简单收益
E[Gt]=E[Rt+1+Rt+2+Rt+3+...]

存在问题

若奖励都是非负的,收益会不会是无穷大?

折扣目标收益

引入折扣因子 γγ<1,得到折扣回报(Discounted Return):

Gt=Rt+1+γRt+2+γ2Rt+3+...+γk1Rt+k+...=k=0γkRt+k+1

γ=0 时:

Gt=Rt+1+0Rt+2+02Rt+3+...+0k1Rt+k+...=Rt+1

Rmax 为智能体所能获取的最大奖励,则:

Rt+k+1Rmax
Gt=k=0γkRt+k+1k=0γkRmax=Rmaxk=0γk=Rmax1γ

目标收益的递归计算

定义 GT=0 , tT

Gt=Rt+1+γRt+2+γ2Rt+3+...+γk1Rt+k+...=Rt+1+γ(Rt+2+γRt+3+...+γk2Rt+k+...)=Rt+1+γGt+1

从而有:

Gt=Rt+1+γGt+1

特别地,t = T 时有 GT=0 ;t = T-1 时有 Gt1=RT+γGT

标准状态值函数

一个状态在策略 𝝅 下的值函数,记作:vπ(s),是指该策略 𝝅 下,智能体在时间步 t 和所处状态 s 所能获得的奖励的期望值,即该值是从 s 开始,按照策略 𝝅 执行动作的预期收益

vπ(s)Eπ[Gt|St=s]=Eπ[k=0γkRt+k+1|St=s]

Info

符号 表示两个数值、表达式、模型之间的近似等于关系。这个符号通常用于数学和工程领域,在数值计算中,表示两个量非常接近或几乎相等,但并非完全相等。

标准动作值函数

一个动作在某个策略下的值函数,记作:qπ(s,a) ,是指该策略 𝝅 下, 智能体在时间步 t 和所处状态 s,执行动作 𝒂 所获得的奖励的期望值,即从 s 开始,按照策略 𝝅 执行动作 𝒂 ,能获得的预期收益

qπ(s,a)Eπ[Gt|St=s,At=a]=Eπ[k=0γkRt+k+1|St=s,At=a]

Abstract

两种值函数的区别在于:

  • 状态值函数相当于将当前状态 s 所有可能执行的动作都执行一遍,求奖励总和的期望
  • 动作值函数相当于只求当前状态 s 下某一个动作 a 的奖励的期望

V 值的递归计算(贝尔曼方程)

由目标收益的递归计算可以得到 V 值的递归计算:

V(s)=R(s)+γsSP(s|s)V(s)

其中:

  • V(s)s 状态的 V 值;
  • R(s)s 状态的奖励
  • P(s|s) 是从 s 状态转变为到 s 的概率;
  • γ 是折扣因子。

该式子也就是贝尔曼方程(?)

从值函数计算最优策略

  • 策略:在每一个状态下执行何种动作?
  • 最优策略:能够最大化收益的动作执行决策

策略

确定性策略

在某一状态下智能体的策略采取动作 a 的概率是 100% ,即 π(s)=a

确定性策略

不确定性策略(随机策略)

也叫随机策略

π(a|s) 是在状态 s 上采取的动作的概率分布,也可以表示某一状态 s 采取可能的行为 a 的概率,满足:

aA(s)π(a|s)=1π(a|s)0

值函数的应用

值函数最高值的策略

无终止态MDP的状态值函数求法举例

贝尔曼期望方程

贝尔曼方程(Bellman Equation) 就是递归计算值函数得到的值函数的方程。

贝尔曼期望方程(Bellman Expectation Equation)是为了与接下来的贝尔曼最优方程进行区分

状态值函数

v 值

vπ(s)Eπ[Gt|St=s]=Eπ[Rt+1+γGt+1|St=s]=Eπ[Rt+1]+γEπ[Gt+1|St=s]Eπ[Rt+1]=aπ(a|s)srp(s,r|s,a)[r]γEπ[Gt+1|St=s]=aπ(a|s)srp(s,r|s,a)[γEπ[Gt+1|St+1=s]]=aπ(a|s)srp(s,r|s,a)[γvπ(s)]vπ(s)=aπ(a|s)srp(s,r|s,a)[r+γvπ(s)]

其中 St+1=s

动作值函数

q 值

qπ(s,a)Eπ[Gt|St=s,At=a]=srp(s,r|s,a)[r+γEπ[Gt+1|St+1=s]]=srp(s,r|s,a)[r+γaπ(a|s)Eπ[Gt+1|St+1=s,At+1=a]]qπ(s,a)=srp(s,r|s,a)[r+γaπ(a|s)qπ(s,a)]

其中 St+1=s,At+1=a

最优策略的数学表达

sS:π1π2vπ1(s)vπ2(s)
sS,aA:π1π2qπ1(s,a)qπ2(s,a)

从而有:

vπ(s)Eπ[Gt|St=s]=maxπvπ(s),sS
qπ(s,a)=Eπ[Gt|St=s,At=a]=maxπqπ(s,a),sS,aA

Abstract

表示最优的,这里 π 表示最优策略

贝尔曼最优方程

v(s)=vπ(s)? 代替原来的 vπ(s)qπ(s,a) 代替原来的 qπ(s,a) ,那么原本的贝尔曼方程就变成贝尔曼最优方程,得到的表达式就是最优值函数

参考:https://blog.csdn.net/november_chopin/article/details/106589197,有 demo 更方便掌握。

最优状态值函数

v(s)=a=π(s)π(a|s)srp(s,r|s,a)[r+γv(s)]=maxasrp(s,r|s,a)[r+γv(s)]

最优状态值函数

qπ(s,a)=srp(s,r|s,a)[r+γa=π(s)π(a|s)qπ(s,a)]=srp(s,r|s,a)[r+γmaxaqπ(s,a)]

两种最优值函数的关系

v(s)=maxasrp(s,r|s,a)[r+γv(s)]=maxaEπ[Rt+1+γv(St+1)|St=s,At=a]=maxaEπ[Rt+1+γGt+1|St=s,At=a]=maxaEπ[Gt|St=s,At=a]v(s)=maxaA(s)qπ(s,a)

TDL

Temporal Difference Learning 差分学习

TD target :

yt=rt+γQ(st+1,at+1;w)=rt+γmaxaQ(st+1,a;w)

损失函数:

L=12[Q(w)y]2

梯度:

Lw=[Q(w)y]Q(w)w

梯度下降计算:

wt+1=wtαLtw|w=wt

算法流程

  1. Observe state St=st and perform action At=at
  2. Predict the value: qt=Q(st,at;wt)
  3. Differentiate the value network: dt=Q(st,at;w)w|w=wt
  4. Environment provides new state st+1 and reward rt
  5. Compute TD target: yt=rt+γmaxa𝑄(st+1,a;wt)
  6. Gradient descent: wt+1=wtα(qtyt)dt

值估计

Sarsa

State-Action-Reward-State-Action (SARSA)

使用 (st,at,rt,at+1) 更新 Qπ

表格

Tabular version

神经网络

Value network version

Q-Learning

表格

Tabular version

神经网络

DQN version

策略