人工智能导论——机器人自动走迷宫&强化学习

这篇具有很好参考价值的文章主要介绍了人工智能导论——机器人自动走迷宫&强化学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题重述

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

  强化学习的几个重要的组分是:

  • 环境,即智能体所处的外来环境,环境可以提供给智能体对应的状态信息,并且基于智能体一定的奖赏或者乘法。
  • 智能体:智能体是强化学习中的学习和决策主体,他可以通过与环境的交互来学习改进其在当前环境下采取的决策策略。
  • 状态:用于描述当前环境与智能体的情况,或者所观测的具体的变量。
  • 行动:智能体基于观察到的状态所采取的操作或者决策
  • 奖励:环境根据智能体所采取的行动和当前的状态给与其的反馈。

  强化学习的目标是通过学习,不断优化自己的决策策略,使得对于任意一个状态下,智能体所采取的行动,都能够获得最大的奖励,值得注意的是,这种奖励是长期奖励,而非眼前奖励。我们为了实现这一目标,通常会引入价值函数和动作-价值函数来评估行为的好坏,同时使用一定的算法和方法来不断迭代价值函数,在优化迭代价值函数同时,我们实际上就是在优化智能体的决策策略,这是因为事实上价值函数就是表示智能体在时刻t处于状态s时,按照策略π采取行动时所获得回报的期望。价值函数衡量了某个状态的好坏程度,反映了智能体从当前状态转移到该状态时能够为目标完成带来多大“好处”。我们通过迭代价值函数,就可以不断的迭代自己的行动策略π。

  机器人走迷宫问题是一个经典的强化学习的基本问题,我们可以将机器人看做是智能体,将迷宫看做环境,将机器人所处的地方视为状态,机器人的行动称之为动作,机器人根据当前的迷宫周围的环境所采取的动作称之为策略,每次移动是否合法,是否到达迷宫终点视为环境给予的奖励。

二、设计思想

  我们考察机器人走迷宫问题,由于迷宫是有限范围的迷宫,迷宫的状态是有限的,针对这种情况,我们可以采用深度优先搜素或宽度优先搜索实现对状态的穷举,然后探索出一条符合条件的路径。针对宽度优先搜索,题中已经给出了对应的代码,构建了一颗搜索树,然后通过层次遍历的办法来搜索,我们在这里考虑使用深度优先搜索。

  深度优先搜索的实现方法是递归与堆栈,可以看做“一条路走到黑,不见黄河不回头,不见棺材不落泪”,他会沿着一条路径一直走,直到走到不合法死胡同为止。我们在当前状态下,可以通过函数得到可以走的路径,然后从中选择一个,进行递归传参,然后继续这个过程,直到走到死胡同或者路径终点为止。不过值得注意的是,我们需要用到回溯算法:回溯算法的本质是,我们这次搜索不希望对于下一次搜索产生影响,所以想要完全消除掉本次搜索对于环境的影响,在这里我们采用了一个vis数组来判定该状态是否被遍历过,采用了一个path数组来存储每次采取的动作是什么,我们回溯的思路便是在搜索完或者走到死胡同后往回走,将当前搜索完的path删掉,同时vis数组置0,这种算法的正确性是显然的,并不会陷入无穷的遍历过程,因为对于每一个状态,我们采取的动作都是唯一的,我们在每一个状态都会遍历对应的动作,而不会往回遍历,回溯的目的并不是回溯动作,而是删除当前搜索对于未来搜索的影响。这便是我们深度优先搜索的设计思想。

  接下来我们考虑实现非搜索算法,即使用强化学习的方法:强化学习首先需要明确优化的对象即价值函数和动作价值函数:

