Reinforcement Learning

强化学习理论及算法推导

2018-05-03  本文已影响127人  yang_young

理论的介绍

假如我们在种一个盆栽,那么定期浇水,晒太阳,松土壤等,在经过一段时间的悉心照料后,盆栽长出来或者没变化(或者早就夭折了,只是我们不知道而已)假若盆栽长很好看的花来的话会得到奖赏,那么我们在照顾盆栽时,采取一系列动作时我们并不知道这样做是对是错,因为没有任何的奖赏说明。(盆栽还没长出来,甚至我们还得定一个时间,如果还没长出来那就是死了)所以我们就需要不断去栽种很多很多相同的盆栽,通过固定变量法来确定啥时候浇水效果最好,什么时候浇水会浇死盆栽,或者确定一次浇多少比较合适。通过不断地试验中学习到经验,总结出好的种瓜策略,这个过程抽象出来就是强化学习

基本的表示:

通常强化学习任务一般都会用马尔科夫决策过程(MDP, Markov Decision Process)描述,机器处于一个环境E中,状态空间为X,其中每一个状态都是对环境的描述,可以表示为x,形象化就是指盆栽的生长情况,有没有掉叶子,叶子颜色的环境特征描述等。同时还假设了一个动作空间A(这个可以无限也可以有限,比如浇水的量用ml单位去计量你的动作,可以浇1.1ml,1.11ml,1.111ml无限且连续的动作,如果用一个小杯子的量作为计量就好一些,可以根据先验确定上限毕竟不可能浇100杯水,那么选择就是有限的离散的。)这时就可以通过马尔科夫的概念,也就是我们当前的状态只和上一个状态有关,故而当我们采取每一个动作a都有可能触发一定的转移概率,也就是p(x1->x2|a)意义就是采取a动作的情况下,由状态x1转移到x2的概率。同时通过设定一个Reward奖赏函数来确定跳转到这个状态的奖赏,然后记录下来。

总结来说,强化学习对应了一个四元组<X,A,P,R>,而我们的目的是根据这个四元组得到一个很好地策略π,需要求的主要是转移概率,奖赏函数。(基本上都不会给)

目标: 策略π

求得策略之后,只要代入当前的环境状态x,就可以得到动作a=π(x),而一般我们训练出来的模型我们更倾向于让π映射到选择a动作的概率上或者分数,也就是说p(a)=π(x,a)(也可以称为Q值函数)。

策略的优劣判别:

只要一段时间内一直执行某一策略就可以得到累计的奖赏,比如执行其中一个策略一段时间后能让盆栽长出花来,那么肯定这个策略在这些策略里最好(这依然是一个近似最优的可行解)。为什么不去计算一步的奖赏,很明显仅仅一步很可能你无法收到收益,或者你买股票可能当前你收益比较少甚至亏损,但之后的收益可能会呈指数上涨,也就是一步步的贪婪算法是无法用的,所以这里常用的是T步奖赏,和γ折扣累积奖赏。(都得设定超参数,既然将其假设为马尔科夫决策过程,是否是可以通过dp算法进行计算?答案当然是可以,后面正是用dp来计算相应的值函数,然后再计算最优的策略)

K-摇臂赌博机问题探讨:(开胃小菜)

* 有模型的强化学习 (前菜)

训练目标的前提是: 获得策略的评价函数(根据最优化评价函数来训练出最优的策略)

1. 评价策略函数:

通过设定一个状态值函数Vπ,T(x),表征的是根据π的策略在x的初始状态下进行T步之后得到的平均奖赏。当然这个是可以进行展开的,也就是可以从V0(x)开始不断遍历所有的情况然后达到Vt(x),那么我们进行T次迭代或者当Vt(x)=Vt-1(x)时之后我们就能得到这么一个Vt(x),然后通过取π*来最大化Vt(x),x∈X。但是这么一个评价策略函数没法直接优化。如果你是从一大堆决策中找最优,可以简单的直接代入计算比较评估即可,但是想要直接最优化不太好理解,所以这时我们再引入定义一个状态-动作值函数Qπ,T(x,a),表示在初始化状态为x下,采用动作a之后,T-1步得到的平均奖赏。这样就可以通过这个函数Q值的大小得到一个π(x)=a,这个a能使得Q值函数最大,当然也可以通过softmax(Q函数)得到在x状态下采用a动作的概率。可见状态-动作值函数是和我们要求的最优策略函数π函数是一致的。

2. 优化策略函数:

上述也提到的Q函数,只要通过优化a使得Q函数大于V(x),这样就可以接受这个优化a,反之如果怎么找都找不到这样的优化a那么结束迭代,这时候的Q函数(也即策略函数)是达到了最优的状态。同时我们也可以看到我们也可以看到在评估策略函数和优化策略是可以同时进行的过程中可以直接对a进行优化,既然这是马尔科夫,那么我们每一步计算值函数的时候不再用全概率展开的方式,即遍历所有的情况,我们只需要在每一步都对π函数优化目标最大化V(x)即可。直到最后的T+1步奖赏和T步奖赏相近,停止迭代。

* 无模型的强化学习:(正餐)

同策略MC强化学习算法:

  1. 通过采用更新好的e-策略π来多次采样得到的一条轨迹。然后求和平均就可以得到Q函数。

  2. 对于现在的状态更新策略π使得值函数Q最大。

  3. 循环N次

异策略的MC强化学习算法:

时序差分学习:

更新公式的推导过程:(因为简书不支持公式,只能自己写了)

image.png

状态为连续值问题 (甜点)

----end-----
简书不能编公式,就尽量减少一些公式的编写。尽量口述原理,可能没公式推导会比较难对号入座去理解。希望读者能参考西瓜书来理解。水平有限,如果有什么错误的地方,敬请指正。

上一篇 下一篇

猜你喜欢

热点阅读