马尔可夫决策过程
马尔可夫决策过程(MDP)
- 可以通过马尔可夫决策过程来表示智能体和环境交互的整个过程
马尔可夫过程(Markov Process)
马尔可夫属性(Markov Property)
- 第一个性质就是当前智能体状态(agent state)只与上一个状态有关,与历史状态无关,例如在 alphaGo 棋盘对于当前状态,只需要考虑上一个状态(棋盘的布局)
<img src="./image_23/002.png" width="50%">
以上就是马尔可夫链的状态转移矩阵,通过查表的形式,我们就可以了解当处于某一个状态,接下来转移到另一个状态的概率是多少。那么马尔可夫链(Markov chain) 也可以看作马尔可夫过程可以看作一个状态集合以及这些状态间转移的矩阵表示为
- 表示有限状态的集合
- 状态转移矩阵
c1 | c2 | c3 | pass | pub | sleep | ||
---|---|---|---|---|---|---|---|
c1 | 0.5 | 0.5 | |||||
c2 | 0.8 | 0.2 | |||||
c3 | 0.6 | 0.4 | |||||
pass | 1.0 | ||||||
pub | 0.2 | 0.4 | 0.4 | ||||
0.1 | 0.9 | ||||||
sleep | 1.0 |
这就是轨迹概念,每一条链都是一条轨迹
马尔可夫奖励过程(MRPs)
马尔可夫奖励过程,就是马尔可夫链再加上一个奖励(Reward)函数
- 定义马尔可夫奖励过程(MRP),可以表示为
- 表示状态集合
- 是动态/转移模型可以表示为
- 是奖励函数,可以表示为
- Discount factor(折扣量)
回报与价值函数
有限扩展(horizon)
在每一个 episode 存在最大有限步数
回报(Return)
根据动作和状态对未来奖励进行一定折扣累加计算来表示 t 时刻的回报(收益)
定义状态价值函数
状态价值函数是最终衡量状态的获取多少奖励函数,从 s 状态开始可以计算还可以得到多少累计函数,在 AlphaGo 中有估值函数,当给系统棋牌状态,状态包括是黑方还是白方,接下来是白棋先走还是黑棋先走。
期望也就是从这个状态 s 开始向后可以获得多大价值,也可以理解为进入到当前状态之后会有多大价值
折扣因子 存在的意义
也可以看作对于未来可以获得多少奖励当前价值的一个表现解释
- 避免在带环马尔可夫过程出现无穷奖励的问题
- 也希望把不确定表示出来,尽快得到奖励而不是在未来某一个点得到奖励
- 对于有价值的奖励,我们希望立刻得到奖励,而不是在未来得到奖励(例如股票)
- 立刻得到奖励也是符合人的行为
- 关于超参数的取值意义
- 系数设置 0 则只关注当前奖励
- 设置为 1 ,也就是表示未来奖励并没有折扣,则表示关心未来的奖励
计算状态价值函数
马尔可夫奖励过程贝尔曼方程
马尔可夫决策过程(MDP)
马尔可夫决策过程(MDP),当我们买了某只股票,或者投掷硬币进行下注,之后我们就能等待结果,根据结果来得到回报。马尔可夫决策过程(MDP) 会根据不同状态进行不同动作。可以表示为
- 表示状态的集合
- 表示动作的集合,对于任意 通常来用 表示动作集合是针对于某一个状态来说
- 是 Action 是动态/转移模型 ,也就是 MDP 动态特性
- P 状态转移函数
- R 是奖励函数
- 折扣系数
- MDP 是 表现形式
<img src="./image_25/012.png">
MRP 更像一种自由经济,充分相信市场能力,并不进行人为干涉。
MDP 中的策略(Policy)
- 策略函数(Policy)在每一个状态都会给出一个动作,是一个状态到动作映射的函数
- 策略函数(Policy)输出是的在当前状态所有可能动作的概率分布
- 策略函数(Policy) 变现形式为:
- 还有这里有一个假设就是策略函数是静态,不同时间上概率分布是独立的
MP、MRP 和 MDP 之间相互关系
- 和策略函数 这些构成了马尔可夫决策过程
- 在马尔可夫过程表示 具体来说就是状态序列
- 在马尔可夫奖励过程表示 具体来说就是状态序列
他们之间相互转换为
- 在 MDP 过程中是根据当前状态和采取动作来转移到下一个状态
- 因为 可以给出当前状态下可能采取动作的概率分布所以通过求边缘概率可以将 a 去掉从而得到马尔可夫过程
价值函数
状态价值函数(state-value function)
其实 是由随机变量 和 ,所以会有很多重可能,每种 和 组合都会得到不同 ,每一个种可能可以看成一个路径。
动作价值函数(action-value function)
这里的自变量 和 都是自变量,并不是存在任何特定的关系,不是成对出现。
状态价值函数和动作价值函数之间关系
在 对 是没有约束,这一点跟上面 有所不同的,这一点需要大家注意一下。在 就是反应一个 会对应一个 的概率分布
贝尔曼期望方程(Bellman Expectation Equation)
- 价值函数:返回状态 s 随后得到回报
- 建立关系
MDP 求解
预测(prediction)
对于给定策略,判断每个状态下的奖励是多少,通过状态价值函数来预测当前策略会产生多少价值
- 输入 和策略函数 或者
- 输出为 函数
控制(control)
寻找最优策略,得到最优价值函数
- 输入
- 输出: 最优价值函数 和最优策略函数
处于无限扩展问题(infinite horizon proble)的 MDP 过程的优化策略通常具有以下性质
- 确定性
- 静态的
- 并不唯一
预测和控制在 MDP 可以通过动态规划来计算
计算马尔可夫迭代方法
- 动态规划
- 蒙特卡洛估计
- Temporal-Difference 学习,结合以上算法
最优策略和最优值函数
在强化学习中,假设马尔可夫决策过程是有限马尔可夫决策过程,状态和动作的集合是有限的。这样的马尔可夫决策过程也是有限马尔可夫决策过程。所以在策略中一定存在一个最优策略,可以表示为 我们是根据价值函数来评估一个策略的好坏。其实很简单,强化学习的最终目标就是尽可能地多获得回报值 时也就有
而对于最优策略,其值函数的值也必然是最大的。
- 搜索遍历 ,
- 首先要清楚价值函数对每个状态评估,因为状态转移会受到采取什么样的动作所决定。我们要找到一个可以让每一个状态值最大的策略,对应于状态值最大的策略就是我们要找的最优策略。这里最优策略就用
- 所以当我们说某一个 MDP 被解就是我们找到了可以状态值最大所对应的 策略函数。
最优策略
- 当 是 否则为 0
策略搜索
- 遍历所有可能的策略
- 所有的策略为
- 这样列举所有可能动作是非常没有效率的,这里其他方法如策略迭代(Policy Iteration)和价值迭代(Value Iteration)
Policy Iteration
也就是优化现有的策略函数 ,先保证这个策略函数 然后计算当前 的价值函数,当计算出 函数,从而推断其 函数,最后直接在
- 估计
- 优化
优化策略
- 计算策略函数 的状态动作(state-action)价值函数
- 计算新的策略
<img src="./image_25/007.png">
MDP 中策略(Policy)评估
其实我们说了这么多,MDP 主要就是帮助我们做策略得到最优效果,那么 Action 就是策略。如果有这样策略,当状态 就确定性选择某一个动作 这样就和时间没有关系,只要遇到 , 那么随机性策略就是 可能选择 、 或者 选择不同概率。所以策略可以分为两种
- 确定性策略
- 随机性策略
用奖励作为策略量化后,我们如何找到一个好的策略,作成 其实动作会有带来后续影响,不仅仅需要考虑当时得到 ,还需要考虑当前动作对后续奖励的影响,所以提出了回报 Return 的概念。
- Policy 表示在每一个状态(步骤)应该采取什么样行为,给定一个状态,就会输出一个动作概率分布
- 根据当前状态采取什么行为的概率分布
- 这个概率函数是稳定的,静态的, 近似
从上面公式来看,一切建立于 表示在 在 上的加权平均。对于 其实有多少状态就有多少个
MDP 和 MRP 转换
- (当已知一个马尔可夫决策过程)给定 MDP 和 policy 时候就是将 MDP 转化为 MRP 问题
- 状态序列 是马尔可夫过程
- 状态和奖励序列为 是马尔可夫奖励过程
- 直接通过求和,或者边缘概率去掉 a
为什么提出价值函数呢?
MDP 中的价值函数
价值函数: 在 MDP 过程中的价值函数也给一个定义,这里期望是由 Policy 所决定的,也就是根据 Policy 进行采样之后得到期望,从而计算其价值函数,因为我们随后动作是一个概率分布,有了动作,根据当前的状态和所采取的动作下一个状态还是一个概率分布,所以我们需要通过求当前回报期望来评价 Policy 的函数是好、还是不好。
Q 函数,action-value 函数定义某一个行为可能得到某一个期望,这个期望也是 policy 函数,也就是我们在某一个状态下,采取某一个动作,最终能获得多少累计奖励的函数
价值函数和Q函数关系,也就是对 Q 函数进行边缘概率求和得到 V 函数
Bellman Expectation Equation
主要定义当前状态和外来状态之间一个关联,对于所有
Bellman Expectation Equation for and
- 当前价值和未来价值之间的关系
- 价值函数和Q函数之间一个关系