赞
踩
感谢up主提供的学习视频:
【【强化学习的数学原理】课程:从零开始到透彻理解(完结)】
文章脉络:
直观理解:
根据以上策略写出所有的return值
矩阵表示:
这样就根据Bootstraping的一个例子求得到了向量v,上述v的公式也是一个简单的贝尔曼公式!
we define the mean of all possible returns starting from a state as the state value.
注意,他们都是随机变量,同时选定一个action后,获得的reward是记做Rt+1(和有些资料不同)。然后,可以定义discount return:Gt:
当确定一个状态s后,根据不同的action,有不同的return,然后就可以计算期望或平均:
随机性有两个来源:策略函数与状态转移函数。(大写字母表示随机变量)
注意,为什么Gt是个随机变量:Gt取决于未来很多步的奖励,当然具有随机性。
Rewrite the Bellman :
第一项可以理解成及时奖励的一个期望;第二项也是消去action,从s到s’的概率的期望(under policy
π),也就是说这个表达式是计算给定的一个策略下,对应的state value的值,因此计算state value也可以评价当前策略好还是不好。紧接着:
解析解:
迭代法求解:
以下是一个简单例子。
对于每个状态都预定义了一个策略π,因此可以计算state和action value:
可以看到a3下的action value值是最大的,因此可以改进原有策略(在s1下选择a2),选择a3为动作。注意,这里s2,s3情况下的策略是最优的,所有改进策略一定是有效的,但可以证明,无论后面的策略是否最优,都可以经过action value的迭代最终达到最优策略。
For any equation that has the form of x = f(x) where x and f(x) are real vectors, if f is a contraction mapping, then
因此根据Contraction mapping theorem可以得到迭代求解算法可写作:
贝尔曼最优公式就是满足Contraction Mapping(证明略)
举个例子如下:
先根据初始状态的vk和策略计算q table,然后由argmax得到下一个策略π*,根据上面的公式计算得到vk+1,然后计算
(注意,上面的π表示策略,相当于是s1下只会选择动作ar,概率值为1)
然后继续迭代:
最终的策略会成为:
贝尔曼最优公式是一个特殊的贝尔曼公式
decompose every iteration into two steps:
其中,
v
k
(
s
′
)
v_k(s')
vk(s′)的意思是从状态s下采用动作a时到达的状态记做s’。
定理:(证明见书)
定理说明了
π
k
+
1
π_{k+1}
πk+1 is better than
π
k
π_k
πk
在实际应用中,选择策略迭代还是值迭代取决于问题的复杂性、计算资源和收敛速度的要求。通常情况下,值迭代更适合在状态空间较小且计算资源有限的情况下使用,而策略迭代适用于状态空间较大且计算资源较充足的情况。
在上图中,Value iteration直接求得了v1的值,而在Policy iteration需要迭代无穷多步才收敛到v1,将Policy iteration的value update公式按迭代次数写出来如下:
而Truncated policy iteration算法就是取其中的一步的v值,作为v1的值!
2023年8月2日15:43:26
一句话解释,就是基于大数定律。而Model-based很多是需要模型的具体设置的,比如转移概率、概率分布等。例如在 policy improvement中:
It can be seen from the above equation that
q
π
k
(
s
,
a
)
q_{πk}(s,a)
qπk(s,a) is the core.而上面的公式依赖于 system model {
p
(
r
∣
s
,
a
)
p(r|s,a)
p(r∣s,a),
p
(
s
′
∣
s
,
a
)
p(s'|s,a)
p(s′∣s,a)}.
采用MC算法计算
q
π
k
(
s
,
a
)
q_{πk}(s,a)
qπk(s,a)。
Suppose there are n episodes and denote the return of the ith episode as
g
(
i
)
(
s
,
a
)
g^{(i)} (s,a)
g(i)(s,a).
g
(
i
)
(
s
,
a
)
g^{(i)} (s,a)
g(i)(s,a)就是Gt的一个随机采样。 Then,
q
π
k
(
s
,
a
)
q_{πk}(s,a)
qπk(s,a) can be approximated as:
也就是说Model-free的方法就需要data,在RL中称之为Experience。
注意,在此算法中,直接计算得到了action value;而在policy iteration中是先计算state value然后计算得到action value。
例子:
由于这里的策略和环境转移都是确定的,因此只需要采样一次就能确定
q
π
k
(
s
,
a
)
q_{πk}(s,a)
qπk(s,a)的值,这里拿s
1举例计算:
关于 Episode length的设置,理论上应该是无穷大的(agent到达目标点后选择action为不动),但实际中需要一个确切的值,值越大越接近最优的策略,此时对应的state value也是最终的值。当 Episode length从1开始增大时,会发现以target目标点为中心扩大,附近的策略会依次变好。
为了避免一个eposide的数据只利用一次(从哪个(s,a)pair出发就只计算该sa的action value)造成的数据利用不高效的问题,采用类似截断的方法,对此eposide中间的(s,a)pair进行计算。如下图所示:
伪代码:
注意,t是反着计算的,有利于直接利用r+γGt的公式计算得到前面的Return值。
但这种方法无法保证截断后拿去计算的eposide是最优的,是否漏掉最优的action。It requires generating sufficiently many episodes starting from every state-action pair.
最重要的是在MC Basic or MC Exploring Starts算法中,都需要从每个(s,a)pair出发得到一个eposide,这被称之为Exploring Starts条件。
前面采用的都是greedy的策略,因此结果一定是determinal,而后面的ε-greedy是stochastic的策略,也是属于soft policy。A policy is soft if the policy has a positive probability to take any action at any state.这也就弥补了前面两个算法可能不能找到所有sa pair的缺点,并且不用满足Exploring Starts条件,因为由于随机性的策略,一条trajectory基本会覆盖所有的sa pair。
|A(s)| denotes the number of actions associated with s。此公式可以保证greedy action一定会大于other action。
在之前的MC Basic or MC Exploring Starts算法中:(where Π denotes the set of all possible policies.)
而在本算法中改成了:(Πε denotes the set of all ε-greedy policies with a fixed value of ε)
注意,用every-visit strategy比较好一点。
在不同ε设置下,观察action value的值:
注意两个结论或者说现象:
关于求平均,之前是采用下面的公式:
它的问题在于每次都要重新求和,因此下面推导出一种增量式的算法(迭代):令
Furthermore, consider an algorithm with a more general expression:
Iterative mean estimation是一个特殊的RM算法!(证明见下)
关于求解方程 g ( w ) = 0 g(w)=0 g(w)=0,此时我们不知道g(w)的具体表达式,如果有一个神经网络可以拟合g(w),我们可以将输入w看做方程的解,输出y需要等于0!!
(ak is selected to be ak = 1/k)
很显然
a
k
a_k
ak满足这样的条件。
Application to mean estimation:
在不知道X的统计特性下,求解w的值!
注意,这里
g
(
w
,
η
)
g(w,η)
g(w,η)的推导后面直接把g(w)=0代入,然后只剩个η!!于是代入RM算法公式,即推导出了mean estimation公式。
考虑下面的优化问题:(X是一个随机变量)
采用梯度下降的方法求解优化问题:
然而, the distribution is often unknown in practice.
利用蒙特卡洛方法的思想,将GD算法中的期望改成采样求平均值,于是得到:
The problem of the BGD algorithm in is that it requires all the samples in each iteration.
可以看做是BGD算法中的n=1的情况下得到SGD算法,相当于只采样一次。
注意,这里原本
f
(
)
f()
f()里面的X改成了一次采样值
x
k
x_k
xk
SGD也是一种特殊RM算法!证明如下,以求mean estimation的列子说明:
有以下结论:(具体证明见书上)
δ表示 relative error between the stochastic and batch gradients:
前面介绍的SGD中都包含一个随机变量在里面,One may often encounter a deterministic formulation of SGD without involving any random variables.该优化问题可以写成:
注意,这里的xi是一组数的集合,并不涉及随机变量。然后使用GD算法求解:
若此时只取一个值,得到:
思考:这个算法是不是SGD呢?抽取的这个值是按某种顺序拿还是随机取呢?能不能重复拿呢
强行引入一个随机变量X:
此时就能使用SGD算法了,刚好就是对应前面的算法公式!同时,xi的抽取是需要满足在这个取值集合里面均匀分布的,因此是可能抽取多次的。
其中,Ik is a subset of {1,…,n} with the size as |Ik | = m.
注意:
收敛性展示:
可以看到,mBGD中的m值越大,收敛速度越快,但SGD依旧可以收敛的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。