【笔记】强化学习的数学原理
分享一下学习这门课程时的笔记
$\S 1$ 基本概念
State: 智能体的状态。State space: $S={si}^9{i=1}$.
Action: 可进行的动作。Action space of a state: 与 $si$有关的集合。$A(s_i)={a_k}^5{k=1}$.
State transition: 进行动作后,智能体从一个状态转移到另一个状态的过程。State transition probability: $p(s_i|s_j,a_k)=\text{prob}$.
Policy: 指导智能体在某一状态下采取某一措施。数学表示:条件概率 $\pi(a_i|s_j)=\text{prob}.$
Reward: 在做出一个动作后得到的一个标量。正为鼓励,负为惩罚。数学表示 $p(r=c|s_i,a_j)=\text{prob}.$
Trajectory: 一条 state-action-reward 链。
Return: 一条路径的reward的和。
Discounted rate: $\gamma \in (0,1)$, discounted return = $\sum_{i=0}^{\infty}\gamma^ir_i$,$\gamma$ 越小,智能体越近视,反之越远视。
Episode: 从开始到结束的trajectory。
到达目标后如何停下来?将目标状态视为一种一般状态并制定一种策略,使得智能体仍可离开目标状态,并在进入目标状态时获得$r = +1$的奖励。我们无需将目标状态与其他状态区分开来,可将其视为一种正常状态。
Markov decision process (MDP)
MDP的要素:
- 集合(Sets): State$S$, Action$A(s)$, Reward$R(s,a)$
概率分布(Probability distribution):
状态转移概率(State transition probability): 在state $s$, 选择action $a$, 转移到state $s’$ 的概率记为$p(s’|s,a)$.
奖励概率(Reward probability): 在state $s$, 选择action $a$, 得到奖励 $r$ 的概率记为 $p(r|s, a)$.
- 策略(Poicy): 在state$s$,选择action $a$ 的可能性$\pi(a|s)$.
MDP性质:memoryless property 与历史无关
当Policy确定时,马尔科夫随机过程变成马尔科夫过程。
$\S 2$ 贝尔曼公式
计算return的方法
使用$v_i$表示从$s_i$出发的return。
例:

直接用定义计算:
使用Bootstrapping(自举法):
将上式转化成矩阵形式:
化简得到贝尔曼公式的特殊形式:
求解:
核心思想:一个状态的value依赖其它状态的value。
State value
首先引入一些符号:
单步过程分析
考虑以下单步过程:
关键要素
- 时间点:
$t, t + 1$ 为离散时间点 - 状态:
$S_t$ 表示 $t$ 时刻的状态 - 动作:
$A_t$ 表示在状态 $S_t$ 下采取的动作 - 奖励:
$R_{t + 1}$ 表示采取动作 $A_t$ 后获得的即时奖励 - 转移状态:
$S_{t + 1}$ 表示执行动作 $A_t$ 后转移到的下一状态
注意:$St$、$A_t$、$R{t + 1}$ 均为随机变量。
概率控制模型
该过程由以下概率分布控制:
- 策略函数: $\pi(A_t = a \mid S_t = s)$ 控制从状态 $S_t$ 选择动作 $A_t$ 的策略
- 奖励函数:$p(R{t + 1} = r \mid S_t = s, A_t = a)$ 控制状态-动作对 $(S_t, A_t)$ 生成奖励 $R{t + 1}$ 的概率
- 状态转移函数:$p(S{t + 1} = s’ \mid S_t = s, A_t = a)$控制从 $(S_t, A_t)$ 转移到下一状态 $S{t + 1}$ 的动态特性
假设:当前已知所有概率分布(即已知模型)。
多步动态过程可表示为:
折扣回报 $G_t$ 的定义:未来奖励的加权和
$G_t$ 也是随机变量。
State value 的定义: $G_t$的期望
说明:
与策略有关,不同的策略有不同的state value。
return与state value 的区别和联系是:return 针对单个trajectory,而state value针对多个可能的trajectory的return再求平均值。
贝尔曼公式的推导
贝尔曼公式描述了不同状态的state value 之间的关系。
最后一行即为贝尔曼公式。
贝尔曼公式的矩阵—向量形式
贝尔贝尔曼公式对任意的$s \in S$都成立,这意味着我们有$|S|$个方程,这些方程可以组成线性方程组。
将贝尔曼公式写成如下形式:
其中
将所有的状态编号为$s_i(i=1,…,n)$
将所有这些状态方程组合在一起,并重写为矩阵-向量形式:
其中:
$v{\pi}=[v{\pi}(s{1}),…,v{\pi}(s_{n})]^{T}\in\mathbb{R}^{n}$,
$r{\pi}=[r{\pi}(s{1}),…,r{\pi}(s_{n})]^{T}\in\mathbb{R}^{n}$,
$P{\pi}\in\mathbb{R}^{n\times n}$,其中 $[P{\pi}]{ij}=p{\pi}(s{j}|s{i})$,是状态转移矩阵。
直观的例子
如果有4个状态:
贝尔曼公式的求解
可以直接求逆矩阵,但开销较大。
考虑迭代法:
从而得到数列${v_0,v_1,v_2,…}$,且有
Action value
State value:从某个state出发,智能体可以得到的平均return。
Action value:从某个state出发并选择某个action,智能体可以得到的平均return。
引入Action value是为了知道那个action更好。
Action value的定义:
性质:
$q_{\pi}(s,a)$是关于state-action对$(s,a)$的方程,且由$\pi$决定。
由于
我们得到:
之前推导的state value表达式为:
对比(1)(2),我们你可以得出action-value的方程:
(1)用来从action value推state value。
(3)用来从state value推action value。
总结
为什么需要状态值?因为需要评价一个策略的好坏。
怎么得到状态值?求解贝尔曼方程。
为什么要关注不被策略$\pi$选择的动作的价值?因为策略$\pi$不一定最好,我们要关注所有的动作,来探索更优的策略。
$\S 3$ 最优状态值与贝尔曼最优方程
引入
强化学习的最终目标:寻找最优策略。
本章的核心概念:最优状态值。基于最优状态值可以定义最优策略。
本章的核心工具:贝尔曼最优方程。可以用来求解最优状态值和最优策略。贝尔曼最优方程是一个特殊的贝尔曼方程。
最优策略(optimal policy)与最优状态值
定义:对于策略$\pi ^$,若对任意状态$s\in S$ 和其他任意的策略$\pi$,都有$v_{\pi^}(s)\ge v_{\pi}(s)$,那么$\pi ^*$是一个最优策略,且其对应的状态是是最优状态值。
贝尔曼最优方程(BOE)
表达式:
其中
这里 $v(s)$, $v\left(s^{\prime}\right)$ 是待求解的未知量;$\pi(s)$ 表示状态 $s$ 的策略;$\Pi(s)$ 是在状态 $s$ 所有可能策略的集合。
(持续更新中)