全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
1793 0
2020-12-09
REINFORCE算法:在强化学习中迈出第一步
让我们用REINFORCE算法解决OpenAI的Cartpole,Lunar Lander和Pong环境。
强化学习可以说是人工智能最酷的分支。它已经证明了自己的才能:令人惊叹的世界,在国际象棋,围棋甚至是DotA 2游戏中击败世界冠军。
在本文中,我将逐步介绍一个相当基本的算法,并说明即使在某些游戏中它也可以达到超人的性能水平。
强化学习涉及无线牛逼^ h设计“代理”与一个交互“环境”,并通过自身学习如何“解决”通过系统的试错环境。环境可以是象棋或赛车之类的游戏,也可以是解决迷宫或达成目标之类的任务。代理是执行活动的机器人。
强化学习-强化
代理通过与环境交互获得“奖励”。代理商学会执行最大化其从环境中获得的报酬所需的“行动”。如果代理积累了一些预定义的奖励阈值,则认为环境已解决。这个书呆子的谈话是我们教机器人如何玩超人的国际象棋或两足机器人走路。
REINFORCE算法
REINFORCE属于一类特殊的强化学习算法,称为策略梯度算法。该算法的简单实现将涉及创建Policy:一个模型,该模型将状态作为输入,并生成将某个动作作为输出的概率。策略本质上是代理的指南或备忘单,告诉其在每种状态下应采取的措施。然后迭代该策略,并在每个步骤中对其进行微调,直到获得解决环境的策略为止。
该策略通常是一个神经网络,该神经网络将状态作为输入,并生成跨动作空间的概率分布作为输出。
强化政策范例
政策:示例
该政策的目的是使“预期奖励”最大化。
每个策略都会在环境的每个站点中产生采取行动的可能性。
政策
策略1与策略2 –不同的轨迹
代理从这些概率中采样并选择要在环境中执行的操作。在剧集结束时,我们知道如果代理商遵循该政策可获得的总报酬。我们通过代理商用来估算给定政策在每个州的“预期奖励”的路径反向传播奖励。
加强-预期的回报
此处,折扣后的奖励是代理商在该将来获得的所有奖励的总和(因系数Gamma折扣)。
折扣奖励
任何阶段的折扣奖励是其在下一步收到的奖励+代理商将来收到的所有奖励的折扣总和。
通过向后传播奖励为每个州计算折扣因子。
通过向后传播奖励为每个州计算折扣因子。
对于上述等式,这是我们如何计算预期奖励的方法:
预期奖励
按照REINFORCE算法的原始实现,预期奖励是几率和折扣奖励对数的乘积之和。
算法步骤
实施REINFORCE涉及的步骤如下:
初始化随机策略(将状态作为输入并返回操作概率的NN)
使用策略玩游戏的N步-记录行动概率(来自策略,奖励来自环境,行动),由代理商采样
通过反向传播计算每一步的折扣奖励
计算预期奖励G
调整策略的权重(NN中的反向传播错误)以增加G
从2重复
在我的Github上使用Pytorch来检查实现。
演示版
我已经在Pong,CartPole和Lunar Lander上测试了算法。在Pong和Lunar Lander上进行培训需要永久性的工作-每次在云GPU上进行的培训都超过96个小时。此算法有多个更新可以使其收敛更快,在此未进行讨论或实现。如果有兴趣进一步学习,请查看Actor-Critic模型和近端策略优化。
购物车杆
图片发布
州:
水平位置,水平速度,磁极角,角速度
动作:
向左推推车,向右推推车
随机播放政策:
随机游戏-总奖励18
随机游戏-总奖励18
经过REINFORCE培训的代理商政策:
训练有素的代理商-总奖励434
训练有素的代理商-总奖励434
月球着陆器
加强月球着陆器随机播放代理
州:
状态是8个向量的数组。我不确定它们代表什么。
动作:
0:什么都不做
1:左火引擎
2:射击引擎
3:火权引擎
经过REINFORCE培训的代理商政策:
月球着陆器接受REINFORCE培训月球着陆器接受REINFORCE培训

这很难训练。在GPU云服务器上培训了几天。
状态: 图片
动作:向左移动操纵杆,向右移动操纵杆
训练有素的经纪人训练有素的代理商
强化学习已经超越了REINFORCE,取得了突飞猛进的发展。我在本文中的目标是:1.学习强化学习的基础知识; 2.显示即使是这种简单方法也可以解决复杂问题。我很乐意在股票交易等一些赚钱的“游戏”中尝试这些游戏……想必这是数据科学家的圣杯。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群