我们不妨假设环境所给智能体的奖赏为:
        maze.set_reward(reward={
            "hit_wall": -10.,
            "destination": 50.,
            "default": -0.1,
        })

  即撞墙的奖赏为-10,到达重点奖赏为50,正常情况下的奖赏为-0.1,撞墙需要提供一定的惩罚是显然的,而且惩罚力度要尽可能的大,以鼓励智能体去探索可行的路径。

  接下来我们考虑优化价值函数和动作价值函数,我们考虑采取Q-learning算法进行迭代。Q-learning是一个值迭代算法,而不是策略迭代算法,下面简要介绍一下值迭代和策略迭代之间的差异:

  值迭代是一种基于迭代更新价值函数的方法,旨在找到最优的价值函数和策略。它通过反复迭代计算每个状态的值函数,直到值函数收敛到最优值函数。具体而言,值迭代的步骤如下:

  • 初始化所有状态的值函数为任意值。
  • 对于每个状态,根据当前值函数和当前策略,计算其更新后的值函数。
  • 重复步骤2,直到值函数收敛到最优值函数。
  • 根据最优值函数,得到最优策略。

  而策略迭代是一种同时优化价值函数和策略的方法。它交替进行策略评估和策略改进的步骤,直到策略收敛到最优策略。具体而言,策略迭代的步骤如下:

  • 初始化策略为任意策略。
  • 策略评估:根据当前策略计算每个状态的值函数。
  • 策略改进:根据当前值函数选择每个状态的最优行动,更新策略。
  • 重复步骤2和步骤3,直到策略收敛到最优策略。

  值迭代和策略迭代都可以用于找到最优的策略,但它们在算法的执行方式和收敛性质上有所不同。值迭代通常需要更多的迭代次数来达到收敛,但每次迭代的计算量较小。策略迭代在每次迭代中都需要进行策略评估和策略改进的步骤,计算量较大,但通常收敛更快。

  我们在此处采取Q-learning算法进行值迭代。Q-learning算法会将状态和动作构成一张表来存储Q值,如下所示:

人工智能导论——机器人自动走迷宫&强化学习

  Q值为动作价值函数,具体的计算公式为

人工智能导论——机器人自动走迷宫&强化学习

  也就是说,当前状态下,采取动作a的Q值为环境即时的奖赏以及到达下一个状态后,执行任意行动后所获得的最大奖赏的γ倍,此处的γ为折扣因子,换句话说,当前状态的Q值取决于环境的即时奖赏和未来的长期奖励,其中长期奖励的定义方法是递归定义。

  我们的Q-learning的本质就是维护一个Q表,在Q表收敛后,根据Q表进行决策,由于强化学习是一个马尔科夫过程,当前时刻的奖赏与事件无关,只与状态和采取的行动有关,所以我们可以在某一个状态下,找到Q表中对应获得奖赏最大的动作进行行动,然后根据行动后到达的状态继续行动,以此类推,直到到达目标点。

  如何根据Q表进行决策的过程我们已经说明,接下来我们考虑如何对Q表进行维护:维护Q表是通过不断更新Q值实现的,具体来说,我们对于每一个时间步的状态,会选择一个动作a,值得注意的是,该动作的选择并不是通过简单的贪心找最大实现的,我们通常会使用贪心策略,即在某一个状态下,有的概率选择其余的部分进行探索,有1-的概率选择最高的奖赏进行迭代,是超参数,为了平衡利用和探索,类似于MCT中的超参数c。在选择完动作a后,观察到奖励和下一个状态,根据我们的更新规则对Q表的Q值进行更新,然后跳转到下一个状态,以此类推。

  值得注意的是,我们更新Q表的Q值,采用较为保守的策略进行更新,引入松弛变量α,具体而言,公式如下:

人工智能导论——机器人自动走迷宫&强化学习

  也就是说,我们的值并不完全通过计算的新Q值得到,而是通过新Q值和旧Q值线性加权得到的。
