大脑和小脑——规划和执行

田青

qingtian1771@gmail.com

ttqq@263.net

20208

摘要:自然界中任何的生物体都不会自己建立数学模型,但是他们可以通过学习的方式去掌握运动技能。目前,大部分的机器人控制仍然需要人工建立的模型,用人工模型来控制复杂机器人的难度很大,主要原因是模型的复杂性和不精确性。所以近年来,用学习的方式训练机器人完成任务逐渐成为一种趋势,这种方式虽然取得了一些成效,但是截至到目前(20208月)为止,在训练机器人方面并没有能够提出一个完整清晰的架构,使得机器人可以像生物一样合理的去掌握技能。本文试图在这个方面做一些努力,提出一个简单的人工智能架构:大脑和小脑,它们分别掌管规划和执行。这个架构大概是结合了生物智能、深度学习和强化学习的一种新的架构。大脑和小脑的功能都是学会的,大脑和小脑的分工清晰而简单,大脑做规划不做执行,小脑去执行不做规划。

智能问题

人工智能的发展已经有一段时间了,但是大部分的工作重点是在研究算法层面,也就是用一个算法去解决一个具体问题,例如语音识别问题和图像识别问题。有些智能问题可能比较复杂,例如自动驾驶,它是由多个算法问题组成的,但是这种组成一般不是有机的组成,也就是说组成方式没有体现出一定的通用架构,使得这种架构可以被用于其它的人工智能解决方案。

那么是否存在一个通用的人工智能架构可以解决所有问题,或者至少是大部分问题呢?这个问题可能比较复杂。但是假如我们先不直接考虑人工智能架构的问题,仅仅考虑生物的智能问题,我们就会发现,不论是复杂的生物还是简单的生物,都会体现出一定的智能,而且它们的智能都有一定的相似性,这些相似性表现在:

  • 生物体适合在一个特定的环境中生存。
  • 生物体本身具备适应这个特定环境的行动能力和生存能力。
  • 这些能力会在实践中不断增强,生物体变得越来越聪明。
  • 生物体的很多行为都是有目的的,例如捕食和迁徙。
  • 生物体的这些能力可以遗传

生物所表现出来的这种能力,可以称为智能,或者生物智能。这种智能从生物体出现就开始有了,已经存在了几亿年。我们想象一下,如果把这些智能映射到算法,那么会有多少种算法呢?是每个生物体一种算法?还是每种行为是一种算法?我们有理由相信不可能是每种行为都体现出一种算法,例如人,我们可以通过学习掌握很多技能(行为),但是我们好像不是为每一种技能去发明一个算法,而是差不多用类似的方法去学会了这些技能。

所以一个很有可能的情况是,生物体身上所体现出的这些智能是通过同一种方法得到的,这种方法的特点是:

  1. 生物体本身具备一定的技能;
  2. 生物体在与环境的交互中这些技能得到增强。

在人工智能研究的各个领域中,与这些特点比较接近的领域就是强化学习了,它研究的是智能体和环境的交互问题,就是一个智能体如何与环境交互去完成一个任务或者达到一定目的。例如一个扫地机器人清理地面,机器人就是智能体,地面就是环境,家里的一些家具和物品也是环境,机器人的目标可能就是用最小的代价把房间的地面清理干净。

再如,你命令一个人形机器人去给你拿一瓶可乐,这个机器人就会走到冰箱那里,打开冰箱门,拿出可乐,关上冰箱门,走到你身边,把可乐递给你。这个过程是一连串的动作,是一些任务的有序结合,是由一个一个任务组成的。例如走到冰箱那里,就是一个任务,它包括智能体、环境和目标;打开冰箱门,也是一个任务,也包括智能体、环境和目标。我们可以很轻易的看出来这两个任务的环境和目标是不同的。

一个实用的机器人肯定是可以完成多个不同任务的,但是很多任务是有相似性的,例如“走到冰箱那里”和“走到你身边”,“打开冰箱门”和“关上冰箱门”,“拿出可乐”和“把可乐递给你”,这些任务都有相似性,这种相似性我们后面还会提及,它们都属于一类任务,或者说是一个功能,就是机器人会做某一个事情了。

强化学习

机器人是怎么具备完成任务的能力的,那肯定是人设计出来的,目前大概有两种设计方式去控制机器人完成任务,一个是人为建立模型的方式,另一种是采用学习的方式。深度强化学习目前就是这种学习方式的最好体现,在训练机器人领域有了很多不错的成果。深度强化学习本质上就是强化学习,只不过其中的一些函数用深度神经网络来实现了。所以这里主要先说说强化学习,简单讲讲强化学习是什么,可能不会涉及很多的细节,所以如果你不太了解强化学习,这一部分可能看的不太懂,但是没有关系,因为只要看懂后面的内容就行了,后面才是重点。

