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

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

田青

[email protected]

[email protected]

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

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bizzard

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值