新闻、帮助、产品更新动态

最新的业界新闻,产品系统更新开发动态,帮助教程和活动发布

强化学习系列(一)--基础概念

发布日:2022-02-07 14:50       阅读数:

最近了解了强化学习方面的知识,准备进行下整理和总结。本文先介绍强化学习中一些基础概念。
强化学习
强化学习,监督学习,非监督学习是机器学习的三种学习方式。
强化学习是智能体在环境中通过不断探索未知和利用已有知识进行试错和学习,然后通过学习到的策略(在什么状态下应该采取什么行为)进行一系列行为来获取长期的最大累计收益。
监督学习,非监督学习,强化学习的区别
监督学习需要训练数据具有输入和标签,从标签中学习输入的期望输出。而强化学习并没有标签值,只有激励和惩罚,需要不断和环境进行交互,通过不停试错来学习最佳策略。
非监督学习没有标签也没有奖励值,而是通过学习数据的隐藏特征,通常用于进行聚类。而强化学习是需要一个反馈的。
监督学习和非监督学习是没有序列依赖关系的,而强化学习的奖励计算是有序列依赖关系的,它是一个延时回报。
马尔科夫决策过程(MDP)
下面我们先了解MDP,他是强化学习的一个理论基础。对我们了解强化学习中的智能体的决策,值函数等概念有更清晰的认识。

MDP由四元组构成, M=(S,A,P,R)

S: 表示状态集,其中 Si 表示第i个时刻的状态,sS

A:表示动作集,其中 ai 表示第i个时刻的动作, aA

P:表示转移概率。 Psa 表示从状态s执行动作a后,转移到另一个状态的概率。

R:表示回报函数。从状态s执行动作a。注意这里的回报是立即回报。其中从S状态到A动作的映射,就是行为策略,记为策略π:SA

MDP 的动态过程如下图:智能体从状态s1,采用动作a1,进入状态s2,同时得到回报r1。然后从状态s2采取动作a2进入状态s3,得到回报r2....

MDP具有马尔科夫性,也就是写一个状态只与当前状态有关,无后效性。MDP同时考虑了动作,它假设从当前状态转化到下一个状态的概率只与当前状态和要采取的行动有关,与之前的状态无关。
值函数(value function)
上面我们提到MDP中的回报函数是立即回报,但是在增强学习中,我们关心的并不是当前的立即回报,而是状态在策略下的长期收益。
Gt=Rt+1+γRt+2+γ2Rt+3+...=k=0rkRt+k+1

其中γ(0,1)称为折合因子,表明了未来的回报相对于当前回报的重要程度。γ=0时,相当于只考虑立即不考虑长期回报,γ=1时,将长期回报和立即回报看得同等重要。

价值函数 V(s)定义为状态S的长期价值,即 Gt 的数学期望

V(s)=E[Gt|s=St]

然后再考虑MDP过程还有一个策略和动作,给定策略π和初始状态s,则动作a=π(s),我们就可以定义

状态值函数:

Vπ(s)=E[Rt+1+γVπ(St+1)|St=s]

动作值函数(给定当前状态s和当前动作a,在未来遵循策略π):

qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)|St=s,At=a]

qπ(s,a)中,不仅策略π和初始状态s是我们给定的,当前的动作a也是我们给定的,这是qπ(s,a)Vπ(s)的主要区别。

 

一个MDP的最优策略就是最优状态-价值函数:v(s)=maxπvπ(s) 状态s下,选择一个能使价值最大的策略。

 

求解最优策略

上面提到我们的目的是找到一个让值函数最大的策略,求一个最优解问题。

主要使用的方法有:

  • 动态规划法(dynamic programming methods)

动态规划方法(DP)计算值函数:

V(St)Eπ[Rt+1+γV(St+1)]=aπ(a|St)s,rp(s,r|St,a)[r+γV(s)]

通过公式看出DP计算值函数用到了当前状态s的所有s处的值函数,也就是bootstapping方法(用后继状态的值函数估计当前值函数)。而后继状态是用模型 p(s,r|St,a) 计算得到的。

所以DP是存储每个状态的值函数Q表,根据Q表通过迭代方法得到最佳的策略。存储Q表后,利用后续状态值函数估计当前值函数,可以实现单步更新,提升学习效率。

优势:提前得到Q表后,不需要再与环境交互,直接通过迭代算法得到最佳策略。

劣势:实际应用中,状态转移概率和值函数是很难得到的

  • 蒙特卡罗方法(Monte Carlo Methods)

蒙特卡罗方法(MC),它的状态值函数更新公式为:

V(St)V(St)+α(GtV(St))

其中Gt是每个探索结束后得到的累计回报,α为学习率。我们用St的累计回报Gt和当前估计V(St)的偏差值乘以学习率来更新当前的V(St)的新的估计值。因为没有模型得到状态转移概率,所以MC是用经验平均值估计状态的值函数。

蒙特卡罗方法是通过采样的方法(试错,和环境进行交互)来估计状态的期望值函数。采样之后,环境给出奖励信息,体现在值函数中。

优势:不需要知道状态转移概率,而是通过经验(采样和试错实验)去评估期望值函数,只要采样的次数足够多,保证每个可能的状态-动作都能采样到,就可以最大程度的逼近期望。

劣势:由于值函数是要从状态s到最终状态累计奖励,所以每次实验都必须执行到终态才能得到状态s的值函数,学习效率很低。

  • 时间差分法(temporal difference)

最后看时间差分法(TD)算法的值函数更新公式:

V(St)V(St)+α(rt+1+γV(St+1)V(St))

其中rt+1+γV(St+1) 和MC中的Gt对应,不需要使用状态转移函数的模型,同时它不需要执行到终态得到累计回报,而是使用下一个时刻的即刻回报和值函数,类似DP的bootstapping方法。

时间差分法结合了动态规范思想和蒙特卡罗采样思想。在没有环境互动情况下避免对状态转移概率的依赖,采用采样估计状态的值函数。从经验直接进行学习,类似蒙特卡罗方法。同时又允许没到最终状态就基于后续状态的值函数估计当前值函数实现单步更新,类似动态规划法提升效率。
强化学习要素
通过以上基础知识后,我们再回头看强化学习的框架:

agent智能体:决策者
 
environment环境: 与智能体交互的事物
 
State 状态:当前agent在环境中所处的状态
 
action动作:agent每次处于的状态和上一个状态的reward以及策略一起确定了当前需要执行的动作
 
reward奖励: 环境对于动作返回的奖励
 
policy策略:agent的行为,从state到action的映射
 
强化学习项目我们要做的事情是,针对一个问题首先提取出一个环境和与之交互的智能体,从环境中抽取出状态(S)和动作(A),以及执行某个动作能得到的即时奖励(R),智能体决策出一种最优策略算法,在此策略下能够让智能体在环境状态下执行最优动作,得到的累计reward最大。
 

编辑:航网科技   来源:腾讯云

本文版权归原作者所有 转载请注明出处

联系我们

客服部:深圳市龙华区龙胜商业大厦5楼B5区

业务部:深圳市南山区讯美科技广场2栋12楼1202

资质证书

  • Copyright © 2011-2020 www.hangw.com. All Rights Reserved 深圳航网科技有限公司 版权所有 增值电信业务经营许可证:粤B2-20201122 - 粤ICP备14085080号

    在线客服

    微信扫一扫咨询客服


    全国免费服务热线
    0755-36300002

    返回顶部