一般来讲,主流的强化学习算法大概是这么解决问题的:开始,它先让智能体以“随机”的方式与环境交互,产生一些交互数据,通过这些交互数据来更新这个“随机策略”,使它变成一个“更好的策略”,然后再使用这个“更好的策略”继续与环境交互,产生更多的交互数据,再用这些新的数据去更新“更好的策略”,使策略变得更好。

什么是策略呢,就是在一定情况下你要采取什么样的措施。对于机器人来讲就是面对一个环境它需要采取什么样的动作。所以策略好像决定了一个机器人是聪明还是笨。那么为什么要去不断的更新策略呢?简单的来说就是使机器人变得越来越聪明。

一般来说,策略是针对一个任务的,只有更好的策略才能更好的完成一个任务。还记得上面提到的任务吗?一个任务大概就是智能体和环境的一个简单交互过程,例如机器人从冰箱里拿出一瓶饮料,或者是机器人从桌子上拿起一个杯子。

在机器人拿杯子例子中,好的策略就可以使机器人顺利的拿起杯子,不好的策略可能就是机器人拿不到杯子,或者把杯子碰倒了。所以一个好的策略就导致机器人以合理的运动轨迹去运动,去拿到杯子。所以评价一个策略的好坏就可以变成评价在这个策略下产生的轨迹的好坏,如果在A策略下产生的轨迹比B策略下产生的轨迹好,那么我们就说A策略比B策略要好。

现在用一些公式和图来说明一下强化学习过程:

