强化学习highway_env代码解读

这篇具有很好参考价值的文章主要介绍了强化学习highway_env代码解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面

作为强化学习的新手,写这个系列的博客主要是为了记录学习过程,同时也与大家分享自己的所见所想。前段时间发布了人生第一篇博客,是关于highway_env的自定义环境。但博客主要是关于如何创建一个自己的环境的py文件,是基于十字路口环境创建的。在经过一段时间的摸索之后,现在基本能理清楚highway_env的代码结构。希望我的分享能帮大家理清环境的实现代码,大伙都能创建出自己的强化学习自动驾驶环境。

highway_env代码结构梳理

highway_env的代码结构相对来说是很清晰的,下图的几个文件构成了环境生成的主要代码:

强化学习highway_env代码解读,人工智能,python,pytorch,pygame

 下面我们就详细来看看这几个文件夹。

envs文件夹

下图的文件是基于一些方法和包自带的一些环境(其中MyIntersection是自己添加的):

强化学习highway_env代码解读,人工智能,python,pytorch,pygame

这些文件具体是怎么写的,等后面有时间我会更新一篇博客说一说自己的理解,在这我重点介绍一下这些文件都是基于哪些方法或者包写出来的。

首先最重要的包是envs/common中的几个文件:

强化学习highway_env代码解读,人工智能,python,pytorch,pygame

如果了解强化学习基础马尔科夫决策过程,从这几个文件的命名都不难猜出它们的主要作用是什么。

首先abstract这个抽象类定义了很多抽象的方法,这些方法可以理解成抽象的MDP问题的更新过程,在使用不同智能体对于环境问题进行训练的时候,这些方法往往会被重写。

action文件可以猜到主要是定义了一些动作空间,在不同环境中我们会选取不同的动作空间。里面主要有连续和离散的动作空间可供我们选择,后面如果有需要我也会更新如何去修改动作空间。

finite_mdp定义了TTC碰撞网格,还没怎么细看,但大概作用是利用TTC计算一个状态奖励。这里面的方法会在状态空间的建立中调用。

graphics主要是可视化函数,不重要的。

observation主要是状态空间的定义,其中定义如下图形式的状态空间,感兴趣大家可以自行了解,如果大家感兴趣我在了解每一种状态空间的特点后可以出一期的博客。

强化学习highway_env代码解读,人工智能,python,pytorch,pygame

以上就是在envs/common的相关代码,这些代码可以构建一个完成的MDP决策过程,但只有决策过程没有用,我们还需要参与交互的道路和汽车。这两个要素分别写在vehicle文件夹和road文件夹中。

 road文件夹

强化学习highway_env代码解读,人工智能,python,pytorch,pygame

 还是一次对每个文件夹的大致功能进行介绍吧。

首先graphics主要是可视化的方法,以及一些渲染过程的参数设置,感兴趣大家可以看看。

lane文件定义了集中类型的车道,有抽闲车道、直线车道、正弦车道和多项式拟合车道,这些车道也是后面road建立的基础。

regulation定义了车辆的优先通行规则,比如避让直行,或者右转现行等,这些基本的交通规则。

road定义了很多生成道路的方法,要结合车道线。行驶规则以及生成车辆才能构成一条路网,而road的一些方法就是用来联系这一系列的元素。详细的大家可以参考envs/中已经配置好的环境py文件,能了解到道路的生成方式。

vehicle文件

最后是生成车辆的方法文件:

强化学习highway_env代码解读,人工智能,python,pytorch,pygame

在behavior文件中主要定义了纵向和横向两种控制策略的方法,定义车辆间的行为控制,这里面不涉及动作的输入,因此这里面的方法针对所有的环境车辆和主车都适用。

controller文件定义了主车执行动作的控制逻辑,修改动作空间也需要修改这里面的控制逻辑。

dynamics是作者自己写着玩的一个动力学模型,感兴趣的同学可以结合这段代码,看能不能将运动学模型改成动力学模型。

kinematics定义的应该是一个简单的自行车运动学模型,这里可能车辆专业的同学比较清楚,主要是用车辆的x和y的速度以及航向角描述运动状态的模型,是属于比较简单的车辆运动学模型。同时将状态量以字典形式储存,后续训练的时候会使用。可以自行修改一些参数。

graphics同样是可视化方法。

最后的objects应该是将道路中所有对象都看成矩形,可以调整车的大小,同时基于几何尺寸写了碰撞检测的方法。这里面的类被调用在了kinematics,大家可以依据自己需要的环境进行参数修改,其中还定义了一个生成障碍物的方法。

总结