我们考虑基本的Q-learning有一个问题:我们的Q值取决于动作价值函数,动作价值函数就与状态耦合,如果状态过多,有些状态可能始终无法采样到,因此对这些状态的q函数进行估计是很困难的,并且,当状态数量无限时,不可能用一张表(数组)来记录q函数的值。我们考虑多层感知机(MLP)是一个通用的函数逼近器,可以以任意精度逼近任意多项式函数,所以我们考虑采用深度神经网络来拟合Q函数,而不是通过值迭代的方法对Q值进行计算。这便是我们的DQN(Deep-Q-Learning)

  • 初始化q函数的参数θ
    • 循环
      • 初始化s为初始状态
      • 循环
        • 采样a∼ϵ−greedy_π(s;θ)

        • 执行动作a,观察奖励R和下一个状态s′

        • 损失函数

        • 人工智能导论——机器人自动走迷宫&强化学习

        • 根据梯度∂L(θ)∕∂θ更新参数θ
          s←s′

      • 直到s是终止状态
    • 直到q_π收敛

  我们的损失函数一般而言是MSE损失函数,主要刻画了当前神经网络拟合的Q值与我们计算出的Q值之间的差异,通过不断优化减少损失函数来更新神经网络的参数。

  值得注意的是,我们有一些小tricks例如经验重现,经验重现是指我们建立一个经验缓冲区,用于存储过去的状态,所采取的动作,获得的奖励和更新后的状态,这样做的动机是,如果我们只使用当前的经验来更新模型参数,容易受到样本的相关性和序列效应的影响,导致不稳定的学习和收敛困难。

  我们考虑使用经验缓冲区对神经网络进行优化,每次随机选取一定量的样本进行更新迭代,这样做就可以避免样本的相关性的影响。

  接下来我们考虑损失函数,在损失函数中,q函数的值既用来估计目标值,又用来计算当前值。现在这两处的q函数通过θ有所关联,可能导致优化时不稳定,我们考虑让损失函数中的两个q函数使用不同的参数计算。

  • 用于计算估计值的q使用参数θ−计算,这个网络叫做目标网络
  • 用于计算当前值的q使用参数θ计算
  • 保持θ−的值相对稳定,例如θ每更新多次后才同步两者的值θ−←θ

三、代码内容

  代码内容略

四、实验结果

  对于实验结果,可以完全通过网站上的几个例子,并且程序运行时间特别快
人工智能导论——机器人自动走迷宫&强化学习

人工智能导论——机器人自动走迷宫&强化学习

人工智能导论——机器人自动走迷宫&强化学习

人工智能导论——机器人自动走迷宫&强化学习

五、总结

  总体来看,本次实验符合预期,DQN的效果特别不错,在实验中,遇到的比较大的问题是建立DQN网络和调整相应的超参数,我们调整超参数的策略可以通过在本地运行不同maze大小,看训练完之后,机器人采取一定行动能否到达最终的目的地,如果不能到达目的地,看机器人的行动轨迹,调整不同的超参数的值来使模型达到最佳的效果。

  朴素的搜索算法本来我写了一个传递location参数的版本,但是评测要求不能传递这个参数,所以我们只能将其声明为全局变量进行使用,总体来看,本次实验难度适中,特别合理,收获很大!文章来源地址https://www.toymoban.com/news/detail-461116.html