上面这个图大概说明了智能体与环境的交互过程,神经网络代表智能体,地球代表环境,具体的细节如下:

  • 首先,智能体基本就等于策略,就是图中那个神经网络。策略就是一个函数,有输入和输出,输入就是智能体面对的状态,输出就是智能体采取的动作,这个策略函数可能是一个神经网络也可能是别的函数,深度强化学习的策略函数一般是神经网络。策略函数用\pi_\theta(a|s)来表示,这里的\pi_\theta(a|s)表示的是环境在状态s下采用动作a的概率。一般函数都返回一个具体值,这里为什么是一个概率,因为这个策略函数一般是被训练出来的,训练的结果一般就是,面对一个状态可能会采取不同的动作,采取每一个动作都有一定的可能性。
  • 另外一个很重要的东西就是环境的动态模型:p(s'|s,a),它的意思是环境处于某一个状态s的时候,智能体采用动作a,导致环境变成另一个状态s'的概率。为什么也是一个概率,因为环境是一个黑箱,是动态的,它的返回值是不确定的。智能体在面对同一个状态时采用同一个动作,返回的状态是不确定的。例如下棋,智能体作为一个棋手在盘面是s的时候下了一步棋a,然后对手下了一步棋,环境最终达到另一个状态s',这个s'是不可能通过sa完全预知的,只可能预测出对手大概率会怎么应对。动态模型的不确定性不等于完全随机,如果是这样,那么动态模型就没有意义了,之所以有模型,就是大概率它会返回一些确定的值。
  • 所以,智能体和环境的交互过程大概是这样的,智能体面对环境s,根据自己的策略,采取一个动作a,环境根据自己的动态模型p(s'|s,a),变成了另外一个状态s',这个新的状态就是智能体面对的下一个状态,然后智能体继续根据策略选择新的动作,这样不断循环下去,直到智能体达到目的,或者达不到目的。
  • 最终的结果,从智能体的角度上来看,就是它经历了状态、动作、状态、动作….,这样的一个有时间顺序的序列,我们把这个时间序列称为一条轨迹,通常用来表示。我们可以用来表示这条轨迹的概率,θ表示策略函数的参数,所以轨迹的概率直接解释就是:在策略θ下,产生这个状态和动作时间序列的概率。这个概率可以表示为一些概率的乘积:。它是环境初始状态的概率、策略和环境动态模型的乘积,你可以仔细想想一个轨迹的概率就是这三者的乘积。

上面的这些概念就是强化学习的基本概念。如果我们知道了轨迹的概率,那么评价这个轨迹的好坏其实就是要去评价这个状态动作序列的好坏。动作可能难以评价好坏,但是状态可以,因为一个好的轨迹所经历的状态也应该是好的。试想,如果我们能给每个状态一个分数,然后把每个状态的分数累加起来,就能知道整个状态序列的分数,也就是这个轨迹的分数,所以用这个累加分数就能去评判一个轨迹的好坏。

每个状态所获得的分数称为奖励值,用来表示,t表示时间序列中的某一个时刻,并不是表示在状态获得的奖励值,而是在t+1时刻达到状态所获得的奖励值,这个我们不去细究,知道大概意思就行了。如果要表示在t时刻的奖励值,可以用来表示。所以,轨迹的奖励值就是从开始到最后每个状态奖励值的累加:

从开始到最后,一般称为一个episodeepisode一般翻译成回合。例如机器人完成了一次抓取,或者智能体下完了一盘棋,一个回合就是智能体与环境完成了一次交互过程。有的任务是容易分成回合的,但是有的任务不太容易,例如机器人走路,如果不摔倒,它会一直走下去,这样就很难用回合来区分,或者你可以把它看成是一个永远没有结束的回合。

所以强化学习的目的大概就是下面这个公式:

这个公式的解释就是:采用最好的策略,使得轨迹的累积奖励的期望值最大,什么是期望值,简单的讲就是均值,为什么要用均值而不用实际值,因为即使在相同的策略下,每次得到的轨迹也是不用的,因为环境存在很大的不确定性,当机器人做一个动作时,达到的下一个状态是有一定随机性的,所以每条轨迹就有一定的随机性,每条轨迹的累积奖励值就可能差别很大,所以轨迹的均值(累积奖励的期望值)比单独的一条轨迹的累积奖励值更有实际意义。

讲了这么多才刚刚说清楚了强化学习的目的,简单的说就是一句话:找到最好的策略。围绕这一句话,强化学习领域发展了很多算法,这些算法按照是否使用环境动态模型,大概分成了两类:无模型的算法和基于模型的算法。

这些算法有着细节的不同,但是大概都是按照下面的过程去更新策略的:

这个更新过程大概分为三步:

  1. 使用当前的策略来收集数据。
  2. 使用收集上来的数据来评价一个策略,或者去学习一个模型。
  3. 根据评价来更新策略。

其中,无模型的算法就是不依赖环境的动态模型模型,只是依靠智能体和环境的交互来收集数据,更新策略,比较通用的算法有策略梯度、Q-learning等等,这里不做详细的解释。

基于模型的算法就是依赖环境的模型去寻找一个好的策略,知道环境模型的一个好处就是智能体可以不用和实际的环境交互就能预测出与环境交互的效果,这样就可以推断出一条轨迹的好坏,从而可以根据推断来选择策略去执行。

下面我们先讨论一下模型,再回来讨论算法。

细说动态模型

动态模型到底是什么?简单的回答就是对自然环境的模拟,它表示的是一个函数,就是在t时刻,环境的状态是,如果智能体采取动作,那么它达到下一个状态的概率是多少。还要说的一点就是,如果没有输入,也存在动态模型,因为环境自己也在不断变化。例如自动驾驶汽车,即使汽车停住不动,周围的环境也是在不断变化的。所以这个时候的动态模型可以表示成:

模型是一个数学公式(我们姑且这么认为),和我们学过的任何数学公式一样,它会计算出的一个结果,但是这个计算出的结果未必就是真实环境中的结果,只是对真实环境结果的一个预测。预测值可能和实际运行的结果会有一定的偏差,偏差的原因就是模型的不精确性,就是它不一定能反应出环境的真实情况,因为环境是复杂的。

下面举两个例子来说明一下模型。

第一个例子是预测小球下落的速度。例如我们可以根据牛顿动力学模型计算出某一时刻小球下落的速度,这个问题中学物理就可以解决,所以这个牛顿动力学模型就是我们的模型,这里st就是小球的当前速度,就是重力,它是恒定的,就是下一时刻的速度。但是实际中因为有空气阻力的作用,小球下落的速度是不会等于按照牛顿动力学模型计算出来的数值的,所以这个空气阻力就是环境的复杂性。你可以说我们可以再加上空气动力学模型,把空气阻力考虑进去,这样会准确一点,但是空气是流动的,也会影响小球的运动,这个规律还是抓不住,所以可能在实际运行中,总有一些考虑不到的因素来影响结果,这些因素是模型考虑不到的,所以模型基本是不能完全反映出系统的动态情况。在小球下落这个例子中,动态模型是一个我们可以手写出来的计算公式。

第二个例子是猎豹追逐羚羊。猎豹没有学习过运动学和动力学,在追逐羚羊的时候没有计算公式,它只能根据自己的感知来决定采取什么样的行动,这个也是策略,猎豹的脑袋里有真实的神经元所组成的神经网络的,假设它的参数也表示为θ,那么猎豹的策略也可以表示成。当猎豹看到前面的羚羊处于状态st的时候,根据自己脑袋里的神经网络判断一下,然后采取了动作at。当猎豹采取行动以后,环境会进入下一个状态,环境会进入什么样的状态是由环境的动态模型确定的,也就是由来确定的。猎豹追逐羚羊的动态模型是复杂的,它大概是由猎豹的运动、羚羊的运动以及周围的地理环境组成的。这么看似复杂的动态模型好像很难掌握,但是猎豹可以掌握,否则它就抓不住羚羊,就会饿死。

读到这里你可能会问,小球自由落体的那个例子中,智能体在哪里?如果一定要回答,可能就是万有引力吧

大脑和小脑——规划和执行相关推荐

  1. 元宇宙时代的职业规划与执行

    元宇宙时代的职业规划与执行 李正海 2022 -04 -19 我来给大家介绍元宇宙时代的职业规划与执行. 这个话题是我想了很久的,今天做了一些提炼.其实在元宇宙时代,我们重要的或者说是最重要的一个工作 ...

  2. 小脑控制大脑,还是大脑控制小脑

    最近比较烦躁,烦恼的原因是在小公司待了两年,但工资还没有涨(全公司都这样,发展的慢),想跳槽了.所以周六加班提不起精神,跟领导说想回去,领导把我叫到阳台上聊了会儿,得知是因为工资的事情之后,把我叫到了 ...

  3. 知荐 | 自动驾驶的“大脑”:决策规划篇

    决策规划技术概述 决策规划是自动驾驶的关键部分之一,它首先融合多传感信息,然后根据驾驶需求进行任务决策,接着在能避开可能存在的障碍物前提下,通过一些特定的约束条件,规划出两点间多条可选安全路径,并在这 ...

  4. 【PMP】启动、规划、执行、监控、收尾 五大过程组分别包括哪些管理活动

    启动过程组:定义一个新项目或现有项目的一个新阶段,授权开始该项目或阶段 规划过程组:明确项目范围,优化目标,为实现目标制定行动方案 执行过程组:完成项目管理计划中确定的工作,以满足项目要求 监控过程组 ...

  5. 元宇宙时代的职业规划与执行PPT

  6. 成在规划,赢在执行 ——项目管理思维与技能精要

    成在规划,赢在执行 --项目管理思维与技能精要 课程背景: 为什么团队协作沟通不畅,困难重重,执行力差,战斗力弱? 为什么外部资源协作意愿差.关键时刻掉链子,让团队陷入被动? 为什么项目深受不期而至的 ...

  7. 城市之——未来大脑与规划应对

    [转自]智慧城市决策参考 近日,在城市大脑与未来城市挑战2018峰会现场,浙江省城乡规划设计研究院院长.浙江省政府参事陈桂秋,以"城市之--未来大脑与规划应对"为主题做了演讲.他提 ...

  8. 我们离通用智能机器人大脑还有多远?看看这家科技公司给出的答案

    允峰 发自 凹非寺 量子位 报道 | 公众号 QbitAI 您的机器人管家已就位 想象下,在一个平凡的早晨,你从睡梦中醒来,走进餐厅,看到你的机器人管家正在为你准备早餐:它熟练地将吐司放进烤吐司机中, ...

  9. 大脑的终极秘密——从狮子也有意识谈起

    作者:中国科学院大学教授  谢平 理性思维是意识的高级成分,但它并非人类的专利.在自然界的生存斗争中,人类不仅仅需要通过感觉器官去获取外部世界的印象,还需要对外部世界的事物进行归类.判断与推理,决定自 ...

最新文章

  1. 《图解HTTP》读书笔记--第5章与HTTP协作的Web服务器
  2. Linux系统检测命令有哪些
  3. Java线程6个状态详解
  4. python实现文本编辑器_Python-tkinter实现简单的文本编辑器
  5. Angular 2 Decorators - 1
  6. SpringMVC学习记录--Validator验证分析
  7. 【转】关键字过滤算法
  8. Python中的TCP的客户端UDP学习----第一篇博客
  9. c++取临时文件夹_电脑C盘不足?学会删除这5个文件夹,能节省10G空间
  10. 蓝桥杯第八届省赛本科B组C/C++第九题 分巧克力
  11. 机器学习数学基础--偏导数
  12. 关于固态硬盘开卡转接卡的研究,用SM2258XT测试智微、祥硕、威盛
  13. Linux 定时器 基本使用
  14. 广义线性模型的计算机应用技术学院,SPSS数据分析—广义线性模型
  15. Lucene DocValues索引文件详解
  16. 会议及作用篇--项目管理(十六)
  17. 了解 Fetch API
  18. Python如何图像识别?
  19. 最好用的数据库监控工具和数据库知识
  20. 本周 GitHub 速览:自动化当道,破密、爬虫各凭本事

热门文章

  1. 如何创建一个 react 项目及如何运行?
  2. 计算机组成原理---冯诺依曼体系结构及性能和功耗
  3. Instruction set
  4. CTFshow——命令执行
  5. 无符号数与有符号数比较(易懂实用)
  6. 2022-2028年中国水玻璃行业竞争格局分析及投资发展研究报告
  7. matlab 矩阵大小变换,matlab 矩阵变换
  8. 一款功能强大的 IP 查询工具!开源,放心用
  9. docker搭建c++开发环境
  10. v-chart柱状图点击改变颜色