利用TensorFlow对复杂目标进行强化学习

本文介绍了如何使用TensorFlow扩展传统的Q-learning,以应对复杂且随时间变化的目标。通过构建一个快递无人机的场景,展示了如何训练智能体在投递包裹的同时管理电量。文章详细阐述了直接未来预测(DFP)的概念,以及如何通过目标搜索和改变目标来实现更复杂行为的学习,以优化智能体的性能。此外,还提供了异步Q-learning的TensorFlow实现和训练结果。
摘要由CSDN通过智能技术生成

编者注:请访问GitHub上这篇文章相应的Python代码和iPython notebook文件。 更多人工智能业务方面重要的发展请关注2018年4月10-13日人工智能北京大会。

强化学习(RL)是关于训练智能体来完成一些任务。一般认为这能够达成某个目标,例如,我们可能想要训练机器人来打开一扇门。强化学习可以作为一个框架,允许机器人用试错的方法来学习打开门。但是,如果我们更感兴趣的是让智能体不仅只是解决一个目标,而是一个可能随时间变化的目标集合,又会怎么样呢?

在本文以及GitHub上对应的notebook文件中,我将介绍和演示机器学习中传统的强化学习范式,以及一种新出现的用于扩展强化学习的范式,它可以应对复杂的随着时间变化的目标。

首先,我将演示如何构建一个简单的Q-learning智能体,它由一个单一的奖励信号为引导,在一个环境里自我导航来投递包裹。然后我将展示Q-learning这个简单的公式在更复杂的行为情况下会出现的问题。为了获得更大的灵活性,我将描述如何构建一类强化学习智能体,它可以对 “直接未来预测”(DFP)的各种目标进行优化。所有使用TensorFlow的代码都在这个iPython Jupyter Notebook文件中。

能获得最大累积奖励的Q-learning

强化学习涉及到智能体通过和环境进行交互来随着时间的推移获得最大的回报。典型的形式化这一过程的方式是:一个智能体从环境中接收一个状态(s),再产生一个动作(a)。给定这个状态和动作对,环境就会反馈给智能体一个新的状态(s)以及一个回报(r)。这样强化学习的问题就变成了如何发现一个从状态到行为的映射,从而能产生最大的累积奖励的问题。

解决问题的一种方法叫做Q-learning。在这个方法中,我们学习一个状态动作对(s,a)和值估计(v)之间的直接映射。这个值估计应该与在状态(s)期间采取行动(a)的折扣预期奖励相对应。使用Bellman方程,我们可以迭代地更新对所有可能状态动作对的Q(s,a)的估计。这种迭代更新Q值的能力来自于优化Q函数的以下特性:

Q*(s, a) = r + γmaxa’Q(s’, a’)

此公式意味着给定状态和动作的当前Q值可以分解为当前的奖励,加上下一状态下的预期未来奖励。通过收集经验,我们可以训练一个神经网络来预测更精确的Q值,并且通过采取行动来优化期望值。在理想情况下,最终我们可以根据环境获得最大的累积奖励。利用一个通用的函数逼近器(如神经网络),我们可以将我们的Q估计泛化到未见过的状态,从而使我们可以学习任意大的状态空间的Q函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值