在 WAIC 2021 AI 开发者论坛上,苏黎世大学与苏黎世联邦理工学院终身教授、苏黎世神经信息研究所 INI 所长、SynSense 时识科技联合创始人 & 首席科学家 Giacomo Indiveri 带来主题为《低功耗人工智能算计体系中的类脑策略》的线上主旨演讲。
以下为 Giacomo Indiveri 在 WAIC 2021 AI 开发者论坛上的演讲内容,机器之心从事了不改变原意的编辑、整理:
大家好,我是 Giacomo Indiveri,来自苏黎世大学及苏黎世联邦理工神经信息研究所,很高兴有机会在这里跟大家一起探讨仿生的低功耗人工智能算计体系。人工智能一词近几年无比流行,实际上,人工智能算法和收集可以回溯到上世纪 80 年代。尽管这些收集早在 80 年代就被第一次成功展示,但也仅是在近几年,算法和算计体系,才开始展现出比传统解决方式更胜一筹的优势。
事实上自 2009 年起,机器视觉领域有了起步发展,2011 年第一个卷积神经收集应用反向传播算法从事训练,得到了令人印象深刻的结果,这导致了整个领域的爆炸式增长。实际上这种方式成功的原因,就如我所说,自很多年前就开始探索了,但直到近几年我们才得以延续这一成功,并实行真实令人印象深刻的性能。这是因为在技术层面,硬件技术开始提供足够的算力,使这些收集能够有很好的表现。其次,现在已经有了能够用来训练这些收集的可用大数据,这也是上世纪 80 年代所没有的。最后,还有一些技巧以及改进在算法中得以运用,使得这些收集无比稳定并且性能良好。
然而,这类方式确实存在一些问题,大多数该类算法需求大量存储及功耗层面的资源来完成训练。而事实上,如果我们做一个估算就可以看到所有的算计设备需求多少能量,才能在世界范围内实行这类神经收集。据估计,到 2025 年,在 ICT 产业我们将消耗整个世界大约 20% 的能源,这显然导致了一个不可持续发展的问题。
这些收集需求极高的功耗还有另外一个原因是它们需求大量的数据和存储资源。特别是这些收集需求将数据从内存中读取并转移到算计单元,再将算计结果存回内存。因此通常情况下,内存应用的是 DRAM 芯片,而这些 DRAM 比任何算计操作的成本高出至少 1500 倍,例如 CNN 加速器中的 MAC 操作。所以事实上,我们并没有做大量算计,而是来回移动的比特消耗了大量的能量。
另一个更根本的问题则不仅与技术有关,还与理论和算法有关。例如,AlphaGo 是一个无比令人印象深刻的演示,但其可应用的领域却是无比狭窄的,因为它是只针对一个无比具体领域的设计。这类收集被编程以执行一组有限的任务,并在一个预先确定的、预设的范围内运行。它们不像动物的大脑那样具有通用性。因此,尽管我们确实称它们为人工智能,但其确实与自然界的智能有很大不同,与我们在动物和人类身上看到的智力不一样。
这些人工智能算法的核心是反向传播(BP)算法,或者是基于工夫序列的 BPTT 算法。这其实是一种算法的仿生,即使它们可以用来解决无比强大的问题,但通过渐进式的改变来改进 BPTT 可能不会形成突破性的进展,从而无法帮助我们从人工智能走向自然智能,而大脑的工作方式实际上与 BPTT 算法有很大不同。如果你研究一下神经科学,研究真实的神经元、突触和大脑的算计原理,你就会意识到这存在着很大的区别。
甚至连 Geoffrey Hinton,反向传播算法的发明者之一,也在采访中声称:他深度怀疑反向传播算法,并认为这不是大脑的工作方式。事实上他认为,未来我们对大脑的理解真的必须超越 BPTT,而这将要依赖于未来的研究者们,他们需求对已有工作抱有质疑的态度,并尝试超越现有最前沿的科技。
而这个问题是本质性的,存在于理论以及正在开发的算法之中,同时也是我们在技术层面上遇到的问题。所以这个问题已经为许多社区、机构所共识。例如,最近由 John Shalf 撰写的一篇论文展示了如何改善这些问题,并试图以不同的路径方式实行算计性能的提升,超越现有方式。
一种思路是寻找新的材料和设备来代替并超越硅材料,借助新材料来提高算计性能。另一种思路则是仅应用现有基于 CMOS 工艺的架构,尝试找到封装和构建这些架构的更有效方式,这算是一种循序渐进的前进方式。最后,John Shalf 表示最有希望的思路是把这两个方向结合:设计新的算计模型来超越现有模型。
仔细考量这条特殊路径就会发现,它基本上是把新的架构、新的封装体系地结合起来并结合新的存储和理论,其中最有希望的方式之一是神经拟态。
什么是神经拟态?这是我本次报告的核心内容,同时也是我们在苏黎世大学和苏黎世大学的新创公司 SynSense 时识科技专注的领域。这类方式采用新材料、新器件、新架构和新理论,并试图真实超越当前解决方案。神经拟态这个词实际上是由 Carver Mead 在 80 年代末提出的,现在又多了一些新的含义。
至少有三大群体在应用神经拟态这个词。
最早可以追溯到 Carver Mead 基于 CMOS 工艺设计电子电路来放荡大脑的研究,他试图探究如何通过建立等价的电路来理解大脑的工作原理,可以说是真实试图重现大脑的物理机制。因此一类研究群体通常采用亚阈值放荡电路来实行用于算计的神经元动态,采用异步数字逻辑来实行跨芯片、跨核的脉冲传输及通信,这是真实的基础研究。
另一个正在应用神经拟态这个词的群体旨在设计实行芯片和器件来解决实际问题。因此该群体正在构建能够实行脉冲神经收集的加速器或放荡器的芯片。请注意不是仿真器,而是脉冲神经收集放荡,并且通常应用数字电路。例如 IBM 的 TrueNorth 芯片、英特尔的 Loihi 芯片、欧洲的人脑计划项目(Human Brain Project,HBP)都在尝试应用放荡电路、ARM 协处理器、ARM 处理器来实行脉冲神经收集。这是一个保守的方式,它确实可以实行大规模的神经收集,但实际上目前它更像是一种探索性的方式。人们在探索这种应用数字电路来放荡脉冲神经收集的方式可以用来做什么。
最后,还有一个应用神经拟态这个词的是开发新型存储技术的群体,致力于研究能够实行长期非易失性存储的纳米级器件或忆阻器。因此这个群体应用神经拟态这个术语是因为这些设备实际上可以存储一个变化的电导,这与真实的突触的工作方式无比相似,生物突触实际上通过改变其电导率来改变突触权重。而应用神经拟态的相关思路能够实行存内(in-memory)算计架构,这也无比类似于真实生物神经收集的工作方式,而且它确实可以创造出高密度的阵列。因此,我们实际上可以通过应用放荡电路的方式来放荡数字脉冲神经收集。
我们希望通过应用存内算计技术创建一个新的领域,我在此称其为类脑智能,将有可能实行有效的、类似于生物大脑的设备。想要真实理解类脑设备,首先我们要理解生物大脑的机制。
从理解 Carver Mead 的方式开始,通过研究生物学来实行基础研究,并尝试从所有研究成果中获取最佳的设备、算计原理等。该过程会应用放荡、机器学习、神经科学以及大脑研究的一些方式。
在此我想强调一下仿生人工神经收集和真实存在于大脑中的生物神经收集二者的区别。在人工神经收集中可能会有一个输入的加权和,所有输入都进入一个单点神经元,然后该神经元基本上是对这些输入求和或积分,然后乘上权重,因此这种收集有一个特点是包含大规模的权重乘法或矩阵乘法操作。并且存在一种非线性,如果是脉冲神经收集则是脉冲非线性,如果是人工神经收集则是阈值非线性。在生物学中,神经元也会整合其所有具有不同权重的突触输入,因此仿生人工神经收集会有类似的加权输入,但这是通过器件的物理个性实行的,因此物理学在算计方面发挥着重要作用。
实际上突触不是在做乘法,而是做一些工夫算子积分,利用非线性,并除以一些东西,这比单纯的输入加权和要复杂得多。此外,神经元有一个轴突,它通过轴突实行输出,基本上是应用携带工夫信息的脉冲,因为轴突越长,脉冲通过轴突传到目的地所需的工夫就越长。此外,轴突的厚度和髓鞘的数量也会影响传输的速度。因此工夫这个维度也是无比重要的。
综上所述,二者最大的区别是:在算计机和 GPU 上放荡的人工神经收集只是一种放荡了真实神经元基本属性的算法;而生物神经收集则是应用算计元件的工夫动态和物理属性来运行算法。
实际上在这些收集中,架构的结构就是算法,硬件和软件之间也没有本质区别,一切都是一个整体。
理解应用 CMOS、Memristors 或 DNA 算计等方式构建硬件或软件的架构的原理将有望实行比人工神经收集更高效、更强大的算计体系。
但真实存在差异的是,一方面算法实际上是带有一些非线性的简化的矩阵乘法操作,这些操作能够得到令人印象深刻的结果。另一方面,架构本身是一种算法,算计的物理属性是其中的关键因素。通过体系的动态来运行算法将真实实行低功耗的、高效的、非线性的个性。如果我们研究一下动物的大脑,包括人类的大脑甚至是昆虫的大脑,就会发现都是如此。
如果我们想知道如何做到这一点,我们就需求在算计方面从事彻底的范式转变。标准算计架构基本上都是基于冯 · 诺伊曼体系,其中 CPU 和内存是分离的。就像我刚才说的,CPU 与内存二者来回传输数据实际上消耗了几乎所有的能量。而在 CPU 内部从事算计则会更加高效,并且比在大脑内部传输数据成本要低。实际上在神经元内部,突触存储了权重的值,也就是说内存和算计是分布在一起的,不存在数据的来回传输。整个工作机制都是在突触和神经元中完成的,并且存在许多并行分布的突触和神经元,因此内存和算计是交织在一个分布式体系中,这确实是一个很大的区别。
因此如果想做到真实的高效节能,我们必须了解一下大脑的工作原理,应用这些受生物大脑启发的策略。其中重点是基本要应用处理元件的并行阵列,且存算一体,这与时钟复用电路有本质区别。
例如,假设我们用 64 个 CPU 来放荡数以千计的神经元,我们要利用时钟多路复用电路在这 64 个 CPU 中对微分方程从事积分。如果遵循类似大脑的策略,那么要放荡 1000 个神经元就必须要有 1000 个并行分布的电路分布在芯片版图中,然后基于放荡电路、数字电路的物理属性来运行这些电路。这些电路必须是并行分布的,以从事并行运算。并且存算分布在一体,这确实是降低功耗的诀窍。
如果我们利用放荡电路,则可以应用电路的物理学个性来从事算计,而不是应用抽象化的微分方程及其数值积分,我们是真实在应用器件的物理原理来从事算计。在功率、延迟工夫等方面,这种方式的效率要高得多。此外,工夫域真的很重要,体系的工夫动态必须很好地匹配到我们想要处理的信号。
因此,如果我们想拥有功耗极低的体系,例如我们想要处理语音,就必须在体系中加入一些类似于大脑中算计基质的元素,例如调整算计机的工夫常数。以语音为例,音素的工夫常数为 50 毫秒左右,因此我们必须放慢芯片的处理速度,以便让动态和工夫常数与 50 毫秒一致。
所以在此,芯片将以赫兹或数百赫兹的速度运行。而绝对不是像 CPU 或 GPU 那样的百万赫兹或千兆赫兹。即便采用速度缓慢的并行阵列,也依然可以得到无比快的算计速度。即使其中用到的元件有些缓慢,但这并不意味着我们不能实行一个无比快的反应体系,因为元件是并行工作的。
因此在某一时刻,只要有输入出现,总是会有一两个元件会立即被激发。虽然我们的动态个性属于毫秒级,但是也可以有微秒、纳秒级的响应工夫。如果我们想要理解如何从事这种范式转变的话,这也是另一个需求牢记的关键点。
在苏黎世大学、苏黎世联邦理工学院(ETH)以及苏黎世神经信息研究所 INI,我们构建这类体系已经有很多很多年了,并且直到现在也仍然在搭建这类体系。我们新成立的初创企业 SynSense 时识科技已经实行并落地了这类体系。
简单来说,我们通过放荡电路搭建了一个神经体系。正如我所说,这些电路运行很慢,不仅呈现缓慢的工夫性非线性动态个性,而且具有大规模并行性。我们做了大规模的并行操作,所有的电路也都是并行工作的。事实上,这些个性源自放荡电路本身,也就是器件失配(device mismatch)。虽然所有电路都是同质化,但也不是完全相同。实际上,这可以作为一种优势来执行稳定的算计,这正好与器件的个性是相反的。我认为,器件间拥有差异性反而是有好处的,尤其是对于做忆阻器的人而言。
它的另外一个特点是自适应性。所有器件都有负反馈回路(negative feedback loop),它们具有学习适应性和可塑性。因此,这种学习能力可以通过噪声和元件间的差异性来加强算计的鲁棒性。通过设计很多这种并行工作的模块,体系具有了容错性,即使其中一些模块停止工作也不会出现问题。我们不必像应用标准处理器那样部分组件出现故障就全部扔掉。如果一个晶体管坏了,性能会可能稍有下降,但至少体系仍可以容错运行。
此外,由于我们同时结合了两大领域的优点,即利用放荡电路的动态个性和数字电路的通信能力,因此可以对路由表从事编程并配置这些收集。我们在编程这些动态体系时具备了灵活性,就像你在算计机 CPU 上编程神经收集一样。当然,这里更复杂。
我们仍然需求开发所有的工具,SynSense 时识科技与世界各地的其他同事正争分夺秒地开发用于编程这些动态体系的工具链。虽然现在还没有发展到如 Java 、C 或 Python 语言那样完善,但我们正在从事的工作无比有前景。而现在问题来了,我们为什么要这样做呢?如果放荡电路是充满噪声、烦人且同质化,为什么还要努力搭建这些放荡电路呢?
那么我将试着解释搭建放荡电路的优点。如果一个大型收集中的许多元件是并行工作的,比如一些忆阻器设备是交叉排列的,并且你想通过它们来发送数据。从物理上来讲,这些忆阻器拥有放荡变量(analog variable)。如果你只是在一种异步模式下发送这些变量,则不需求应用时钟。因此,你可以避免应用数字时钟电路,就面积需求而言,这些电路在大型复杂的芯片中实际上极其昂贵并且无比耗电。
因此,避免应用时钟无比有用。如果我们不应用数字电路,并且从输入到输出一直保持放荡方式,则甚至不需求从事数字信号到放荡信号的转换。我们不需求数模转换来运行这些忆阻器的物理个性。此外,我们也不需求从放荡电路转回数字电路。同时就尺寸和功率两方面来讲,这些放荡数字转换器(ADC)和数字放荡转化器(DAC)实际上是无比昂贵的。因此,如果我们不应用,则可以减小尺寸和降低功耗。
如果我们应用晶体管来做指数运算,则不需求无比复杂的数字电路就可以做到。因此,我们可以应用单一的设备,利用该设备的物理个性从事复杂的非线性操作,这样可以缩小尺寸和降低功耗。最后,如果我们应用放荡变量,比如可变电压高度、可变电压、脉冲宽度和其它类型的可变电流,就可以应用这些忆阻器来控制设备的属性。
根据驱动它们的强度,我们可以使它们变得易失或不易失。我们可以利用它们的内在非线性,甚至有可能实行转换。所以我们可以利用它们内在的随机性来做随机梯度下降、概率图形收集或者概率算计。我们也可以通过它们的标准操作方式或者非易失性操作方式中,将它们作为长期记忆存储单元应用。因此,我们不需求在外围存储模块中来回传递数据,可以直接在忆阻器设备中存储突触的状态值。如果我们在 CMOS 中应用放荡电路实行神经元和突触,则可以利用这些未来的新兴存储技术来降低功耗。
而在最近的一次 ISCAS 会议中,我们展示了 PCM 跟踪算法或 PCM 跟踪实验,其中利用了 PCM 器件的漂移。图中右上来自 IBM,展示了器件详细的轨迹分布,对于强化学习来说,这是一个无比有用的个性。因此,如果我们对构建强化学习算法感兴趣,例如对于有行为能力的机器人来说,它可以应用这些芯片实行的大脑运行,我们实际上可以利用这些 PCM 器件的个性,这就是通常所说的非理想性。
放荡电路是有噪声的——我告诉过你——它们在同质化中是可变的。例如,如果你拿一个我们的芯片,你用相同的电流刺激所有的神经元到 256 个不同的神经元,你就可以看到神经元需求多长工夫来发射脉冲。不仅这些神经元很慢,而且它们的工夫也是可变的。发放脉冲的工夫可以根据你在应用哪种电路而发生很大的变化,而且通常还有这种噪声其方差比均值通常高出 20% 左右,所以差异系数约为 20%。
所以这里有一个问题:如何借助有噪声的算计环境来从事具有鲁棒性的算计?答案显而易见:当有噪声的时候人们通常会算计均值,所以我们可以在空间上和工夫上算计均值。如果我们应用多个神经元而非单一神经元,可以只取 2-3-4-6-8 个神经元,观察它们发射脉冲的平均工夫。如果它们是周期性地发射脉冲,我们可以观察脉冲发放率(firing rate)。然后如果我们要在很长一段工夫上从事积分,可以在工夫上算计均值。
因此,如果我们确实需求无比精确的算计,才能利用这两种策略减少器件失配的影响。我们最近正在做一个相关的实验,其中把 2 个、4 个、8 个或 16 个神经元放在一起。这些神经元簇的大小,基本上是用来算计空间上神经元数目的平均值。然后我们算计了 2 毫秒内的发放率,接着是 5 毫秒、50 毫秒、100 毫秒… 以此类推。然后我们所做的是算计变异系数,基本上就是器件的失配有多大。
变异系数越大,噪声就越大;变异系数越小,噪声就越小。因此,我们可以从一个无比大的变异系数,例如 12,实际上应该是 18。通过在较长工夫上从事积分或在大量神经元上从事积分,我们可以将其一直减小到 0.9。并且利用变异系数可以算计出相应的比特数,如果我们应用的是数字电路,那就是对应多少个 bit。
这一点体现在这张色阶图(上图右)上。做一下比特的转换可以发现,我们从相当于从 4 比特提升到了等价的 14 比特。这是通过对大量神经元和较长工夫从事积分得到的。例如我们可以通过应用 16 个神经元,实行 8 比特精度,工夫超过 50 毫秒。这些具体数字在实际运行过程中是可以调整的。
如果我们想有一个无比快的反应工夫和对结果的基本判断,我们可以只用两个神经元,并且只在两毫秒上从事积分。如果想让算计结果的置信度更高,我们只需求等一直等待,直到达到 14 比特精度。
所以这里有一个问题,即便是人工智能加速器,数字技术也有定点数,需求做出选择是应用 32 比特定点、16 比特、8 比特还是 4 比特定点。通常情况下会应用 8 位的精度,例如英特尔等公司正在开发的 ANN 加速器中就是如此。但当我们做电子电路时,可以通过在运行时应用更多的神经元或等待更长的工夫来改变这一点。
但这里存在一些误解,包括:对于脉冲神经收集来说,如果你必须累积足够多来从事积分,那速度就会很慢,如果需求在工夫上算计均值,也需求多花费一些工夫。所有这些实际上都是误解,通过研究神经科学就可以被解释清楚。神经科学一直在研究大脑如何工作,大脑的速度是极快的,且功耗极低。人类在做出决策时不需求等待很长工夫。已有实验证明用神经元簇从事平均化,反应工夫可以比单个神经元快 50 倍,因此应用神经元簇可以真实加快算计速度。
如果我们应用神经元簇,则不需求每个神经元都有无比高的准确度。它们可能有噪声,也可能精度极低。但是,通过应用簇和稀疏编码,我们可以在数据分析上得到无比精确的表示。
该领域出现了很多工作,例如 Sofia Deneve 一直在展示如何通过训练神经元簇的方式来实行上述目标。此外,在技术上众所周知的一点是,如果具有可变性,神经元簇实际上有助于信息的跨层传递。如图所示,大家看到的是我们的一个芯片的参数数据,每个核心应用 16 个神经元,然后基本上提供一些预期的目标作为输入。
我们应用 PID 控制器驱动电机,并使误差最小化。这样做只是想告诉你,通过应用上文介绍的这些芯片,我们实际上可以在机器人平台上实行无比快的响应工夫。实际上,我们多年来设计实行了很多类脑芯片。SynSense 时识科技的同事们也在设计和制造类脑芯片。
下图是我们在大学里构建作为学术原型(academic prototype)的动态神经拟态异步处理器,该处理器应用比较老旧的 180nm 工艺制程,拥有 1000 个神经元、四个核心(每个核心 256 个神经元)。只利用几百个神经元,我们实际上也可以实行无比有趣的边缘算计应用。
当然,这个想法旨在同时应用世界上最好的两种技术来看看我们可以在哪里做放荡电路,以真实地实行低功率的数字电路、验证原理以及快速解决实际问题。然后通过结合放荡和数字电路,我们也可以实行二者的最优结果。
最后,我想向大家展示一些我们已经实行的应用实例。如下图所示,红色标注的两篇论文是已经由 SynSense 时识科技的同事完成的,主要是关于心电图(ECG)异常和振动异常检测,二者实际上是由 SynSense 时识科技团队和苏黎世大学分别独立完成。
工夫有限,我们直接来看最后一张 PPT。我想告诉大家,我们现在正处于这样一个阶段,即我们实际上可以应用来自大学的关于大脑启发策略的知识,以促进神经拟态智能领域的发展。此外,将所有这些知识转化为技术并与初创公司合作,实际上也可以充分应用这些知识来解决实际问题并努力找到最佳的市场。
例如,针对振动的工业监控等场景应用可以同时应用 SynSense 时识科技正在研发的传感器和处理器来完成。SynSense 时识科技在智能机器视觉、将传感器和人工智能算法嵌入同一芯片等领域做得无比成功,并且可以保持几十或几百微瓦的极低功耗,进而可以解决对社会有益的实际问题甚至是消费者应用问题。