到了这里,关于人工智能导论——机器人自动走迷宫&强化学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 人工智能与机器人:实现智能化的未来

    人工智能(Artificial Intelligence, AI)和机器人技术(Robotics)是当今最热门的技术领域之一,它们正在驱动我们进入一个智能化的未来。人工智能是指一种使计算机能够像人类一样思考、学习和理解自然语言的技术。机器人则是一种自主行动的物体,它可以接收数据、执行任务

    2024年01月23日
    浏览(83)
  • 人工智能ai写作系统,ai智能写作机器人

     人工智能AI大数据深度:基于伪原创算法,采用神经网络算法,在超过1535000篇文章中进行自动学习、聚合算法进行人工智能的创建,内容语义不变,媒体阿里、腾讯、百度均于日前在百家号内容创作者盛典上推出人工智能创作支撑平台创作大脑。 智能助手可以为人类创作者

    2024年02月10日
    浏览(70)
  • 开发ROS机器人的人工智能功能

    机器人技术的发展已经进入了一个新的高潮,随着计算能力的不断提高和传感器技术的不断发展,机器人在各个领域的应用也越来越广泛。在这个背景下,机器人的人工智能功能也变得越来越重要。ROS(Robot Operating System)是一个开源的机器人操作系统,它提供了一系列的库和

    2024年01月23日
    浏览(59)
  • 大象机器人人工智能套装2023版深度学习协作机器人、先进机器视觉与应用场景

    介绍当前的版本 今天我们要介绍的是aikit2023,aikit2023是aikit的全新升级版。 AIkit 2023 是一套集视觉,定位抓取、自动分拣模块为一体的入门级人工智能套装。 该套装基于python平台,可通过开发软件实现机械臂的控制,简单易学,能够快速入门学习人工智能基础知识,启发创新

    2024年02月13日
    浏览(64)
  • 人工智能与机器人:未来的挑战与机遇

    作者:禅与计算机程序设计艺术 随着互联网、智能手机等新技术的不断推出,人们对人工智能领域的关注也越来越高。在这个领域里,研究人员已成功开发出可以进行各种各样的人类活动的机器人。不过,这一切并非都没有风险,有可能带来一些负面影响,比如健康危害、安

    2024年02月07日
    浏览(52)
  • 搭建人工智能wx机器人完整版教程

    参考搭建流程 首先需要下载Ubuntu 20.04 镜像包 阿里云开源镜像包 下载方式: 打开以上网站--点击20.04/--点击ubuntu-20.04.5-live-server-amd64.iso下载 项目开源地址 https://github.com/zhayujie/chatgpt-on-wechat NxShell 下载地址 https://xiaodao.lanzoui.com/b0dr4mztg VMware 17(自行网上找有很多资源) 安装完N

    2024年02月09日
    浏览(71)
  • 免费的chartGPT 人工智能机器人问答展示

      无意中发现一个特别好用的AI工具,试着问了几个最近一直困扰我的小孩子的幼小衔接的问题,发现比度娘好用。给出的答案更加智能,还可以免费试用。 对于日常的一些问题,回答更具针对性    日常写代码也能轻松搞定  人工智能是一种让计算机系统具备智能的技术和

    2024年02月07日
    浏览(62)
  • ChatGPT——OpenAI推出的人工智能聊天机器人

    ChatGPT——OpenAI推出的人工智能聊天机器人 [ 编辑] ChatGPT 全称为“chat Generative Pre-trained Transformer”,翻译成中文就是生成型预训练变换模型。它是美国公司OpenAI在2022年11月30日发布研发的聊天机器人程序,能用于问答、文本摘要生成、机器翻译、分类、代码生成和对话AI。 [1

    2024年02月04日
    浏览(77)
  • 走进人工智能|机器人技术 人机协作新纪元

    前言: 机器人技术为人类提供协助、增强生产力,改善生活质量,并推动科技进步和社会发展。 机器人技术作为现代科技领域的重要研究方向,已经在各个领域展现出巨大的潜力和影响力。 随着人工智能、感知技术和机械工程的进步,机器人能够模拟和执行人类的动作和任

    2024年02月12日
    浏览(60)
  • 【人工智能】Embodied AI : 人工智能的下一步,已经卷到了机器人了

    The goal of embodied artificial intelligence is to create agents, such as robots, which learn to creatively solve challenging tasks requiring interaction with the environment. 随着科技不断发展,人工智能(AI)已经变得越来越成熟,并在各个领域取得了巨大的突破。从数据分析到语音识别,再到无人驾驶等等,我们

    2024年02月09日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包