强化学习(RL)学习笔记(一)MDP,V值,Q值

强化学习(RL)学习笔记(一)MDP,V值,Q值

本人在研究生阶段选择通过深度强化学习实现自动驾驶作为毕业项目,今后将分享一些在学习强化学习过程中的心得,还请各位大牛多多指教。学习过程中的参考文献及链接将附在每篇文章的结尾。

什么是强化学习

强化学习,就是使我们的智能体Agent获得独立自主的完成某项任务的能力。智能体学习和做出行动的地方,就是我们的环境。这些Agent在于环境互动的过程中,会因为不同的行为产生不同的奖励Reward,在与环境的不断交互中不断改进。

感知-行动-学习循环(perception-action-learning loop)在时间t时,Agent从环境中获得状态(state) St,Agent使用它的策略(Policy)来选择一个行动(Action)At, 当动作执行后,Agent会进入下一个状态St+1,提供下一个状态St+1以及奖励Reward形式的反馈Rt+1。 Agent使用State transition (st,at,st+1,rt+1) 来学习和改进Policy 如图,感知-行动-学习循环(perception-action-learning loop)在时间t时,Agent从环境中获得状态(state) St,Agent使用它的策略(Policy)来选择一个行动(Action)At, 当动作执行后,Agent会进入下一个状态St+1,提供下一个状态St+1以及奖励Reward形式的反馈Rt+1。 Agent使用State transition (st,at,st+1,rt+1) 来学习和改进Policy

Reward-driven behavior

如上一节所说,强化学习是一个 Agent 与周围环境不断交互来获得最优策略的过程,Reward就是Agent在采取每个Action获得的奖励。

Markov Decision Processes(MDP)

在这里插入图片描述

强化学习可以描述为一个Markov Decision Prcocess (MDP)过程:
1.一组状态states, S , 加上起始状态分布P(s0)
2.一组动作Action,A, Action的集合就是动作空间
3.Transition dynamics T(st+1| st, at) 将在时间 t 的 state-action pairs映射到 t+1时刻的State上
4.一个即时奖励 R(st, at, st+1)
5.discount factor γ ∈[0,1] ,较低的值强调即时奖励

需要特别注意的是:环境的特征可能有许多,但只有智能体能够观察到的特征才算是状态。所以我们也用Observation(观察的英文)表示状态

一般来说,MDP过程是从state 到 action的概率分布的映射(probablistic distribution) π : S -> p(A=a | S)。

RL的目标就是找到最优策略 π*,从所有states得到最大期望回报

                  π* = argmax π E[R|π]

一个MDP过程:
1.Agent进入环境,观察到状态(S)
2.S 被输入到Agent, 经过算法计算,选择Action
3.Action 使智能体进入另一个状态(S) 并返回Reward给Agent
4.根据Reward调整policy并重复上述步骤

RL算法

解决RL问题主要有两个方法,Value-based Function & Policy - based Search, 还有一种actor-critic方法,即使用价值函数,也是用政策搜索。

Value functions

Value function 基于对处于给定状态的值(expect return)的估计。
state-value函数 Vπ(s) 可以理解为评估state的价值它代表了智能体在这个状态state下,一直到最终状态的奖励总和的期望

                  Vπ(s) = E[R|s,π]

对于最优策略,π*

                  Vπ(s) = maxVπ(s)    ∀s∈S                    

由于再RL设置中不能使用transition dynamics T , 因此构造了另一个函数Q,即state-action value。 Qπ(s, a ),可以理解为评估动作的价值它代表了智能体选择这个动作action后,一直到最终状态奖励总和的期望。

              Qπ(s,a) = E[R|s,a,π]

给定Qπ(s,a),可以通过在每个状态中贪婪的选择一个a来找到最优策略: argmax_a Qπ(s,a)
Vπ(s) 可以通过最大化 Qπ(s,a) 找到:

	            Vπ(s) = max_a Qπ(s,a)

下图是Q值,V值以及之间的相互转换,图转自一位大佬
从Q到V在这里插入图片描述在这里插入图片描述
一个状态的V值就是这个状态下所有动作的Q值
从V到Q:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
折扣率:目的是将未来很多步的reward折算到当前节点,由于未来的奖励与当前的奖励不等价,所以人为给定一定的折扣率。
状态s处的Vπ(s) ,可以用后一个状态的Vπ(s‘)计算。但是下一个Vπ(s’)要用在下一个状态的V值计算,这应该怎么办呢?
这就是自举算法 Bootstrapping

为了实际学习Qπ,我们使用马尔可夫性质将上式定义为贝尔曼方程:
在这里插入图片描述Qπ 可以用boostrapping 改进。这是SARSA算法和Q-learning算法的基础。
SARSA (state-action-reward-state-action) Algorithm:
在这里插入图片描述α是learning rate, σ = Y - Qπ(st,at),时间差异(TD)误差 (temporal difference (TD) error)。Y是标准回归问题中的目标。 SARSA,一个on-policy的算法,通过行为策略产生的transitions来提高对Qπ的估计。Y= rt + γQπ(st+1,at+1)。
Q-learning是一个off-policy算法。Y= rt + γmax_aQπ(st+1,a)。Qπ不一定是由transition更新的,而是直接近似Q*。
回到boostrapping,之前我们得到的V值
在这里插入图片描述
在这个式子中,未知数只有值函数,所以需要解值函数的方程组,其未知数的个数为状态的总数。即,可得下式:
在这里插入图片描述
策略评估算法伪代码:
在这里插入图片描述
在每次迭代过程中都需要对状态集进行一次遍历,以便评估每个状态的值函数。计算每个值函数是为了找到最优策略,呢么如何利用值函数进行策略改进从而获得最优策略呢?
一个方法是已知当前策略的值函数时,在每个状态采用策略贪婪策略是对当前策略进行改进,
在这里插入图片描述
将策略评估算法和策略改进算法结合,我们就得到了策略迭代算法,如下
在这里插入图片描述
因此策略迭代算法包括策略评估和策略改进两个步骤,过程大致如下图。
在这里插入图片描述
值函数迭代算法:
在这里插入图片描述

Reference

1.Deep Reinforcement Learning: A Brief Survey
https://ieeexplore.ieee.org/abstract/document/8103164
2.https://zhuanlan.zhihu.com/p/109217883
3.https://zhuanlan.zhihu.com/p/25580624
4.https://omarsbrain.wordpress.com/2010/01/22/bootstrapping-and-artificial-intelligence/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值