强化学习-价值功能

代码和演示可用。 本文探讨了强化学习中的状态,动作和奖励是什么,以及代理如何通过模拟学习来确定在任何给定状态下采取的最佳动作。

直觉

经过一整天的工作后,您要在两种选择之间做出选择:回家然后写一篇文章或在酒吧和朋友一起闲逛。 如果您选择与朋友一起出去玩,您的朋友会让您感到开心; 而回家写一篇文章,您会在漫长的一天工作后感到疲倦。 在这个例子中,享受自己是一​​种奖励,而感到疲倦则被视为一种消极的奖励,那么为什么写文章呢?

因为在生活中,我们不仅仅考虑立即获得回报; 我们计划采取一系列行动,以确定可能产生的未来回报。 也许写一篇文章可能会很好地增进您对特定主题的理解,获得认可,并最终使您获得梦you以求的工作。 在这种情况下, 获得理想的工作是从您执行的一系列动作中获得的延迟奖励,然后我们希望为处于这些状态的人分配一些价值 (例如“回家写一篇文章”)。 为了确定状态的 ,我们称其为“值函数”。

那么我们如何从过去中学习呢? 假设您做出了一些伟大的决定,并且生活处于最佳状态。 现在,回顾一下您为达到这一阶段而做出的各种决定:您将成功归因于什么? 导致您取得成功的先前状态是什么? 您过去做过哪些动作,使您进入了获得奖励的状态? 您现在正在采取的行动与您将来可能获得的潜在奖励有什么关系?

奖励与价值功能

奖励是立即的。 在收集硬币,赢得井字游戏或确保您梦想的工作的游戏中,这可能是得分。 该奖励是您(或代理商)想要获得的。

为了获得奖励 ,价值函数是确定处于状态的价值的有效方法。 用V(s)表示 ,该价值函数衡量的是我们可能从处于s状态得到的潜在未来回报

定义值函数

在图1中,我们如何确定状态A的 ? 在接下来的两个可能的状态(状态B或C)中,有50–50的机会结束。状态A的值就是所有下一个状态的概率之和乘以到达该状态的奖励之和。 状态A的是0.5。

在图2中,您发现自己处于状态D,只有到状态E的一条可能路线。由于状态E给出的奖励为1,所以状态D的也为1,因为唯一的结果就是获得奖励

如果你在状态F(在图2中),其只能导致状态G,随后状态H.由于状态h具有-1的负奖励 ,状态G的也将是-1,同样对于状态F.

在此井字游戏中 ,连续获得2 X s(图3中的状态J)不会赢得游戏,因此没有奖励 。 但是,处于状态J会使您更接近达到状态K,完成X的行以赢得游戏,因此处于状态J会产生很好的价值

在图4中,您会发现自己处于状态L,正在考虑将下一个X放置在何处。 您可以将其放在顶部,从而使您在同一行中具有2 X的状态M。 另一个选择是将其放置在最底行。 与状态N相比,状态M应该具有更高的意义和价值 ,因为它导致胜利的可能性更高。

因此,在任何给定状态下,我们都可以通过选择产生最高价值的状态来执行使我们(或代理人)更接近获得奖励行动

井字游戏-初始化值功能

井字游戏的价值函数V(s)是赢得状态s的概率。 完成此初始化以定义获胜和失败状态。 我们将状态初始化如下:

-V(s) = 1-如果座席在状态s赢得比赛,则该状态为最终状态

-V(s) = 0-如果座席在状态s输球或将比赛扳平,则为终局状态

-V(s) = 0.5-非终端状态为0.5,在训练过程中将对其进行微调

井字游戏-更新值功能

更新价值功能是代理人通过更新训练过程中已通过状态的价值来从过去的经验中学习的方法。

状态s'是当前状态s的下一个状态。 我们可以通过添加状态SS'之间的价值差异更新的当前状态s 。 α是学习率

由于可以在任何给定状态下采取多种行动,因此在一个曾经带来成功的状态下不断选择一项行动可能最终会错过其他更好的状态。在强化学习中,这就是探索-利用困境

使用探索策略,代理会采取随机动作尝试未探索状态,这可能会找到其他赢得游戏的方法。 通过利用攻击策略,代理可以增加过去为获得奖励而进行的那些操作的信心。 在探索与开发之间保持良好的平衡,并且通过无限次玩游戏,每个州的价值都将接近其真实概率。 探索和利用之间的良好平衡取决于epsilon贪婪参数

在知道代理是赢(奖励= 1)还是输/平局(奖励= 0)之后,我们只能在游戏结束时更新代理在该特定游戏中所玩过的每个状态的 。 终端状态只能是0或1,我们确切地知道初始化期间定义的终端状态。

代理的目标是在玩游戏后学习执行的动作列表后更新值功能。 在每个游戏结束时,由于使用下一个状态的更新每个状态的 ,因此更新过程会向后读取该特定游戏的状态历史记录,并微调每个状态的

井字游戏-利用价值功能

如果进行了足够的培训,代理将可以了解任何给定状态的价值 (或获胜的可能性)。 因此,当我们与训练有素的代理商进行游戏时,代理商会利用漏洞利用策略最大化获胜率。 看看您是否可以与代理商对抗

在游戏的每个状态下,代理都会遍历每种可能性,选择具有最高的下一个状态,从而选择最佳的行动方案。 在图6中,代理将选择右下角以赢得比赛。

结论

在除末期(记录了赢,输或平局)以外的任何进展状态下,代理都会采取行动,导致进入下一个状态,该状态可能不会产生任何回报,但会导致代理更加接近接受奖赏

价值函数是确定处于一种状态的价值 (即获得未来奖励的可能性)的算法。

每个状态的值会通过游戏的状态历史记录按时间顺序反向更新,并且通过使用探索和利用策略进行足够的训练,代理将能够确定游戏中每个状态的真实

定义值函数的方法有很多种,这只是一种适用于井字游戏的方法。

在Github上浏览演示

在Github上查看源代码

嗨! 我是洪静(Jingles) ,目前是阿里巴巴集团的数据科学家,南洋理工大学的博士研究生,也是《 迈向数据科学》和《 哈克农恩》的热情作家。 在Medium上关注我,或在LinkedIn上与我联系。

本文最初发表于“ 迈向数据科学”

From: https://hackernoon.com/reinforcement-learning-the-value-function-hl1a83wwi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值