强化学习-学习笔记

这个学习笔记和一般的强化学习的略有不同:不同于其他蛮多从现实出发举例子然后定义问题,本文选择从Bellman Equation 出发,然后偏数学的定义一个我们要解的最佳化问题,然后通过要怎么找到这个问题的解来引入一系列强化学习中常有的算法,稍微大概了解感性上的了解强化学习以后再看这一篇也许会对读者有一点帮助吧!

问题的定义

最佳化问题

强化学习,从某种程度上来说,是在解这样的一个问题:

max{xt}t=0subject tot=0βtF(xt,xt+1)xt+1Γ(xt)  tx0   given max { x t } t = 0 ∞ ∑ t = 0 ∞ β t F ( x t , x t + 1 ) subject to x t + 1 ∈ Γ ( x t )     ∀ t x 0       given

就是给定了函数 F F x0,你需要找到 x1,x2,... x 1 , x 2 , . . . 使得 t=0βtF(xt,xt+1) ∑ t = 0 ∞ β t F ( x t , x t + 1 ) (下面称为式子 [] [ ∗ ] )最大,并且有限制如下: xt+1 x t + 1 是从 Γ(xt) Γ ( x t ) 中选(请注意是 Γ(xt) Γ ( x t ) 而不是 Γ(xt,xt1,...,x0) Γ ( x t , x t − 1 , . . . , x 0 ) !这意味着什么呢?)

那对应到强化学习的术语中,我们可以将这里的 xt x t 看成是时间 t t 时候的state,那我们相当于给定初始的状态,选择下一个状态以及下一个(强化学习中选择下一个状态大概相当于要选择一个action然后到下一个状态)。可以将F 看作是reward function :即从这个状态选择到下个状态,你会得到的reward

那如果你对这样的描述没有问题,我想你对强化学习的困惑应该已经少掉些了,因为这个问题显然是有解的,我只要遍历所有的可能就好啦!那显然这样不够有效率(但至少代表你可以解!)

递归问题

要如何从 [] [ ∗ ] 变到我们熟悉的强化学习的问题呢?恩,

V(x0):=max{x1,x2,...}t=0βtF(xt,xt+1) V ∗ ( x 0 ) := max { x 1 , x 2 , . . . } ∑ t = 0 ∞ β t F ( x t , x t + 1 )

为了方便期间,我用
Sk=maxxkt=kβtF(xt,xt+1) S k = max x k ∑ t = k ∞ β t F ( x t , x t + 1 )

如果假设我们现在已经选择了 x1 x 1 ,那么

V(x0)=max{x2,x3,...}t=0βtF(xt,xt+1)=F(x0,x1)+maxxtt=1βtF(xt,xt+1)=F(x0,x1)+maxxtt=1ββt1F(xt,xt+1)=F(x0,x1)+βmaxxtt=1βt1F(xt,xt+1)=F(x0,x1)+βmaxxtt=0βtF(xt,xt+1)=F(x0,x1)+βV(x1) V ∗ ( x 0 ) = max { x 2 , x 3 , . . . } ∑ t = 0 ∞ β t F ( x t , x t + 1 ) = F ( x 0 , x 1 ) + max x t ∑ t = 1 ∞ β t F ( x t , x t + 1 ) = F ( x 0 , x 1 ) + max x t ∑ t = 1 ∞ β β t − 1 F ( x t , x t + 1 ) = F ( x 0 , x 1 ) + β max x t ∑ t = 1 ∞ β t − 1 F ( x t , x t + 1 ) = F ( x 0 , x 1 ) + β max x t ∑ t = 0 ∞ β t F ( x t , x t + 1 ) = F ( x 0 , x 1 ) + β V ∗ ( x 1 )

Finite Markov Decision Processes

找到问题的解

数学方法

好,我们现在已经把前面的问题转化为以下的问题了:

V(x)=subject tomaxx,yF(x,y)+βV(y)yΓ(x)   V ( x ) = max x , y F ( x , y ) + β V ( y ) subject to y ∈ Γ ( x )    

那么要怎么解这个问题呢?这看起来虽然简单,但好像对于求解这个
我从这里看到的方法(略去了很多关于VF 的假设)
我们

T(f)(x)=maxx,yF(x,y)+βf(y) T ( f ) ( x ) = max x , y F ( x , y ) + β f ( y )

注意 T T 是一个函数,但是他的自变量不是x 而是 f f ,即
所以呢,我们要解的是一个不动点的问题,
g(x)=x

在这边,由于函数是 T T (对应的g)自变量是 f f (对应着上式的x),则我们
T(f)(x)=f T ( f ) ( x ) = f


f(x)=T(f)(x)=maxx,yF(x,y)+βf(y) f ( x ) = T ( f ) ( x ) = max x , y F ( x , y ) + β f ( y )

这就回到了式子,那么问题来了,要怎么解这个不动点的问题呢?
fn+1(x)=T(fn)(x) f n + 1 ( x ) = T ( f n ) ( x )

之所以可以这么做的原因是
g(x)=x g ( x ) = x

设解是 x x ∗ 那么就有
g(x)=x g ( x ∗ ) = x ∗

d=|xn+1x||xnx| d = | x n + 1 − x ∗ | − | x n − x ∗ |

我们就像看 xn+1 x n + 1 是不是比 xn x n 更接近正确答案 x x ∗ 呢?
我们有的条件是 g(x)=x g ( x ∗ ) = x ∗ 以及 xn+1=g(xn) x n + 1 = g ( x n ) ,代入 d d
d=|g(xn)g(x)||xnx|

那我们要看 d d 是否大于0,则相当于看
|g(xn)g(x)||xnx|

是否大于1(这也是可以使用这个方法的前提!换句话说这是对 V V <script type="math/tex" id="MathJax-Element-45">V</script> 的要求)

表格方法

蒙地卡罗

TD学习

Value function的逼近

policy gradient

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值