包虫病

注册

 

发新话题 回复该主题

强化学习之不基于模型的控制五 [复制链接]

1#
白癜风临床治疗         http://m.39.net/pf/a_5727229.html
前一讲讲解了智能体如何在不基于模型的情况下如何进行预测,也就是求解在给定策略下的状态价值或行为价值函数.本章则主要讲解在不基于模型的条件下如何通过个体的学习优化价值函数,同时改善自身行为的策略以最大化获得累积奖励的过程,这一过程也被称为不基于模型的控制.目录简介行为价值函数的重要性

-贪婪策略现时策略蒙特卡洛控制现时策略时序差分控制离线策略学习编程实践(蒙特卡洛学习求二十一点游戏最优策略)编程实践(构建基于gym的有风格子世界,个体以及交互参考简介生活中有很多关于优化控制的问题,比如控制一个大厦内的多个电梯使得效率最高;控制直升机的特技飞行,围棋游戏等等.这类问题要么就是我们无法掌握他们的环境动力学特征,但是我们可以去经历,在实践中尝试构建理解环境的模型;要么虽然问题的环境动力学特征是已知的,但由问题的规模太大以至于计算机根据一般算法无法高效求解,除非使用采样的方法.在学习动态规划进行策略评估,优化时,我们能体会到:个体在于环境进行交互时,其实际交互的行为需要基于一个策略产生.在评估一个状态或行为的价值时,也需要基于一个策略,因为不同的策略下同一个状态或状态行为对的价值是不同的.我们把用来指导个体产生与环境进行实际交互行为的策略称为行为策略,把用来评价状态或行为价值的策略或待优化的策略成为目标策略.如果个体在学习的过程中优化策略与自己的行为策略是同一个策略时,这种学习方法称为现时策略学习(on-policylearning),如果个体在学习过程中优化的策略与自己的行为策略是不同的策略时,这种学习方式称为借鉴策略学习(off-policylearning)行为价值函数的重要性在不基于模型的控制时,我们将无法通过分析,比较基于状态的价值来改善贪婪策略,这是因为基于状态价值的贪婪策略改善需要知晓状态间的转移概率(已知环境动力学):生活中也是如此,有时候一个人给自己制定了一个价值很高的目标,却发现不知采取如何的行为来达到这个目标.与其花时间比较目标与现实的差距,倒不如立足于当下,在所有可用的行为中选择一个最高价值的行为.因此如果能够确定某状态下所有状态行为对的价值,那么自然就比较容易从中选出一个最优价值对应的行为了.实践证明,在不基于模型的强化学习问题中,确定状态行为对的价值要容易得多.简化过程如下图所示:这样做就可以通过状态行为对的价值来改善策略而不需要知道整个模型,只需要知道在某个状态下采取什么样的行为价值最大即可.

-贪婪策略在不基于模型,基于采样的蒙特卡洛或时序差分学习中使用贪婪算法通常不能收敛至最优策略.虽然DP,MT,TD算法都采用通过后续状态价值回溯的办法确定当前状态价值,但动态规划算法是考虑了一个状态后续所有状态价值的.而后两者则仅能考虑到有限次数,已经采样经历过的状态,那些事实存在但还没经历过的状态对于后两者算法来说都是未探索的不被考虑的状态,有些状态虽然经历过,但由于经历次数不多对其价值的估计也不一定准确.如果存在一些价值更高的未被探索的状态使用贪婪算法将无法探索到这些状态,而已经经历过但价值比较低的状态也很难再次被经历,如此将无法得到最优策略.我们使用一个例子来解释:如上图所示,在你面前有两扇门,考虑如下的行为,奖励并使用贪婪算法改善策略:你打开左侧门得到即时奖励为0p>

你打开右侧门得到即时奖励为1p>

在使用贪婪算法时,接下来你将会继续打开右侧的门,而不会尝试打开左侧的门你打开右侧门得到即时奖励为3p>

你打开右侧门得到即时奖励为2p>

这种情况下,打开右侧门显然不一定是最好的选择(因为左侧门第一次探索的价值低就永远不打开左侧门).贪婪策略产生问题的根源是无法保证持续的探索,为了解决这个问题,一种不完全的贪婪策略(

-贪婪策略)被提出,其基本思想就是使得某一状态下所有可能的行为都有几率被选中执行,具体通过设置一个比较小的

值,使用

的概率贪婪地选择目前认为是最大行为价值的行为,而用

的概率随机从所有m个可选行为中选择行为,即:现时策略蒙特卡洛控制现时策略蒙特卡洛控制通过

-贪婪策略采样一个或多个完整的状态序列后,平均得出某一状态行为对的价值,并持续进行策略评估和改善(通过状态行为对的价值Q).如下图所示:图中每一个向上或者向下的箭头都对应着一个或多个Episode.也就是说我们一般在经历了一个或多个Episode之后才进行依次Q函数更新或策略改善.但使用

-贪婪策略进行现时蒙特卡洛控制仍然只能得到基于该策略的近似行为价值函数,这是因为该策略一直在进行探索,而没有一个终止条件.因此我们必须

分享 转发
TOP
发新话题 回复该主题