强化学习Reinforcement Learning|Q值和V值|MC|TD
目录
(一)蒙特卡罗方法(Monte Carlo Sampling(1947),简称MC)
(二)时序差分方法( temporal-difference,简称TD)
一、前言
人工智能 = 深度学习 + 强化学习 ----David Silver
随着深度神经网络的兴起,强化学习这一领域也获得了蓬勃的发展。强化学习是机器学习领域除有监督学习、无监督学习以外的另一个学习分支,它主要利用智能体与环境交互,从而学习到能获得良好结果的策略。
举个简单的例子,扫地机器人打开开关后,不需要人类告诉机器人哪里有灰尘,哪里有垃圾,自己就会去清理了。这就是我们希望用强化学习的方式,使扫地机器人获得独立自主地完成某种任务的能力。
(一)下面介绍几个强化学习中会用到的几个概念:
1、智能体(Agent):就是具有感知和决策能力的对象。
2、环境(Environment):☞能受到智能体的动作而产生影响,并给出相应反馈的外界环境的总和,智能体学习和工作的地方。
3、状态(s):反映了环境的状态特征,所有的有限状态构成了状态空间S。
4、动作(a):智能体根据策略所采取的行动,所有的有限动作构成了动作空间A。
5、策略():代表了智能体的决策模型,接受输入为状态s,并给出决策后执行动作的概率分布。
6、奖励(r):表示环境在状态s时接受动作a后给出的反馈。反馈并不是完全正面的,也有负面。当奖励可以是正数,表示鼓励当前的行为;如果是负数负数,表示惩罚这种行为。当然也可以是0。 而奖励值的大小,表示鼓励的和惩罚的力度不同。
注意,奖励的设定是主观的,也就是说我们为了智能体更好地学习工作,自己设定奖励函数。
(二)智能体与环境交互的过程如图1所示,
(三)强化学习算法主要如下,
二、强化学习RL的不确定性
1、智能体的行动选择(策略)的不确定性。智能体“选择”会影响到下一个状态。比如state/observation一样,agent对于action的选择也可能不同,这种不同动作之间的选择,我们称为智能体的策略。策略我们一般用表示。我们的任务就是找到一个策略,能够获得最多的奖励。
2、环境的不确定性。这是智能体无法控制的,比如action一样但反馈回来新的state/observation或reward也可能有所不同。但马尔科夫链允许我们有不确定性的存在。
三、Q值和V值
强化学习在更多的时候,我们并不能单纯通过奖励(r)来衡量一个动作的好坏。我们必须用长远的眼光来看待问题。我们要把未来的奖励也计算到当前状态下,再进行决策。
举例,就好比下棋,前期布局当中某一步的效果reward,并不能直接反应出它的作用,再如中局弃子可能会使得当前reward为负,但是或许可以带来未来更大的胜利!
评估动作的价值,我们称为Q值:它代表了智能体选择这个动作后,一直到最终状态奖励总和的期望;
评估状态的价值,我们称为V值:它代表了智能体在这个状态下,一直到最终状态的奖励总和的期望。
价值越高,表示我从当前状态到最终状态能获得的平均奖励将会越高。因为智能体的目标数是获取尽可能多的奖励,所以智能体在当前状态,只需要选择价值高的动作就可以了。
1、 V值
- 我们从S点出发,并影分身出若干个自己;
- 每个分身按照当前的策略 选择行为;
- 每个分身一直走到最终状态,并计算一路上获得的所有奖励总和;
- 我们计算每个影分身获得的平均值,这个平均值就是我们要求的V值。
总结就是:从某个状态,按照策略,走到最终状态很多很多次;最终获得奖励总和的平均值,就是V值。
Q值和V值的概念是一致的,都是衡量在马可科夫树上某一个节点的价值。只不过V值衡量的是状态节点的价值,而Q值衡量的是动作节点的价值。
2、Q值
- 我们就可以从A这个节点出发,使用影分身之术;
- 每个影分身走到最终状态,并记录所获得的奖励;
- 求取所有影分身获得奖励的平均值,这个平均值就是我们需要求的Q值。
总结就是:从某个状态选取动作A,走到最终状态很多很多次;最终获得奖励总和的平均值,就是Q值。
与V值不同,Q值和策略并没有直接相关,而与环境的状态转移概率p相关,而环境的状态转移概率是不变的。
3、综上,我们可以知道Q值和V值的意义相通的:
(1)都是马尔科夫树上的节点;
(2)价值评价的方式是一样的:
它们都是从当前节点出发 - 一直走到最终节点(terminal node) - 然后求得所有的奖励的期望值。
总结一下,V值其实就是子节点的Q的期望值,只不过要注意的是V值是直接和策略相关的;而Q值其实就是子节点的V值的期望值,但要注意的是,在计算Q值时,需要把R计算在内。
四、蒙特卡罗方法和时序差分方法
在前面我们也讲过,强化学习需要最大化最后的总收益,总收益分别可以用Q值和V值体现,这两个均是属于值函数,那么如何估计值函数呢?
很明显,蒙特卡洛和时序差分就是两种估计值函数的方法,既可以估计Q值,也可以估计V值。
首先,在这里引入折扣率/折现系数(gamma)的概念,折扣率在强化学习中属于超参数,由人为主观指定,举一个简单的例子,在金融学中的贴现率,我们计算价值目的是要把未来的很多步奖励折算到当前结点的价值。事实上真的是未来n步的奖励与当前的奖励未必一定等价,所以认为的引入一个超参数,给未来的奖励一定的折扣,折算到当前的价值。
(一)蒙特卡罗方法(Monte Carlo Sampling(1947),简称MC)
1、MC估计的算法
算法:使用MC估计V值
1:把智能体agent放到环境的任意状态s0
2:从当前状态s0开始按照策略pi选择动作action,并进入新的状态s1
3:重复步骤2,直到到达terminal状态为止,若无终止状态可通过设置让其停止
4:从最后的状态开始向前回溯,分别计算每个状态对应的G值
5:重复1-4多次,把每个状态对用的多个G值求平均即可求得V值
2、G和V的关系
G = rt + gamma * rt-1 + gamma ^ 2 * r t - 2...
上述即为计算回报G的公式,可想而知,G就是指在某条路径上从状态s到最终状态的总收益,那么V值代表的是什么呢?
V值指的是智能体在当前状态下达到最终状态(terminal state)的回报的期望值,也就是说某状态下V值就是多个G值的平均值。
3、估算V值的公式
新平均 = 旧平均 + 步长 * (新加入元素 - 旧平均)
故使用MC更新V值的公式可以写为
其中,为学习率,决定每次更新的幅度,是一个超参数;
则作为新来的目标,使得V值不断向G值靠近。
4、V和策略
相关
分别如图5,6所示,解释一下为什么前面说的V要和策略pi相关,
上述分别给出策略1和策略2每种回报路线的占比,控制每条路径对应的总回报相同,策略不同。策略1对于四条路经是均匀分配的回报比例,而策略2不是均匀分配的比例。经算得,策略2对应的V值要高于策略1。由此可见,V值的大小直接和策略相关。
5、MC的特点
它的主要缺点就是每一回合计算G值时,都需要先从头走到尾达到terminal状态,然后再从terminal状态进行回溯更新。若terminal状态很难达到,则可能每一次都要转很久才能更新一次G值。
(二)时序差分方法( temporal-difference,简称TD)
时序差分算法TD对于MC算法进行了改进,是强化学习中应用最为广泛的一种学习方法。
1、TD估计的算法
算法:使用TD估算V值
1:也是初始化环境并获取初始状态s0
2:for step in steps_per_episode # 这是指我们人为设定的步数N
3: 针对于状态s0,根据V获得到动作action,执行动作action并进入到下一时刻的状态s1,并记录下对应的奖励r
4: 使用TD更新规则更新状态值函数V(s)
5: 将当前状态更新为下一时刻的状态
2、详解TD
在这里,也同样要注意的是,若最终状态/后一时刻st+1的状态未走过,那么这个状态就相当于是空白的,我们就认为状态st+1的V值为0,但若走过的话,那就不是0了,应该相应的为这个状态的V值。
我们可以把TD看成是这样的一种情况,假设我们需要从状态A变化到状态B,若状态B被别的路径走过,则状态B本身就带一定的价值V,其意义就是从状态B到最终状态的总的价值期望。然后就可以通过B状态的V值去回溯计算状态A对应的更新目标了。
3、估计V值的公式
在这里,就对应为图7中的状态A,
就对应为图7中的状态B,将
作为更新目标了,相比于MC的G(t)作为更新目标,明显能看出TD算法更具体,每隔几步就回溯更新目标。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)