1、动态规划
目标函数
用τ表示从状态s到最终状态的一个序列τ:st ,st+1 …,sT
累积回报R (τ)是个随机变量,随机变量无法进行优化,无法作为目标函数,我们采⽤随机变量的期望作为⽬标函数,
即∫R (τ)pπ (τ) dτ作为目标函数,用公式来表⽰强化学习的目标
强化学习的最终目标是找到最优策略为π* :s→u*
自举法
状态值函数的计算方法:
强化学习分类【基于p是否已知】
从广义上讲,强化学习是序贯决策问题。但序贯决策问题包含的内容更丰富。它不仅包含马尔科夫过程的决策,而且包括非马尔科夫过程的决策。
是否基于模型取决于状态转移概率是否确定
动态规划问题满足条件
第一个特性是一个复杂问题的最优解由数个小问题的最优解构成,可以通过寻找子问题的最优解来得到复杂问题的最优解;
第二个特征是子问题在复杂问题内重复出现,使得子问题的解可以被存储起来重复利用。
策略评估
fade code
其中一次扫描的那个公式就是状态值函数的bellma方程,
结合机器人找金子的例子:
下面的例子给出状态值函数的更新,但是感觉不太清楚
---------------------------------------------------------------------------------------------------------------
接下来,我们举个策略评估的例⼦。如图3.6所⽰为⽹格世界,其状态空间为S={1,2,…,14},动作空间为A={东,南,⻄,北},回报函数为r≡-1,需要评估的策略为均匀随机策略:
图3.7为值函数迭代过程中值函数的变化。为了进⼀步说明,我们举个具体的例⼦,如从K=1到K=2时,状态1处的值函数计算过程
【难道是这样:0.25×(-1-1)+-0.25×(-1-1)+-0.25×(-1-1)+-0.25×(-1-0)】:这里折扣因子被设计为1
保留两位小数-1.75。
这里如果有大神清楚,可以指教一下,到底是如何计算的呢!
----------------------------------------------------------------------------------------------------------------------
策略改善
策略评估的目的是进行策略改善,一个很自然的方法是当已知当前策略的值函数时,
在每个状态采用贪婪策略对当前策略进行改善
如图3.8给出了贪婪策略⽰意图。图中虚线为最优策略选择。
如图3.9所⽰为⽅格世界贪婪策略的⽰意图。我们仍然以状态1为例得到改善的贪婪策略:
整个策略改善的代码其实是为了实现公式(3.24)
至此,我们已经给出了策略评估算法和策略改善算法。万事已具备,将策略评估算法和策略改善算法合起来便组成了策略迭代算法。
策略迭代
策略迭代=策略评估+策略改善,策略迭代算法是这是一个策略收敛的过程。如图3.11所⽰为值函数收敛过程
从策略迭代的伪代码我们看到,进行策略改善之前需要得到收敛的值函数。值函数的收敛往往需要很多次迭代,现在的问题是进行策略改善之前一定要等到策略值函数收敛吗?对于这个问题,我们还是先看一个例⼦。如图3.12所示,策略评估迭代10次和迭代无穷次所得到的贪婪策略是一样的。因此,对于上⾯的问题,我们的回答是不一定等到策略评估算法完全收敛,如果我们在评估一次之后就进行策略改善,则称为值函数迭代算法。这个就是下面的值迭代
值函数迭代算法
值函数迭代是动态规划算法最⼀般的计算框架,值函数迭代算法(如图3.13所示)的伪代码为
结合机器人找金子的例子
通过策略评估和策略改善得到最优值函数。
均匀策略是策略评估的策略,贪婪策略是策略改善时的策略。也称为off-policy策略。