以上是对highway_env的代码解析,由于自身才疏学浅,很多地方可能理解有误,希望各位大佬批评指正。同时由于代码量较大,很多细节都是一笔带过,没有详细说明细节,还请见谅。后面我也会依据情况和反馈更新一些环境配置代码分析、动作空间修改,多种状态空间的对比和强化学习基础等相关内容。希望能与各位大佬多多交流学习。

 文章来源地址https://www.toymoban.com/news/detail-729452.html

 

 

 

到了这里,关于强化学习highway_env代码解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【人工智能】— 学习与机器学习、无/有监督学习、强化学习、学习表示

    贝叶斯网络提供了一个自然的表示方式,用于描述(因果引起的)条件独立性。 拓扑结构 + 条件概率表 = 联合分布的紧凑表示。 通常易于领域专家构建。 通过变量消除进行精确推断: 在有向无环图上的时间复杂度是多项式级别的,但在一般图上为 NP-hard。 空间复杂度与时间

    2024年02月07日
    浏览(79)
  • 通用人工智能之路:什么是强化学习?如何结合深度学习?

    2015年, OpenAI 由马斯克、美国创业孵化器Y Combinator总裁阿尔特曼、全球在线支付平台PayPal联合创始人彼得·蒂尔等硅谷科技大亨创立,公司核心宗旨在于 实现安全的通用人工智能(AGI) ,使其有益于人类。 ChatGPT 是 OpenAI 推出的一个基于对话的原型 AI 聊天机器人,2022年12 月 1

    2024年02月16日
    浏览(56)
  • 人工智能导论——机器人自动走迷宫&强化学习

    强化学习是机器学习中重要的学习方法之一,与监督学习和非监督学习不同,强化学习并不依赖于数据,并不是数据驱动的学习方法,其旨在与发挥智能体(Agent)的主观能动性,在当前的状态(state)下,通过与环境的交互,通过对应的策略,采用对应的行动(action),获得一定的奖

    2024年02月06日
    浏览(60)
  • 走进人工智能|强化学习 AI发展的未来引擎

    前言: 强化学习是一种通过智能体与环境交互,通过尝试最大化累计奖励来学习最优行为策略的机器学习方法。 本篇带你走进强化学习!一起来学习了解吧!!! 强化学习是一种机器学习方法,旨在通过试错来学习正确的行为。与其他机器学习方法不同,强化学习的主要目

    2024年02月10日
    浏览(83)
  • 强化学习DDPG:Deep Deterministic Policy Gradient解读

    DDPG方法相比于传统的PG算法,主要有三点改进: A. off-policy策略 传统PG算法一般是采用on-policy方法,其将整体强化学习过程分为多个epoch,在每个epoch完成一次policy模型和value模型更新,同时在每轮epoch都需要根据决策模型重新采样得到该轮的训练样本。 但当同环境交互代价比

    2024年02月09日
    浏览(60)
  • 通用人工智能技术(深度学习,大模型,Chatgpt,多模态,强化学习,具身智能)

    目录 前言 1.通用人工智能 1.1 生物学分析 1.2具身智能 1.2.1当前的人工智能的局限 1.2.2 具身智能实现的基础 1.2.3 强化学习(决策大模型) 2.结论 往期文章 参考文献       目前的人工智能实质上只是强人工智能,或者说单个领域的通用人工智能。比方说Chatgpt它属于自然语言

    2024年02月07日
    浏览(86)
  • 深度强化学习与人工智能:如何实现高效的资源分配

    深度强化学习(Deep Reinforcement Learning, DRL)是一种人工智能技术,它结合了深度学习和强化学习两个领域的优点,以解决复杂的决策问题。在过去的几年里,DRL已经取得了显著的成果,例如在游戏、机器人控制、自动驾驶等领域的应用。在资源分配方面,DRL可以帮助企业更有效地

    2024年02月21日
    浏览(69)
  • 人工智能的分类:机器学习/专家系统/推荐系统/知识图谱/强化学习/迁移学习/特征工程/模式识别

    机器学习 机器学习算法工程师:技术路线、方向选择、职业规划、最新技术(从小白到大魔王全攻略)_会害羞的杨卓越的博客-CSDN博客 专家系统 知识图谱 知识图谱:实体-关系-实体/知识建模/知识获取/知识融合/知识存储/知识应用_会害羞的杨卓越的博客-CSDN博客 特征工程

    2024年02月16日
    浏览(58)
  • 强化学习在人工智能的发展中的重要性与前景

    强化学习(Reinforcement Learning, RL)是一种人工智能(Artificial Intelligence, AI)技术,它通过在环境中进行交互,学习如何取得最大化的奖励。在过去的几年里,强化学习技术取得了显著的进展,并在许多领域得到了广泛应用,如游戏、自动驾驶、机器人控制、语音识别等。 在本文中,

    2024年02月20日
    浏览(77)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包