一个公式,两门学科,多种算法,无数款芯片

著名主持人白岩松曾在一本书中提到了一则小故事。在墨西哥,有一个离我们很远却又很近的寓言。一群人急匆匆地赶路,突然,一个人停了下来。旁边的人很奇怪:为什么不走了?停下的人一笑:走得太快,灵魂落在了后面,我要等等它。

走的太快,停下来,等一等灵魂。

是的,在今天这个“996”火遍各大媒体自媒体的时刻,有多少无奈,有多少跟风,又有多少炒作,或许只有时间能够回答。

好长时间没有更新长文了,我也已经离开无线通信算法、基带信号处理器近两年之久,目前在机器人领域不能说是入门,大概可以称之为“刚走到门前的石板上面”。作为一个刚在石板上站立不久的门外汉,我也要停下来,思考一下,等一等被抛在后面的灵魂。停下来思考的好处,或许可以用机器人SLAM算法中的“回环检测(Close-Looping)”来解释,那就是可以修正一下估计的路径,更新一下获得的地图,让自己走的更远更准确。

由于专业及领域限制,难免存在偏差或谬误的地方,还请各位前辈指点一二,笔者感激不尽。

题目叫做《一个公式,两门学科,多种算法,无数款芯片》,公式就是1763年英国学者托马斯·贝叶斯提出的“贝叶斯公式”,或者叫做“贝叶斯定理”。两门学科当然指的就是笔者接触过和刚走门前的无线通信基带信号处理以及概率机器人。基于贝叶斯公式,这两门学科衍生出了多种不同的算法,如最大后验概率MAP、维特比以及GMapping、HectorSLAM、CartoGrapher等。针对不同的算法,为了加速算法处理、降低功耗以及提高效率,无数的学者和工程师又会针对性地设计相关的加速器、处理器和芯片。

为了不让这篇停下来等待灵魂的小短文陷入枯燥乏味的理论推导,笔者将遵循浅尝辄止的原则进行叙述,且大多为白话。

这里说的两门学科就是无线通信和机器人。笔者有幸在博士期间参与了无线通信信道编译码算法和ASIC实现。而在笔者参加工作以后,又幸运地切入到了智能机器人领域。如果说无线通信,或者信号处理是基于香农在40年代发表的论文,那么《概率机器人》则是机器人领域的经典之作,概率机器人学的经典著作,移动机器人学科的必读书籍,对概率机器人学进行全面介绍,专注于算法,所有算法都基于贝叶斯理论。

写到这里让我想起了乔布斯在2005年斯坦福大学毕业典礼上面的演讲《求知若饥,虚心若愚》,里面在介绍自己大学期间不经意误入书法课的经历,说起了“connecting the dots”,“你不能预先把点点滴滴串在一起;唯有未来回顾时,你才会明白那些点点滴滴是如何串在一起的。所以你得相信,你现在所体会的东西,将来多少会连接在一块。”对我而言还真就这样。大学期间接触到了德州仪器的TMS320数字信号处理器,没想到后来读博士竟然自己参与正向设计这些器件;读博期间推导贝叶斯概率公式,没想到工作以后还机缘巧合又重新用到,尽管不再是一名无线通信工程师。

通信译码算法之一:最大后验概率MAP

大多数情况下,最大后验概率MAP译码被视为最优的译码算法,而当先验概率相等时,MAP译码与最大似然ML(Maximum Likelihood,ML)译码等价。然而,最大似然ML译码算法的复杂度与Turbo码的编码长度呈指数增长,对于LTE标准下的编码长度来说,硬件实现几乎是不可能的。

Turbo码的译码思想是,将译码过程分为多步进行,也就是通常所说的多次迭代,在每次迭代中,分量译码器均采用最优的MAP译码算法;同时,分量译码器在前后迭代中存在概率信息交互,最终使得译码性能接近于最大似然ML译码。

简单点说,对于接收到的比特序列,或者准确的说概率信息,需要经过MAP译码算法的判别准则,就是上面这个公式,判断在接收到信息y的情况,发送信息为0还是为1;如果发送序列长度不等于1,那么公式中的条件概率就是随机变量的联合条件概率。

还是回到贝叶斯公式,这里公式的左值就是后验概率,也就是接收到信息y的情况下,发送为信息x的概率;而先验概率prior就是发送信息为0或者1的概率,在译码最开始的时候假设二者是等概率出现,那就是都为50%,似然概率likelihood就是指发送信息为x的情况下接收信息为y的概率,而另外一个我们可以切切实实获得的概率信息就是y,这是接收到的信息。

译码算法实现的复杂性主要存在于两个方面,信息之间的前后依赖关系和译码算法的迭代性质。也就是说当前比特的概率信息更新依赖于上一时刻的状态和度量;而且每多进行一次序列译码,纠错能力就越强,错误比特越少,这也是制约Turbo译码器无法满足5G高速路通信的需求的主要因素之一。

机器人算法之一:同步定位与地图构建算法SLAM

SLAM(Simultaneous Localization and Mapping),同步定位与地图构建,最早在机器人领域提出,它指的是:机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的环境特征定位自身位置和姿态,再根据自身位置构建周围环境的增量式地图,从而达到同时定位和地图构建的目的。由于SLAM的重要学术价值和应用价值,一直以来都被认为是实现全自主移动机器人的关键技术。

