0 介绍
所谓强化学习(Reinforcement Learning,简称RL),是指基于智能体在复杂、不确定的环境中最大话它能获得的奖励,从而达到自主决策的目的。
经典的强化学习模型可以总结为下图的形式(智能体、行为、环境、状态、奖励):
我们知道目前主流的深度学习网络是基于仿生学模仿人脑神经元建立的。而强化学习模仿的是智能体与环境的交互。如上图:Agent:智能体。Environment,即环境。Action()即动作。state:状态.
指tt时刻的状态, 指t+1时刻的状态。reward(简记r),奖励。这个奖赏表示在明确目标的情况下,接近目标意味着做得好则奖,远离目标则意味着做的不好则惩,最终达到收益/奖励最大化,这个奖励则是强化学习的核心。
即在上一时刻。智能体做出动作后,环境给予的奖励。即指t时刻,Agent智能体做出动作时,环境给予的奖励。
如上图。我们先简单理解下强化学习,后面我们在深入探讨,在状态下,智能体Agent,做出一个行为
,实际上是一组行为的集合。做出哪个行为,有每个行为的概率。做出这个行为后。环境会对这个行为做出反馈并给出相应奖励即。同时状态发生改变由变为
。然后继续按照此流程。智能体依据策略“执行动作–感知状态–得到奖励”。
接下来我们深入了解下强化学习中极为重要的马尔可夫决策过程及贝尔曼方程。
1 马尔可夫决策过程(Markov decision process)
1.1 马尔可夫过程
如下图:我们假设天气有3种情况,阴天,雨天,晴天,他们之间的转换关系如下:
即 如果今天是阴天,则第二天仍然是阴天的概率是0.1,第二天是晴天的概率是0.3,第二天是雨天的概率是0.6。我们便可总结成这样的状态转移矩阵。我们设
阴天为
、晴天设为
、雨天设为
。则存在这样的状态转移矩阵。
每一个状态转移到另一个状态或者自身的状态都有一个概率。这样的一个状态链就是马尔可夫状态链。
假设我们具有M个状态的模型
当且仅当某时刻的状态取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质,即,当然了,虽说当前状态只看上一个状态,但上一个状态其实包含了更上一个状态的信息,所以不能说与当下与历史无关。
而具有马尔可夫性质的随机过程便是马尔可夫过程。
1.2 马尔可夫奖励过程
在马尔可夫过程的基础上加入奖励函数R和折扣因子γ,就可得到马尔可夫奖励过程(Markov reward process,MRP)其中
奖励函数:某个状态s的奖励R(s),是指该状态做出某个动作转移到下一个状态s时可以获得的奖励的期望,有
举个例子,当前状态为s, 转移到的概率是
,转移到获得的奖励是同样的转移到的概率是转移到获得的奖励是
。假设状态集合是
则
此外,实际中,因为一个状态可以得到的奖励是持久的,所有奖励的衰减之和称为回报,可用G表示当下即时奖励和所有持久奖励等一切奖励的加权和(越往后某个状态给的回报率越低,也即奖励因子或折扣因子越小,用γ表示)。则
举个例子,一个少年在面对“上大学、去打工、在家啃老”这三种状态,哪一种更能实现人生的价值呢?
相信很多人为长远发展都会选择上大学,因为身边有太多人因为上了大学,而好事连连。比如读研读博留学深造、进入大厂、娶个漂亮老婆、生个聪明孩子。当然了,上大学好处肯定多多,但上大学这个状态对上面4件好事所给予的贡献必然是逐级降低,毕竟越往后,越会有更多或更重要的因素成就更后面的好事,总不能所有好事都百分百归功于最开头选择了“上大学”这个状态/决策嘛。
而一个状态的期望回报就称之为这个状态的价值,所有状态的价值则组成了所谓的价值函数,用公式表达为
展开一下可得
前半部分表示当前状态得到的即时奖励
后半部分表示当前状态得到的所有持久奖励其中需要用的强化学习中同样重要的理论公式贝尔曼方程(bellman equation)。
1.3 贝尔曼方程(Bellman equation)
Bellman方程是强化学习的基础和核心,首先我们要弄清楚贝尔曼方程的三个主要概念,策略函数、状态价值函数、状态-动作价值函数(简称为动作价值函数)。强化学习的核心问题就是最优化策略函数从而最大化价值函数。
策略函数(Policy Function):策略函数是一个输入为s,输出为a的函数。表示为其中s表示状态,a表示动作,策略函数的含义就是在状态s下应该选择的动作a。
状态价值函数(State Value Function):前面说过强化学习的核心问题就是最优化策略函数,那么如何评价策略函数是最优的?状态价值函数是评价策略函数优劣的标准之一,在每个状态下(s∈S,S为所有状态的集合),可以有多个动作a选择(a∈A,A为所有动作集合),每执行一次动作,系统就会转移到另一状态(状态有时有多个可能,每种状态都有一个概率,如何保证所有的动作能使系统全局最优则要定义价值函数,系统的状态价值函数的含义是从当前状态开始到最终状态时系统所获得的累加回报的期望,下一状态的选取依据策略函数(不同的动作a将导致系统转移到不同的状态)。所以系统的状态价值函数和两个因素有关,一个是当前的状态s,另一个是策略从不同的状态出发,得到的值可能不一样,从同一状态出发,使用不同的策略,最后的值也可能不一样。所以建立的状态价值函数一定是建立在不同的策略和状态条件下的。状态价值函数的具体形式如下:其中其中表示从转移到时获得的回报,γ是折损因子,取值0~1。可以将上面的状态价值函数的形式表示为递归的形式:
其中表示在选择动作a时,状态由s转移到的概率,选定动作之后,根据概率可能有好几种状态。也可能只有一种状态。只有一种时=1
状态动作价值函数(state-action Value Function):动作价值函数也称为Q函数,相比于Value Function是对状态的评估,Q Function 是对(状态-动作对)的评估,Q值的定义是,给定一个状态采取动作后,按照某一策略与环境继续进行交互,得到的累计汇报的期望值。其数学表达形式是:
对于状态价值函数和动作价值函数的区别,可以简单的认为,状态价值函数,当前状态下选取哪个动作是未知数,需要一系列的动作集合(各不同状态下),形成一个完整的策略,然后使状态方程的值最大化,而动作价值函数是当前状态下的动作已知,求余下状态下的动作集合使动作方程的值最大化,具体数学形式如下:
动作和状态价值函数的关系
前面我们简单的将状态价值函数和状态-动作价值函数的关系描述为状态价值函数在当前状态的动作是不确定的,所以必须考虑到所用动作的情况然后取期望,而状态-动作价值函数只是考虑特定动作下的价值。最大化状态价值函数就是求当前状态的最大期望值,而最大化状态-动作价值函数就是求当前状态下一动作能带来的最大回报值。用数学的形式表示如下:
将公式(1-2)进一步化简可得:
注意:
这里需要注意几个表示价值的符号的意义,
下面举个例子再介绍下贝尔曼方程
参考博文:https://blog.csdn.net/qq_44822951/article/details/109752436
https://blog.csdn.net/v_JULY_v/article/details/128965854
https://zhuanlan.zhihu.com/p/86525700