强化学习实践
xyk_hust
大家好,欢迎访问我的博客,我是小编似冷非寒,我来自华中科技大学机械学院,喜欢研究机器学习、强化学习、深度学习领域。我的信仰是:从零到精通,与天赋无关,全靠汗水成就。相信不断奋斗的你,终有一天会成为别人眼中的大神...加油吧!少年...
展开
-
强化学习实践一 :迭代法评估4*4方格世界下的随机策略
本篇用代码演示David Silver《强化学习RL》第三讲 动态规划寻找最优策略中的示例——方格世界,即用动态规划算法通过迭代计算来评估4*4方格世界中的一个随机策略。具体问题是这样:已知(如上图):状态空间 S:为非终止状态;,终止状态,图中灰色方格所示两个位置; 行为空间 A:{n, e, s, w} 对于任何非终止状态可以有向北、东、南、西移动四个行为; 转移概率 P:任何...原创 2019-01-02 11:30:28 · 3301 阅读 · 1 评论 -
强化学习实践七 :DQN的实现
本文将带您一起实践深度学习与强化学习联合解决问题的一个经典算法:深度Q学习网络(DQN)。深度学习算法在强化学习领域的应用主要体现在价值函数或策略函数的近似表示上,理解了这一点将有助于您直击深度强化学习问题的本质。正因为如此,我们也可以使用不基于深度学习的其他函数近似工具。由于训练、调试一个深度学习网络需要较长的时间,并且我基本上是使用自己的风格来写这些代码和博客,因此后续的进度会不固定,成熟...原创 2019-01-24 11:27:26 · 1274 阅读 · 0 评论 -
强化学习实践二 :理解gym的建模思想
David Silver的强化学习公开课有几个特点,个人感觉首要的一个特点是偏重于讲解理论,而且有时候为了讲清楚一个理论的来龙去脉,也顺带讲了很多不常用的理论;还有一个特点是小例子很多,这些例子有时候不仅是为了讲清楚一个复杂的算法,而且通过例子会加深对一些概念的理解。同样我们在学习他的课程时,也应该注重实践,因为只有通过实践,才会对理论有更深的认识,有时候会在实践中纠正自己曾经一直自己以为正确其实...原创 2019-01-21 10:12:37 · 4326 阅读 · 1 评论 -
强化学习实践三 :编写通用的格子世界环境类
gym里内置了许多好玩经典的环境用于训练一个更加智能的个体,不过这些环境类绝大多数不能用来实践前五讲的视频内容,主要是由于这些环境类的观测空间的某个维度是连续变量而不是离散变量,这是前五讲内容还未涉及到的知识。为了配合解释David Silver视频公开课提到的一些示例,参考了gym的思想设计了一个通用的格子世界环境类,该环境类的观测空间是一维离散变量,可以很好地模拟其公开课中提到的:简单格子、有...原创 2019-01-21 14:29:54 · 3326 阅读 · 6 评论 -
强化学习实践四 :Agent类和SARSA算法实现
通过前几次强化学习实践讲解,我们基本上理解了个体与环境的建模思想,特别是对gym库有了一定的了解。在本讲中,我们将尝试编写一个简单的Agent类,并且使它能够和我们之前编写的格子世界环境类进行交互。然后我们将实现SARSA算法,确切地说是SARSA(0)。我们将看看它在简单格子世界中的训练效果。由于蒙特卡洛学习和单纯的基于价值的TD学习实际应用不多,在实践环节我也不打算实现这两个算法,当然了S...原创 2019-01-22 17:54:03 · 717 阅读 · 0 评论 -
强化学习实践五 :SARSA(λ)算法实现
在强化学习实践四中我们编写了一个简单的个体(Agent)类,并在此基础上实现了SARSA(0)算法。本篇将主要讲解SARSA(λ)算法的实现,由于前向认识的SARSA(λ)算法实际很少用到,我们将只实现基于反向认识的SARSA(λ)算法,本文后续如未特别交代,均指的是基于反向认识的SARSA(λ)。SARSA(λ)算法的实现该算法的流程图如下:其特点是需要额外维护一张E表,来衡量一...原创 2019-01-23 11:34:34 · 1708 阅读 · 0 评论 -
强化学习实践六 :给Agent添加记忆功能
在《强化学习》第一部分的实践中,我们主要剖析了gym环境的建模思想,随后设计了一个针对一维离散状态空间的格子世界环境类,在此基础上实现了SARSA和SARSA(λ)算法。《强化学习》第二部分内容聚焦于解决大规模问题,这类问题下的环境的观测空间通常是多维的而且观测的通常是连续变量,或者行为不再是离散的简单行为,而是由可在一定区间内连续取值的变量构成,在解决这类大规模问题时必须要对价值函数(或策略函数...原创 2019-01-23 19:37:05 · 1132 阅读 · 1 评论