相比较于无线通信算法,机器人中用到的同步定位与地图构建算法SLAM,则增加了背景信息,即z,这个信息一般都是通过传感器获得机器人周围的环境信息,比如雷达传感器获得的距离信息,图像传感器获得物体或者深度等信息。而u一般指的是控制信息,比如机器人的制动器。而x一般指的是机器人的状态或者姿态。这里与通信算法的关联在于,当我们获得传感器信息的时候,其实用到的就是无线通信中的信道编译码,需要从接收到的信息序列中解析出需要的距离信息等,其实这样看来,机器人学科其实是可以包含无线通信的,或者说机器人学科是一本多学科交叉融合的学科门类。

而与无线通信算法一样,为了简化算法实现,SLAM算法同样假设随机变量之间的是一个马尔可夫链。例如,当前时刻获得的传感器信息只和机器人当前时刻的状态有关,而与之前的所有状态都无关,这样就可以极大地简化概率公式的推导和机器人算法的实现。

通过借助于贝叶斯准则、马尔科夫简化以及全概率公式等,就可以将复杂的机器人SLAM算法简化成传感器模型或者叫做感知模型,和运动模型,而且可以通过递归估计出机器人的运动轨迹和构建出机器人周围的环境地图。

如果说无线通信基带算法处理的就是一个概率信息,那么机器人所处的环境、所获得的信息、所构建的地图、所行走的路径、甚至所发出的操作,都是概率信息,都是确定的。

无线通信中的译码算法也有很多,基于最大后验概率MAP的译码算法也存在不同变种;而机器人SLAM算法则更加不可胜数,传统的基于激光雷达的2D、3D SLAM算法,以及基于视觉传感器的SLAM算法,还有现在新兴的基于神经网络的SLAM算法,当然还有集合所有这些的多传感器融合SLAM算法等。

关于算法这里我也只能点到为止,希望可以起到抛砖引玉的作用,感兴趣的同行可以查看相关的文献和资料。那就说一说针对上面提到的算法高校研究人员和公司的工程师们研发的一些处理器芯片。

面向无线通信的基带处理器,主要包括德州仪器的C6670系列,飞思卡尔(现在应该成为恩智浦NXP了)Maple系列,以及FPGA厂商Xilinx和Altera提供的处理器IP,CEVA公司的XC系列产品,当然还有高通和华为海思的基带处理器。

而在学术界也存在很多优秀的基带处理器设计,笔者之前所在的团队,曾设计了一款面向4G LTE的基带处理器芯片MaPU,相关成果发表在HPCA2016上面,该处理器也在2015年成功流片。

商用的基带处理器芯片,可以说华为海思和高通占据绝对的优势,最近这两天关于苹果公司的头条,已经足够说明基带处理器的重要性。高通在基带芯片领域的技术能力强势,行业地位领先。高通在协议栈和通讯专利方面积累丰富,专利话语权高。

高通骁龙系列芯片更将应用处理器(AP)和基带处理器(BB)集成在同一SoC当中,在主流安卓手机的中高端芯片上受到广泛采用。2017年全球基带芯片市场份额分布大致如下:高通—53%;联发科—16%;三星—12%;华为海思—7%;展讯和英特尔—12%。此外,高通已于2019年率先发布5G智能手机基带芯片及配套解决方案,为全球通讯芯片领导厂商之一。

简单说了一下无线通信处理器,而在机器人领域的处理器,则更多的也是集中在行业寡头英伟达身上,尽管英特尔也有,华为也有,甚至有些创业公司(就像笔者目前所在的中科昊芯)也在做,但是与寡头相比,还是存在很大的差距。

最具代表性的就是英伟达的NVIDIA:Drive PX Xavier,这是一款号称性能最强的无人驾驶处理器。

Xavier拥有超过90亿个晶体管,是迄今为止打造的最复杂的系统级芯片,凝聚着2000多名NVIDIA工程师为期四年的努力,研发投入高达20亿美元。它基于了一个特别定制的8核CPU、一个全新的512核Volta GPU、一个全新深度学习加速器、全新计算机视觉加速器、以及全新8K HDR视频处理器而打造。并且,借助NVIDIA统一架构,所有早前NVIDIA DRIVE软件开发工作都得以持续进行。它的技术细节非常复杂,但总体来说:DRIVE Xavier可提供更高的处理能力,运行功率更低,每秒可运行30万亿次计算,功耗却仅为30瓦。能效比上一代架构高出15倍。(具体可以参考中科昊芯官方公众号之前分享的一篇综述昊芯出品 计算机视觉模组和处理器深度调研报告)

由于机器人涉及到的领域众多,所以用于处理机器人相关算法的芯片也就五花八门、种类繁多、不一而足。这里由于笔者能力有限,也只能做个引子,感兴趣的同行可以继续深入了解。

结语

还是回到这篇帖子的开始。希望每一位能够看到这篇帖子的我们,在各奔前程的征途中,能够不时地停下匆忙的脚步,等一等,想一想,因为灵魂可能还在身后。

一个公式,两门学科,多种算法,无数款芯片

Junning Wu wechat
Welcome To Contact Me with My Personal WeChat ID(Weixin)