我们经常看到强化学习中有求汇报期望 E E E,转化为价值函数(value function) V V V,策略的状态价值函数(State-Value function) V π V_π Vπ和动作价值函数(action-value function) Q π Q_π Qπ。还有提到通过将期望将消除随机性,如北大教程中提到。这对概率论已经不作为主要学习课程的同学来说第一次看能没啥感觉,直观地看懂就行,但是深究推导过程就有点迷茫。这里我写点笔记。
定义
Discounted return (折扣回报):
U t = R t + γ R t + 1 + γ 2 R t + 2 + ⋯ + γ n − t R n ( 1 ) U_t = R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \cdots + \gamma^{n-t} R_n (1) Ut=Rt+γRt+1+γ2Rt+2+⋯+γn−tRn(1)
定义
价值函数(value function)
V ( s ) = E [ U t ∣ S t = s ] ( 2 ) V(s) = \mathbb{E}[U_t | S_t = s](2) V(s)=E[Ut∣St=s](2)
展开为:
V ( s ) = r ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) ( 3 ) V(s) = r(s) + \gamma \sum_{s' \in S} p(s'|s)V(s')(3) V(s)=r(s)+γs′∈S∑p(s′∣s)V(s′)(3)
大多数书本的eq(2)到eq(3)推导如下:
展开为
V ( s ) = E [ R t + γ R t + 1 + γ 2 R t + 2 + … ∣ S t = s ] V(s) = \mathbb{E}[R_t + \gamma R_{t+1} + \gamma^2 R_{t+2} + \ldots | S_t = s] V(s)=E[Rt+γRt+1+γ2Rt+2+…∣St=s]
进一步整理得
V ( s ) = E [ R t + γ ( R t + 1 + γ R t + 2 + … ) ∣ S t = s ] V(s) = \mathbb{E}[R_t + \gamma (R_{t+1} + \gamma R_{t+2} + \ldots )| S_t = s] V(s)=E[Rt+γ(Rt+1+γRt+2+…)∣St=s]
这可以看作即时奖励与未来折扣奖励之和的期望,即
V ( s ) = E [ R t + γ U t + 1 ∣ S t = s ] V(s) = \mathbb{E}[R_t + \gamma U_{t+1} | S_t = s] V(s)=E[Rt+γUt+1∣St=s]
将未来累积奖励的期望表示为价值函数,得
V ( s ) = E [ R t + γ V ( U t + 1 ) ∣ S t = s ] V(s) = \mathbb{E}[R_t + \gamma V(U_{t+1})| S_t = s] V(s)=E[Rt+γV(Ut+1)∣St=s]
在上式的最后一个等式中,一方面,即时奖励的期望正是奖励函数的输出,即
E [ R t ∣ U t = s ] = r ( s ) \mathbb{E}[R_t | U_t = s] = r(s) E[Rt∣Ut=s]=r(s)
另一方面,等式中剩余部分根据从状态 s s s出发的转移概率得到,即
V ( s ) = r ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) ( 4 ) V(s) = r(s) + \gamma \sum_{s' \in S} p(s'|s)V(s') (4) V(s)=r(s)+γ∑s′∈Sp(s′∣s)V(s′)(4)
一般不会给出
E [ γ V ( U t + 1 ) ∣ S t = s ] E[ \gamma V(U_{t+1})| S_t = s] E[γV(Ut+1)∣St=s] 到 r ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) r(s) + \gamma \sum_{s' \in S} p(s'|s)V(s') r(s)+γ∑s′∈Sp(s′∣s)V(s′)的过程,我们补充如下
首先,公式(2)中我们有:
V ( s ) = E [ R t + γ V ( S t + 1 ) ∣ S t = s ] V(s) = \mathbb{E}[R_t + \gamma V(S_{t+1})|S_t = s] V(s)=E[Rt+γV(St+1)∣St=s]
这个等式表示状态s的价值等于从该状态获得的即时奖励的期望,加上下一个状态的折扣价值的期望。
/
推导步骤如下:
-
首先,我们知道期望 E [ R t ∣ S t = s ] = r ( s ) \mathbb{E}[R_t|S_t = s] = r(s) E[Rt∣St=s]=r(s),即在状态s下的即时奖励期望就是奖励函数r(s)。
-
对于第二项 E [ γ V ( S t + 1 ) ∣ S t = s ] \mathbb{E}[\gamma V(S_{t+1})|S_t = s] E[γV(St+1)∣St=s],我们可以使用条件期望的定义展开:
E [ γ V ( S t + 1 ) ∣ S t = s ] = γ ∑ s ′ P ( S t + 1 = s ′ ∣ S t = s ) V ( s ′ ) \mathbb{E}[\gamma V(S_{t+1})|S_t = s] = \gamma\sum_{s'}\mathbb{P}(S_{t+1}=s'|S_t=s)V(s') E[γV(St+1)∣St=s]=γs′∑P(St+1=s′∣St=s)V(s′) -
而 P ( S t + 1 = s ′ ∣ S t = s ) \mathbb{P}(S_{t+1}=s'|S_t=s) P(St+1=s′∣St=s)正是从状态s转移到状态s’的转移概率,通常记为 p ( s ′ ∣ s ) p(s'|s) p(s′∣s)。
-
将这两部分结合起来:
V ( s ) = r ( s ) + γ ∑ s ′ ∈ S p ( s ′ ∣ s ) V ( s ′ ) V(s) = r(s) + \gamma\sum_{s'\in S}p(s'|s)V(s') V(s)=r(s)+γs′∈S∑p(s′∣s)V(s′)
这就得到了公式(4)。这也就是贝尔曼方程了,他的作用是进行动态规划,强化学习只是应用了贝尔曼方程和蒙特卡洛估计作为了理论基础。
/
/
回答一下为什么说消去了随机性,这里转换完后没有了大写的随机变量S而是转为具体的s所以认为是消除了随机性
这个等式是非常经典的贝尔曼方程(Bellman Equation),它表明一个状态的价值等于即时奖励加上所有可能的下一个状态的价值的加权和(权重是转移概率),并进行折扣。这个方程是强化学习中价值迭代、策略评估等算法的基础。
这里提一下经典的期望demo
这里提一下经典的期望demo方便初学者建立对应关系,由于这里用的是条件概率求期望,所以和本科课本的概率论上的对应关系不同,所以与如下的经典期望deno是不能直接对应:
期望的定义式
数学期望的定义根据随机变量的类型有两种主要形式:
离散型随机变量的期望定义
对于离散型随机变量 X,其期望定义为:
E [ X ] = ∑ i x i P ( X = x i ) E[X] = \sum_{i} x_i P(X = x_i) E[X]=i∑xiP(X=xi)
其中 x i x_i xi 是随机变量可能的取值, P ( X = x i ) P(X = x_i) P(X=xi) 是随机变量取该值的概率。
连续型随机变量的期望定义
对于连续型随机变量 X,其期望定义为:
E [ X ] = ∫ − ∞ ∞ x f ( x ) d x E[X] = \int_{-\infty}^{\infty} x f(x) dx E[X]=∫−∞∞xf(x)dx
其中 f ( x ) f(x) f(x) 是随机变量的概率密度函数。
离散型随机变量的例子
例子1:掷骰子
掷一个标准六面骰子,随机变量 X 表示骰子的点数。
可能的取值: x 1 = 1 , x 2 = 2 , x 3 = 3 , x 4 = 4 , x 5 = 5 , x 6 = 6 x_1 = 1, x_2 = 2, x_3 = 3, x_4 = 4, x_5 = 5, x_6 = 6 x1=1,x2=2,x3=3,x4=4,x5=5,x6=6
每个取值的概率: P ( X = x i ) = 1 / 6 P(X = x_i) = 1/6 P(X=xi)=1/6 (对所有 i = 1 , 2 , . . . , 6 i = 1, 2, ..., 6 i=1,2,...,6)
根据期望的定义式:
E [ X ] = ∑ i = 1 6 x i P ( X = x i ) = 1 × 1 6 + 2 × 1 6 + 3 × 1 6 + 4 × 1 6 + 5 × 1 6 + 6 × 1 6 = 21 6 = 3.5 E[X] = \sum_{i=1}^{6} x_i P(X = x_i) = 1 \times \frac{1}{6} + 2 \times \frac{1}{6} + 3 \times \frac{1}{6} + 4 \times \frac{1}{6} + 5 \times \frac{1}{6} + 6 \times \frac{1}{6} = \frac{21}{6} = 3.5 E[X]=i=1∑6xiP(X=xi)=1×61+2×61+3×61+4×61+5×61+6×61=621=3.5
但是在马尔科夫的推导过程中使用的是条件概率,所以对应起来需要转个弯
比如
V ( s ) = r ( s ) + E [ γ V ( S t + 1 ) ∣ S t = s ] V(s) = r(s) + \mathbb{E}[ \gamma V(S_{t+1})|S_t = s] V(s)=r(s)+E[γV(St+1)∣St=s]
中的
E [ γ V ( S t + 1 ) ∣ S t = s ] \mathbb{E}[ \gamma V(S_{t+1})|S_t = s] E[γV(St+1)∣St=s]
其整个 [ γ V ( S t + 1 ) ∣ S t = s ] [ \gamma V(S_{t+1})|S_t = s] [γV(St+1)∣St=s]对应 E [ X ] E[X] E[X]中的变量X(具体说应该是大写状态变量S)
其条件概率 P ( S t + 1 = s ′ ∣ S t = s ) \mathbb{P}(S_{t+1}=s'|S_t=s) P(St+1=s′∣St=s)对应 P ( X = x i ) = 1 / 6 P(X = x_i) = 1/6 P(X=xi)=1/6
其状态价值 V ( s ′ ) V(s') V(s′)对应具体的可能取值 x 1 = 1 , x 2 = 2 , x 3 = 3 , x 4 = 4 , x 5 = 5 , x 6 = 6 x_1 = 1, x_2 = 2, x_3 = 3, x_4 = 4, x_5 = 5, x_6 = 6 x1=1,x2=2,x3=3,x4=4,x5=5,x6=6
数学期望(Expected Value)是概率论和统计学中的核心概念,表示随机变量在理论上的长期平均值。它反映了随机事件在大量重复试验中可能呈现的平均结果,是概率加权的平均值(这句话我觉得是本质)。
从价值函数推导到策略的状态价值函数(State-Value function) V π V_π Vπ和动作价值函数(action-value function) Q π Q_π Qπ的过程在动手学强化学习或者北大强化学习中已经比较