绪论
试错学习:
- 尝试:采取一系列动作或行为来尝试解决问题或实现目标。
- 错误:在尝试的过程中可能会出现错误,这些错误可能是环境的不确定性导致的,也可能是自身的不当行为导致的。
- 结果:每次尝试的后果,无论是积极的还是消极的,都会对下一次尝试产生影响。
- 学习:通过不断地尝试并出现错误,自身会逐渐积累经验,了解哪些动作或行为会产生有利的结果,从而在下一次尝试中做出更加明智的选择。
一次次的决策来实现目标,这个目标通常是以最大化累积的奖励来呈现的,这个过程就是序列决策过程,而强化学习就是解决序列决策问题的有效方法之一。
分类:基于价值的和基于策略梯度的算法
方向:
- 多智能体强化学习(MARL):非静态问题,信号问题,信誉分配问题,博弈场景
- 从数据中学习(从演示中学习):以模仿学习为代表的从专家数据中学习策略、以逆强化学习( inverse reinforcement learning,IRL )为代表的从人类数据中学习奖励函数和以及从人类反馈中学习(reinforcement learning from huamn feedback,RLHF)为代表的从人类标注的数据中学习奖励模型来进行微调(fine-tune)。此外,还包括离线强化学习(offline reinforce learning)、世界模型(world model)等等。
探索策略( exploration strategy ):常用的方法有 ϵ−greedy和置信上界( upper confidence bound,UCB )等等
实时环境( real-time environment ):离线强化学习( offline reinforcement learning ),世界模型( world model )
多任务强化学习( multi-task reinforcement learning ):联合训练( joint training )和分层强化学习( hierarchical reinforcement learning )、
马尔可夫决策过程
最大化累积的奖励:目标是使得在交互过程中得到的奖励之和r1+r2+⋯+rT尽可能最大,其中T表示当前交互过程中的最后一个时步,也就是最大步数,从 t=0 和 t+T 这一段时步我们称为一个回合( episode )。t=0 和 t+1之间和现实时间无关,取决于反馈所需时间。
马尔可夫性质
在给定历史状态s0,s1,⋯,st 的情况下,某个状态的未来只与当前状态st有关,与历史的状态无关。
P(st+1∣st)=P(st+1∣s0,s1,⋯,st)
回报
有限步数:
Gt=rt+rt+1+⋯+rT
持续性任务(T=∞):引入折扣因子γ∈[0,1]
Gt=Rt+1+γRt+2+γ2Rt+3+⋯=k=0∑∞γkRt+k+1
γ考虑未来奖励的重要程度,γ=0只会关心当前的奖励, γ接近 1 时,我们会对所有未来奖励都给予较高的关注度.
Gt≐Rt+1+γRt+2+γ2Rt+3+γ3Rt+4+⋯=Rt+1+γ(Rt+2+γRt+3+γ2Rt+4+⋯)=Rt+1+γGt+1
状态转移矩阵
大多数强化学习场景用的是有限状态马尔可夫决策过程
**马尔可夫链(Markov Chain)**用图表示马尔可夫决策过程中的状态流向而不包括动作、奖励等元素(离散时间的马尔可夫过程(Markov Process))
状态转移矩阵(同一个状态所有状态转移概率加起来是等于 1 的)
Pss′=⎝⎛p11p21⋮pn1p12p22⋮pn2⋯⋯⋱⋯p1np2n⋮pnn⎠⎞
状态转移矩阵是环境的一部分
马尔可夫链奖励马尔可夫奖励过程动作马尔可夫决策过程
五元组 <S,A,R,P,γ> 来表示马尔可夫决策过程:其中S表示状态空间,即所有状态的集合,A表示动作空间,R 表示奖励函数,P 表示状态转移矩阵,γ 表示折扣因子
习题2
1.强化学习所解决的问题一定要严格满足马尔可夫性质吗?请举例说明。
强化学习所解决的问题不一定要严格满足马尔可夫性质。例如一个强化学习的问题是在一个扑克牌游戏中赢得对手,那么这个问题就不满足马尔可夫性质,因为机器人在每一轮只能观察到自己的牌和公共的牌,而不能观察到对手的牌和之前的出牌顺序,而这些信息都会影响未来的状态和奖励。
2.马尔可夫决策过程主要包含哪些要素?
S状态空间,A动作空间,R 奖励函数,P 状态转移矩阵,γ 折扣因子
3.马尔可夫决策过程与金融科学中的马尔可夫链有什么区别与联系?
马尔可夫链(状态及其转移)奖励,动作马尔可夫决策过程<S,A,R,P,γ>
马尔可夫链是一种随机过程,它具有马尔可夫性质,即未来的状态只依赖于当前的状态,而与过去的状态和动作无关。马尔可夫链可以用一个状态空间S和一个状态转移概率矩阵P来描述,其中S是所有可能的状态的集合,P是一个S×S的矩阵,P[i,j]表示从状态i转移到状态j的概率。
马尔可夫决策过程是马尔可夫链的推广,它不仅考虑了状态的转移,还考虑了动作的选择和奖励的激励。在每个时间步,决策者可以在当前状态下选择一个动作,然后根据状态转移概率函数进入下一个状态,并获得一个即时奖励。马尔可夫决策过程的目标是找到一个最优策略,即在每个状态下选择一个最优动作,使得长期累积的奖励最大化。
动态规划
在强化学习中,动态规划被用于求解值函数和最优策略。常见的动态规划算法包括值迭代(Value Iteration)、策略迭代(Policy Iteration)和 Q-learning 算法等。
动态规划问题有三个性质,最优化原理、无后效性和有重叠子问题
最优化原理:
Gt=Rt+1+γGt+1
我们要解决Gt+1的问题,可以一次拆分成解决Gt,Gt−1,⋯,G1的问题
编程思想
m×n 网格到达终点的路径数目问题:确定状态,写出状态转移方程和寻找边界条件
机器人处于(i,j)的位置时,它的前一个坐标只能是上边一格(i,j-1)或者左边一格(i-1,j)
f(i,j)=f(i−1,j)+f(i,j−1)
考虑边界条件后:起始点 (0,0) 为0,第一行/列上的点为1
f(i,j)=⎩⎨⎧0,i=0,j=01,i=0,j=01,i=0,i=0f(i−1,j)+f(i,j−1)
def solve(m,n):
f = [[1] * n] + [[1] + [0] * (n - 1) for _ in range(m - 1)]
for i in range(1, m):
for j in range(1, n):
f[i][j] = f[i - 1][j] + f[i][j - 1]
return f[m - 1][n - 1]
==解释==
f = [[1] * n] + [[1] + [0] * (n - 1) for _ in range(m - 1)]
- 列表推导式,语法是
[表达式 for 变量 in 可迭代对象 if 条件],它可以根据一个已有的列表或其他可迭代对象来生成一个新的列表。
[[1] * n] 表示一个只有一个元素的列表,这个元素是一个包含 n 个 1 的列表,例如 [[1] * 3] 就是 [[1, 1, 1]]。
[[1] + [0] * (n - 1) for _ in range(m - 1)] 表示一个包含 m - 1 个元素的列表,每个元素都是一个包含 n 个元素的列表,其中第一个元素是 1,其余元素都是 0,例如 [[1] + [0] * (3 - 1) for _ in range(3 - 1)] 就是 [[1, 0, 0],[1, 0, 0]]。
+ 把两个列表合并成一个更长的列表。因此,这行代码的结果mxn矩阵,其中第一行和第一列都是 1,其余元素都是 0,例如 f = [[1] * 3] + [[1] + [0] * (3 - 1) for _ in range(2 - 1)] 就是 [[1, 1, 1], [1, 0, 0],[1, 0, 0]]。
状态价值函数和动作价值函数
奖励函数是下一次的奖励,价值函数是累计的奖励,都是预测一个期望
状态价值函数用于评估智能体进 入某个状态后,可以对后面的奖励带来多大的影响。价值函数值越大,说明智能体进入这个状态越有利。
状态价值函数(state-value function),从特定状态出发,按照某种策略π进行决策所能得到的回报Gt期望值,注意这里的回报是带有折扣因子γ的,越往后的奖励折扣越多。
折扣因子γ作用:避免无穷奖励,对未来的不确定而打个折扣,希望尽快奖励。(超参)
期望 Eπ 的下标是 π 函数,π 函数的值可反映在我们使用策略 π 的时候,到底可以得到多少奖励
Vπ(s)=Eπ[Rt+γRt+1+γ2Rt+2+⋯∣St=s]=Eπ[Gt∣St=s]
动作价值函数(action-value function):预测的奖励不仅考虑状态还考虑动作
Qπ(s,a)=Eπ[Gt∣st=s,at=a]
关系:给定状态s的情况下,智能体所有动作的价值期望(所有动作价值函数乘以对应动作的概率之和)就等于该状态的价值(全期望公式)
Vπ(s)=a∈A∑π(a∣s)Qπ(s,a)
π(a∣s)表示随机性策略函数,一般指在状态s下执行动作a的概率分布。比如可能是有 0.7 的概率往左,0.3 的概率往右,那么通过采样就可以得到智能体将采取的动作.
贝尔曼方程
满足动态规划的最优化原理,即将前后两个状态价值函数之间联系起来,以便于递归地解决问题。
贝尔曼方程(Bellman Equation)
状态价值函数:
Vπ(s)=Eπ[Gt∣St=s]=Eπ[Rt+1+γRt+2+γ2Rt+3+⋯∣St=s]=E[Rt+1∣st=s]+γE[Rt+2+γRt+3+γ2Rt+4+⋯∣St=s]=R(s)+γE[Gt+1∣St=s]=R(s)+γE[Vπ(st+1)∣St=s]=R(s)+γs′∈S∑P(St+1=s′∣St=s)Vπ(s′)=即时奖励R(s)+未来奖励的折扣总和γs′∈S∑p(s′∣s)V(s′)
动作价值函数:
Qπ(s,a)=R(s,a)+γs′∈S∑p(s′∣s,a)a′∈A∑π(a′∣s′)Qπ(s′,a′)
贝尔曼最优方程(Bellman optimality equation)
在最优策略下,状态价值函数也是最优的,相应的动作价值函数也最优。
最优策略下累积的回报最大化的状态价值函数可以表示为:
V∗(s)=amaxE[Rt+1+γV∗(St+1)∣St=s,At=a]=amaxs′,r∑p(s′,r∣s,a)[r+γV∗(s′)]
动作价值函数:
Q∗(s,a)=E[Rt+1+γa′maxQ∗(St+1,a′)∣St=s,At=a]=s′,r∑p(s′,r∣s,a)[r+γa′maxQ∗(s′,a′)]
策略和价值迭代
策略迭代比价值迭代收敛要快一些。因为其可以几乎不花时间在π和V之间跳跃从而越过中间可能存在的点V12′,V12′′,V12′′′.
习题2
1.动态规划问题的主要性质有哪些?
最优子结构性质:如果问题的最优解所包含的子问题的解也是最优的,我们就称该问题具有最优子结构性质。这意味着我们可以通过求解子问题的最优解,来构造原问题的最优解。
重叠子问题性质:如果在用递归算法自顶向下求解问题时,每次产生的子问题并不总是新问题,有些子问题会被重复计算多次,我们就称该问题具有重叠子问题性质。这意味着我们可以通过记忆化存储已经求解过的子问题的解,来避免重复计算,提高效率。
无后效性:如果某个状态一旦确定,就不受这个状态以后的决策的影响,我们就称该问题具有无后效性。这意味着我们可以只关注当前的状态,而不用考虑未来的状态。
2.状态价值函数和动作价值函数之间的关系是什么?
Vπ(s)=∑a∈Aπ(a∣s)Qπ(s,a)状态价值函数是所有可能动作的动作价值函数的期望
3.策略迭代和价值迭代哪个算法速度会更快?
策略迭代的优点是收敛速度较快,但是计算量较大,需要对整个状态空间进行遍历。价值迭代的优点是计算量较小,只需要一次迭代就可以进行策略改进,但是收敛速度较慢。