TensorFlow 强化学习快速入门 -- Kaushik Balakrishnan 读后感
Posted 架构师易筋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TensorFlow 强化学习快速入门 -- Kaushik Balakrishnan 读后感相关的知识,希望对你有一定的参考价值。
与有1750亿个参数的GPT3(Generative Pre-trained Transformer 3)自回归语言模型,是以数据量取胜,它可以自己造数据。
强化学习(Reinforcement Learning, RL)是一类从通过试错的方法进行的机器学习方法(已经存在了30多年)。它不需要大量的训练数据,而是通过不断与环境交互,通过一定的奖惩反馈,根据行为导致的结果来调整行文策略,实现预期累计奖励的最大化。著名的 AlphaGo 就采用了基于蒙特卡洛树的强化学习方法,战胜了人类围棋的顶级选手。(Go是围棋的意思。)此外,强化学习还在游戏、机器人控制、神经网络结构设计、医疗保健、聊天机器人等领域取得了广泛的应用。目前,强化学习还与深度学习结合,综合了二者的优势。
重点内容:
- 理解现代强化学习算法相关的理论和概念
- 使用离散或连续动作实现先进的强化学习算法
- 开发强化学习算法并训练只能体玩计算机游戏
- 使用TensorFlow探索DQN、DDQN和Atari Breakout问题。
- 使用A3C训练智能体玩CartPole和LunarLander游戏
- 使用TORCS赛车模拟器中训练智能体自动驾驶汽车
1. 强化学习的基本概念
强化学习需要解决的基本问题是如何训练在没有任何标记数据的情况下,预测某些预定任务的模型。这是通过试错法实现的,类似于宝宝第一次学习走路。一个走出婴儿床的宝宝,最初,它们步子迈得很小,常犯错误,不停摔倒在地并哭泣。但是,经过许多这样的尝试之后,它们开始独立站立起来。然后,随着信心的巨大飞跃,它们开始慢慢地、谨慎地采取较大的步子。尽管它们仍然会犯错误,但比以前少了很多。经过更多这样的尝试和失败后,它们拥有了更大的信心。随着时间的推移,它们的步子会变得更长更快,直到最终,它们学会了走路。
- agent:宝宝就是agent(智能体),它们的周围对应强化学习的环境。
- agent的状态,状态表示agent的当前状况。
- agent的行为:agent执行行动以探索环境。获取动作矢量是强化学习的主要目标。理想情况下,需要努力获得最佳行为。
- 策略:策略定义了agent在给定状态下的行为准则。在数学术语中,策略是从agent的状态到其在该状态下要采取的行为的映射。
- 价值函数:用于定义agent的状态好坏。
- 优势函数:
A(s,a) = Q(s,a) - V(s)
. - episode回合:agent在学习最大化目标之前,会反复试错,探索环境。每个从开始到结束这样的试验被称为一个回合。起始位置可能不同,同样,回合的结束或结尾也可能是预期或非预期的结果。通常规定时间步长的上限值来终止回合,有的时候也不设限制。比如:路行者号航天器是由NASA与1977年发射,并且已经在太阳系外部旅行。
- 奖励函数:学习中,因为表现良好而获得了奖励,而对于欠佳的表现则获得了不好的反馈(惩罚)。环境提供奖励功能,以指导agent在探索环境时进行学习。
1.1. 马尔科夫决策过程
马尔科夫性质广泛应用与强化学习,它表明环境在时间 t+1 的响应仅取决于时间 t 的状态和动作。
1.2 贝尔曼方程
伟大的计算机科学家和应用数学家 Richard E. Bellman 命名的贝尔曼方程与动态规划相关的最优条件。在强化学习中,它被广泛应用于更新agent的策略。
1.3 同步策略与异步策略学习
- 同步策略方法使用相同的策略进行评估,从而对操作做出决策。同步策略算法通常没有缓冲区,一般经验是在原地训练模型,将agent从时间 t 的状态移动到时间 t+1 的状态的相同策略用来评估性能的好坏。本书的铜鼓策略算法有 SARSA、A3C、TRPO、PPO.
- 异步策略方法使用不同的策略来指定行动决策并评估绩效。例如,许多异步策略算法使用重放缓冲区来存储经验,并从重放缓冲区中采样数据以续联模型。在训练步骤中,随机抽取一小批经验数据并用于训练策略和价值函数。异步策略算法:DQN、DDQN、DDPG。
1.4 无模型训练和基于模型训练
- 无模型训练:不用学习环境模型的强化学习算法成为无模型算法。通常,如果使用价值函数或动作(V) - 价值函数(Q)来评估性能,则他们被称为无模型算法,因为没有使用特定的环境模型。
- 基于模型训练:如果构建环境模型,则称为基于模型算法。如果你构建了环境如何从一种状态转换到另一种状态的模型,或者确定agent将通过模型从环境获得多少奖励,那么它们被称为基于模型算法。
2. 待续
后面章节还介绍了几个强化学习算法,例如SARSA、Deep Q-Networks(DQN)、DDPC、A3C、TRPO和RPO,以及如何使用TensorFlow和Python实现这些算法,用于解决Open Gym中的问题。此外,还介绍了通过TORCS赛车模拟器训练智能体自动驾驶汽车。
继续的算法都是调用lib库函数处理,就不列举了。书中还列举了如何解决悬崖徒步,和汽车如何从低洼处能开到山顶,等有趣例子。
以上是关于TensorFlow 强化学习快速入门 -- Kaushik Balakrishnan 读后感的主要内容,如果未能解决你的问题,请参考以下文章
如何以Tensorflow为切入点掌握GAN | 迁移学习 | 强化学习