人工智能 java 坦克机器人系列: 强化学习_人工智能 Java 坦克机器人系列: 强化学习 | 学步园...

本文中,我们将使用强化学习来实现一个机器人。使用强化学习能创建一个自适应的战斗机器人。这个机器人能在战斗中根据环境取得最好的策略,并尽力使战斗行为最佳。并在此过程中不断学习以完善自身不足。

Robocode 是 IBM 开发的 Java 战斗机器人平台,游戏者可以在平台上设计一个 Java 坦克。每个坦克有个从战场上收集信息的感应器,并且它们还有一个执行动作的传动器。其规则和原理类似于现实中的坦克战斗。其融合了机器学习、物理、数学等知识,是研究人工智能的很好工具。

在 Robocode 坦克程序中,很多爱好者喜欢设计一些策略与移动模式,让自己的坦克机器人能更好的赢得战斗。但是由于 Robocode 环境时刻在变化,手写的代码只能对已知的环境做一些预测,机器人不能根据环境的变化而自我学习和改善。本文中,将用强化学习实现一个机器人。使用强化学习能创建一个自适应的战斗机器人。这个机器人能在战斗中根据环境取得最好的策略,并尽力使战斗行为最佳。并在此过程中不断学习以完善自身不足。

强化学习(reinforcement learning)是人工智能中策略学习的一种, 是一种重要的机器学习方法,又称再励学习、评价学习. 是从动物学习、参数扰动自适应控制等理论发展而来.

强化学习一词来自于行为心理学,这一理论把行为学习看成是反复试验的过程,从而把动态环境状态映射成相应的动作。它通过不断尝试错误,从环境中得到奖惩的方法来自主学习到不同状态下哪些动作具有最大的价值,从而发现或逼近能够得到最大奖励的策略。它类似于传统经验中的“吃一堑长一智”。

考虑建造一个可学习的机器人,该机器人(或agent)有一些传感器可以观察其环境的状态(state)并能做出一组动作(action)来适应这些状态。比如:一个移动的机器人有摄像头等传感器来感知状态,并可以做"前进","后退"等动作。学习的任务是获得一个控制策略(policy),以选择能达到的目的的行为。

强化学习基本原理也是基于上面的思想: 如果 Agent 的某个行为策略导致环境正的奖赏(强化信号),那么 Agent 以后产生这个行为策略的趋势便会加强。Agent 的目标可被定义为一个奖赏或回报函数(reward),它对 Agent 从不同状态中选取的不同动作赋予一个数字值,即立即支付(immediate payoff)。比如机器人寻找箱子中的回报函数:对能找到的状态-动作赋予正回报,对其他状态动作赋予零或负回报。机器人的任务执行一系列动作,观察结果,再学习控制策略,我们希望的控制策略是在任何初始离散状态中选择动作,使 Agent 随时间累积中发现最优策略以使期望的折扣奖赏(回报)和最大。

如图描述:Agent选择一个动作(action)用于环境,环境(Enviironment)接受该动作后状态(state)发生变化,同时产生一个强化信号(奖赏reward)反馈给Agent,Agent根据强化信号和环境当前状态再选择下一个动作,选择的原则是使受到正强化(奖)的概率增大。

增强学习要解决的问题:一个能够感知环境的自治 Agent,怎样通过学习选择达到其目标的最优动作。这样一个 Agent 在任意的环境中如何学到最优策略是我们要重点考虑的对象,下面介绍的称为 Q 学习的

Q 学习是强化学习的一种形式,机器人在任意的环境中直接学习最优策略很难,因为训练数据中没有提供形式的训练样例。而通过学习一个定义在状态和动作上的数值评估函数,然后以此评估函数的形式实现最优策略将会使过程变得容易。

我们在Q 学习中把 Q 表示在状态 s 进行t动作的预期值;s 是状态向量;a 是动作向量;r 是获得的立即回报;

image006.gif为折算因子。则估计函数 Q(s,a) 被定义为:它的值是从状态 s 开始并使用 a 作为第一个动作时可获得的最大期望折算积累回报。也就是说 Q 值是从状态 s 执行动作 a 的立即回报加上遵循最稳定最优策略的值(用 折算)。公式如下:

Q(s,a)=r(s,a)+

image006.gifmaxQ(s'+a')

我们用过程来表述 Q 学习算法如下:

1.对每个 s,a 初始化表项 Q(s,a)

2.观察当前状态 s,一直重复做:

a.选择一个动作 a 并执行它

b.接收到立即回报 r

c.观察新状态 s'

d.对 Q(s,a) 按照下式更新表项 Q(s,a)

image008.gifmaxQ(s'+a')

e.s

其中

image006.gif(

image010.gif )是折算因子,为一常量。

为了说明这些概念,我们用一些简单的格状确定世界来模拟环境。在这个环境下所有的动作转换除了导向状态G外,都被定义为0,agent一进入状态G,可选动作只能处在该状态中。图中方格表示agent的6种可能状态或位置,每个箭头代表每个不同的动作。如果agent执行相应状态动作可收到立即回报r(s,a),V?(s)为最优策略的值函数,即从最初状态s到获得的折算积累回报。此处立即回报函数把进入目标状态G的回报赋予100,其他为0,V?(s)和Q(s,a)值来源于r(s,a),以及折算因子

image008.gif=0.9.

1.gif

定义了状态、动作、立即回报和折算率,我们根据计算就能得出最优策略图4和它的值函数V?(s).该策略把agent以最短路径导向状态G。图3显示了每个状态的V?值,例如,图3中下方的状态中最优策略使agent向右移动,得到为0的立即回报,然后向上,生成100的立即回报,,此状态的折算回报计算为:

0+

image008.gif100+

image030.gif +

image032.gif +…=90,即中上方的V?值为90</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值