ISCA第一篇文献翻译:Automatic Abstraction and Fault Tolerance in Cortical Microachitectures

自动抽象和错误容差在类脑皮质微结构中的运用
ISCA’11, June 4–8, 2011, San Jose, California, USA.
Copyright 2011 ACM 978-1-4503-0472-6/11/06
摘要:
近来在脑神经科学的理解给建造一个从根本上脱离冯诺依曼体系的计算机带来了诱人的机会。这些以我们所能理解的人类大脑皮层计算为前提的类脑架构是高度容错的、是在大量存在潜在错误成分的基础上求平均,但这种计算方式比传统架构去解决非常困难的问题更可靠。这些架构操作的核心原则是自动抽象:从高度混乱的输入中提取出独立的特征并使之去创造外部实体的抽象变量代表。这些特征提取被分层次的应用,导致了在更高级别的应用提高了更高级别的抽象。
本论文描述和评估了一个生物学上看似可行的计算模型,并强调了在仿生计算中固有的 容错。我们为这种类脑皮质网络介绍了一种固定型错误模型,并描述这个模型映射到商用GPGPU核(经常被用到软件理解模型实现)的硬件错误。我们实验性地展现了这个模型软件实现能够本质地保持它的功能在存在硬件错误的情况下,不需要任何重组或重新编译。这个模型是向发展一种可理解的、生物上看似可行的一种仿人类大脑皮层计算架构和计算机系统微结构理解的第一步,并应用他们去在未来强有力地实现基于容错的计算机体系架构。

1、介绍
最初的冯诺依曼计算单元在过去的40年里相对好的适应了科技的进步。然而,很难不去注意到这个模型正面临着日益增长的压力。能量浪费瓶颈已经使得
架构转移它的关注点到了多核架构上去了,但是多核的编程瓶颈对是否真的可以发挥出多核系统优势提出了怀疑。最近,稳定性瓶颈是我们面临着一系列全新的挑战。架构师们尝试去面对这些挑战,但提出的建议渐渐地侵蚀了性能可伸缩性。因为这些限制,现在研究可代替模型去适应当前的科技发展是十分有意义的。
无论是即将推出的超CMOS工艺还是像纳米管那样的可代替工艺,展现了相同的属性。首先,独立晶体管或器件数量将继续上升。然后,这些器件将不需要变得更快了(在某些情况下甚至更慢)。再然后,它们将带来越来越多的缺陷和错误。现在,当考虑到这些属性时,很难不去发现大自然已经找到了一种新的方式去利用大规模具有相似属性的器件去求解一个复杂的信息处理任务。
生物学家已经在对于人脑工作方式理解上取得了巨大进步,但是计算架构师们还不清楚这一事实。考虑到大脑的能力,很清楚计算架构师应该利用这些信息,哪怕是仅仅一个特殊用途的计算机体系。与生物学家不同,计算机架构师的目的是将这些研究引向有用的计算体系和应用中去。尽管基础组件和由此产生的仿生计算机体系和现有的计算机体系有很大不同,但相似的方法可以被使用到。这些方法包括理解如何分层地去组合和控制基础组件为更复杂的构建块,为这些计算机体系构建一个编程系统,理解他们潜在的应用范围,理解合适的建模级别去集成百万级的组件而不被复杂性压倒,也不丢失关键属性等等。
以视觉处理为例,并利用神经科学文献的具体进展,我们研究表明现在有可能通过基本神经元重建或复制某些大脑皮层感知任务,由此提出一个详细的解释关于这样的功能是如何在大脑内出现和运行的。然后,我们强调了相应的框架基于一组结构性的可操作的本地规则,重复和分层地应用这些规则会导致架构能够处理越来越复杂的任务。因此这些架构具有内在的可伸缩特性:他们很轻松就可以转化额外的组件去越来越强大的任务;和传统计算机不同,这里的可伸缩性意味着更复杂的函数而不是更快的执行速度,尽管两者是相关的。这些架构也有可编程的能力:他们只依赖于重复的数据暴露,无需借助和常见神经网络相同的监督训练。最后,我们描述了一个特定的基于gpgpued的层级皮层网络的软件实现,该网络以视觉皮层为模型,能够以生物学上合理的方式完成复杂的视觉识别任务。在此背景下,本文做出了如下新颖的贡献:

  • 我们描述了大脑皮质网络模型的随机结构和永久性学习属性是如何本质上对永久缺陷具有鲁棒性,远远超过了传统计算系统的能力。
  • 我们介绍了一个皮层网络的固定故障模型,并展示了它如何映射到在软件中模拟皮层网络的当前一代gpgpu中可能发生的永久性故障。
  • 我们将展示如何使用at-speed GPGPU执行有效地模拟这些固定错误
  • 我们通过实验证明,随着硬件故障的增加,皮层网络的性能(以其识别率衡量)会优雅地下降,而网络能够肉眼可见地恢复失去的功能,而无需任何重新编程或重新编译。

2、大脑皮层结构、操作和建模
2.1 皮层组织
大脑的新皮层是哺乳动物特有的并对于人类来说,高度发展的。它约占人脑(体积)的77%。新大脑皮层的明显一致性表明,尽管不同的区域专门从事不同的任务,但它们使用的基本算法是相同的。
神经元和突触。神经元和突触是大脑最著名的基本组成部分。神经元执行两种类型的操作:它将输入相加,如果总和超过某个阈值,就会触发输出。一个神经元的典型放电间隔是20ms到200ms,比CMOS晶体管开关时间慢了一个数量级。突触是两个神经元之间的连接;每个神经元都有成百上千个突触连接。
结构。神经元的空间组织方式有两种,看图1.在水平方向上,它们被分成6个层,而大脑皮层的卷曲形式仅仅是对应于这6层在一个有限的空间内的折叠。在垂直方向上,它们被分成称为皮质柱或超柱(HCs)的结构。HCs被分解成包含约200个神经元的微型柱体(MCs);50到100个这样的MCs组对应一个HC。术语皮层柱有时用于两种类型的柱,但在生物学中,它通常指HCs。在皮层柱内和柱间,有许多向前、向后(称为反馈)和横向的连接。这些连接可以是兴奋性的(它们可以增加目标神经元的输出),也可以是抑制性的(它们可以减少目标神经元的输出)。这种多向信息流可以在不同的粒度级别上观察到:在一个皮质列内、跨皮质列和跨从皮质列的分层组织派生的区域。
在这里插入图片描述
2.2 皮质操作:自动抽象
虽然对大脑某些区域的皮层结构(如视觉皮层)的研究已经很长时间,但与生理数据一致并能够解释复杂视觉任务的定量模型直到最近才被提出。这样的模型特别有价值,因为它们为自动抽象提供了可实现的解释。人们认为,大脑皮层区域通过逐步抽象和操纵神经系统中日益复杂的层次来运作。例如,从一幅图像的像素集合,视觉皮层将首先识别片段,然后是基本形状,如角度和交叉点,以及越来越复杂的组合,如在我们的环境中发现的物体,见图2。这种对各种输入(如视觉、听觉和嗅觉)的自动抽象能力,部分解释了为什么新大脑皮层在许多任务上仍优于传统计算机。因此,模拟这种能力是构建至少可以与大脑的某些处理特性竞争的计算系统的一个重要步骤。
在这里插入图片描述
2.3 生物网络vs人工神经网络
在开发神经模型方面,机器学习社区追求的目标与神经生物学社区不同:建立最高效的分类算法。相反,神经生物学团体寻求建立神经网络的模型,最终将模拟生物神经网络的全部能力,分类只是其中之一。我们的最终目标与神经生物学社区更加同步:仿真生物神经网络,目标是再现它们的大部分功能,以及实现计算效率的额外目标。在生物神经网络和人工神经网络之间还有一些显著的区别。这两种类型的网络通常依赖于不同的学习策略。神经网络通常依靠反向传播来学习分类任务:正确的答案是已知的,并通过网络根据网络误差调整突触的权重反馈给神经网络;这种形式的学习叫做监督式学习。生物神经网络依赖于被机器学习团体称为无监督学习的东西:正确的答案还不知道,但是网络通过局部学习规则反复接触输入进行学习,也就是例如,Hebbian学习。也可能存在间接反馈,例如:奖励或惩罚(强化学习)
生物神经网络和人工神经网络的另一个主要区别是对网络结构的重视。ANN通常依赖于完全连通性或随机结构。神经生物学的最新进展表明,网络结构和连接的性质和排列是复杂的,对网络的抽象能力起着重要作用。最后,无论是单层还是多层感知器模型都难以承受永久性的硬件缺陷。Emmerson等人表明,即使是少量的错误行为(无论是在感知器中还是在连接中)也会显著降低这些模型的识别率。

2.4 大脑皮层vs传统的微体系结构
许多系统的外部可观察操作可以通过在适当级别上操作的行为模型进行复制。作为架构师,我们熟悉许多这样的行为模型示例。越来越高级的模型经常在时间和/或空间中聚合低级元素的行为。例如,数字电路的门级模型去掉了与单个晶体管有关的细节,不模拟瞬态开关行为,只报告稳态逻辑值。通常,这些模型的精度与计算需求成反比,必须选择一个合适的模型,以满足合理的完成时间和足够的精度。Sandberg 和Bostrom对神经建模进行了全面的介绍,并确定了11个不同级别的模型,从ANNs一直到分子动力学,甚至是量子级模拟。他们认为,大脑可以在没有更高层次的算法理解的情况下被模拟:只要生物细节被仔细地测量和忠实地复制,猫的大脑,甚至是人类的大脑,将“启动”并按照预期工作。最近的一个实验表明,一台大型超级计算机(IBM Blue Gene/L)拥有计算量可在一个数量级(9倍的减速)内实时使用该方法建模大鼠皮层。此外,DARPA的Synapse[6]项目设定了一个目标,那就是将模拟规模扩大到猫科动物的大脑皮层。:相比之下,作为建筑师,我们想要建立受皮质启发的计算系统,以模拟人类皮质的选定功能子集。这需要对皮层特性的详细的高层次的算法理解,而不是简单地精确地重建生物基线。它还需要很高的计算效率,这意味着需要开发高级行为模型来模拟大脑皮层的功能。问题在于,开发的高级但不可靠的模型无法模拟目标功能,因为它们没有捕捉到生物实现的关键方面。因此,这样的高级模型必须与计算效率较低但在生物学上可行的低层模型进行验证。本文是朝这个方向迈出的第一步;我们描述了一个皮层柱级模型,该模型在结构和操作方面匹配现有的生理数据,并且能够进行皮层计算的一个关键方面:前馈感觉处理和沿视觉皮层路线的自动抽象(这在神经科学文献中得到了较好的理解)。然后,我们提供并评估我们对皮质模型的实现,并表明生物网络的在线自动抽象和鲁棒性属性转化为GPGPU架构上模型对永久性硬件缺陷的内在容忍度。
2.5 硅基实现
在这篇文章中,我们并没有给出一个基于硅的具体实现,因为神经生物学的最新进展推动了这项工作,它更多地涉及神经元之间的结构和连接,而不是神经元和突触本身的行为。因此,通过利用人工神经网络的硬件实现方面的大量工作,可以很容易地在硅中实现本文中介绍的神经安排。最近的神经网络的硬件实现,特别是那些利用模拟或数字-模拟混合结构,提供极低的功耗。最后,神经网络的主要资产之一是其固有的对暂态故障的鲁棒性。它们对瞬态故障具有鲁棒性,因为信息/决策在多个神经元上是平均的,所以一个神经元暂时提供错误信息不会产生灾难性影响。

3 一种生物学上合理和有效的皮层微结构模型
在本节中,我们提出了基于Hashmi等人提出的皮层柱模型的皮层柱模型。正如在第2节中提到的,我们的模型的关键特性是实现自动抽象的概念。这个概念首先是由神经科学家在HMAX模型中提出的,见Riesenhuber等人。该模型本身依赖于大规模生物神经网络的生理数据。然而,在那个模型中,突触的连接和值是预先设定好的。因此,这个模型不具备我们所寻求的健壮性(失去一个神经元或突触会极大地影响功能),在生物学案例中也不可能出现如此精确的连接。因此,如果仅依靠随机连接就能实现具有相似抽象能力的模型,则可达到预期的鲁棒性;在这个过程中,我们实际上提高了模型的生物相似性。
3.1 输入和接受域
在哺乳动物的大脑中,一条神经通路将视网膜上的视觉数据传输到LGN(外侧膝状核)细胞。LGN细胞检测对比:它们对被黑暗包围的照明点(开-关细胞)或相反地对被光包围的黑暗点(关-开细胞)反应强烈。这些细胞空间分布与开-关和关-开LGN细胞交织,大致操作像一个像素传感器。LGN细胞的输出信号随后被传送到视觉皮层的其他部分。建模生物学,在将可视化输入暴露给我们的模型之前,使用LGN变换对它们进行预处理。在我们的模型中,我们考虑LGN细胞有规则的空间分布(网格状),即每像素一个开关和一个关开单元。我们还实验了更随机分布的LGN细胞,没有明显的差异。从这些实验中,我们得出结论,唯一重要的因素是LGN细胞的空间密度相对于图像分辨率。接受域是生物学家用来描述细胞(LGN或视觉皮层中的任何神经元)“所见”的工具。LGN细胞的接受域是由视网膜细胞组成的两个同心圆。如果接受域中央的视网膜细胞有高激活,而周围的视网膜细胞有低激活,即光被黑暗包围,则开关状态的LGN细胞表现为高激活。另一方面,如果接受域中央的视网膜细胞有低激活,而周围的视网膜细胞有高激活,则处于关开状态的LGN细胞表现为高激活。图3底部显示LGN细胞的接受区。
在这里插入图片描述

3.2 连通性
如前所述,神经元在皮层柱(或小柱)内排列成层。此外,神经元与相邻神经元(列内或列间)的连接遵循高斯概率定律,即连接的概率随距离的增加而减小。根据经验,这种连接实际上是相当密集的(约70%),在给定邻域内几乎是均匀的,然后下降。这表明,在一个受限的邻近区域内,神经元几乎是完全连接的。基于这些生物学发现,在我们的模型中,我们按照以下规则将微型柱(MCs)分组到超列(HCs)中(见图4):首先,HC内的MC通过侧向抑制连接与同一HC内的所有MC完全连接。这在HC中的MC中模拟了一种赢家通吃的行为。第二,一个HC内的所有MCs共享相同的接受域,即属于同一个HC的MCs通过兴奋性前馈连接到较低水平HCs的相同MCs(尽管突触权重不同)。图4演示了HC中MCs之间的连通性,以及HC之间在不同层次级别上的连通性。应该注意的是,上层的MCs接收来自多个低层MCs的输入。此外,HCs的数量从一层快速减少到另一层,对应于每个层的宽度快速缩小的层次结构。这种拓扑结构是Hubel和Wiesel提出的关于第一级连通性的假说的直接外推。
在这里插入图片描述
3.3 微柱活性评价
MCs的活性取决于输入MCs的激活程度,这些MCs的突触权重。在形式上,
在这里插入图片描述
MCi的输出xi(t)在0和1之间,如果MCi的活动xi(t) > 0.7,我们将其定义为在t时刻活动的。f(X) =1/(1+e^(−X))是传统ANN模型的非线性激活函数。归一化权重和增益定义为W
ij(t) = Wij(t)/Ωi(t) and ˜gi(t) = 10 × Ωi(t)。这里,Wij(t)是突触j-> i在时间t的权重 。
Ωi(t) = ∑j Wij(t).是MC所有突触权重的和。注意权重标准化˜Wij(t)是一个(简单的)“突触缩放”现象的模拟中观察到大脑的几个区域和获得的灵感来自于所谓的“内在可塑性”(即活动相关的修改神经元增益)观察到大脑皮层。T定义了MC对噪声输入的鲁棒性,可以取0到1之间的值。在我们的实验中,我们将其设置为0.95。
简单的ANN模型通常将激活函数的输入定义为∑xjWij。Cij的表达式可以看作是一些树突中观察到的非线性求和特性的反映:当权重Wij较低时,贡献是非常负的(非线性)。我们经验地观察到这种非线性对于适当的函数行为是必要的。关于Cij(t)中“低”和“高”权重的概念,必须指出的是,一个神经元的突触之间存在一种永久竞争的形式,即一种类似于永久正常化的零-和博弈的形式。
在这里插入图片描述
3.4 超列活动的评估
在我们的模型中,HC是通过侧向抑制连接紧密结合在一起的一组MCs的抽象表示。如果HC中的任何MC被激活,那么HC就会被激活。HC中的mc遵循赢者通吃的方法,即如果一个HC中的多个MCs被激活,激活最强的MCs会抑制其余被激活的MCs。因此,在任何时刻,HC中只有一个MC是活动的。此外,受抑制的MCs修改了它们的突触权重,以降低它们与当前输入的相关性,这样它们在未来就不会被相同的输入模式激活。
这导致在HC学习中的MCs独立/独特的输入刺激接受域。

3.5 通过反复暴露和随机发射进行学习
如第2节所述,Hebbian学习是大规模生物神经网络中占主导地位的学习形式。在Hebbian学习中,如果一个神经元的输入被强烈激活,而该神经元本身又有强烈的输出,那么与该输入相对应的突触(突触重量)就会得到增强。直观地说,如果输入与输出同时较强,就意味着输入对输出的作用显著,需要加强。根据这个定义,活动MC与其活动输入相对应的突触权重会增加(模拟长期增强),如果输入为非活动(模拟长期抑郁),则会减少。根据Hebbian学习,此权重修改仅适用于主动的MC xi。由于Hebbian学习的结果,在每个层次上,微型柱体将逐步对他们反复收到的输入作出最强烈的反应,实际上是学习它们。在视觉皮层中,这些输入与形状相对应,而在上层皮层中,形状会变得越来越复杂。神经元“记忆”的形状实际上可以通过接受域“显示”出来,见图3。网络区分大量形状并实现旋转、平移和缩放不变性的能力取决于它学习大量不同形状的能力。
因为HC中的所有MCs接收相同的输入(因为它们共享相同的接收域),HC中MCs的主要区别在于它们与较低水平的MCs的连通性。这种连通性是通过调节突触权重的强度来建模的,这些权重对应于对一个MC的各种输入。较低级别MC对应的强突触权重表示强连通性,0权重的突触表示不连通性。与传统的Hebbian学习模型不同,我们不依赖突触权重的随机初始化来进行初始网络连接。这种方法的一个主要缺点是,有时产生的网络可能无法学习某些输入模式,因为它们的初始连接性不允许这样做。在我们的模型中,所有的MCs突触权重是用非常弱的随机值初始化的。这表明我们模型中的MCs不假设任何初始连接,整个网络就像一块空白的石板。我们利用MCs的随机激活特性来诱导随机初始条件,并在学习过程发生时对MCs的输入进行扰动。更准确地说,在每个时间步长,每个MC都有一个小的概率成为活动的,即使它的输入不符合它。这相当于允许随机发射MC。如果MC随机触发,它与主动输入相对应的突触权重就会增强。因此,通过这种随机触发行为,建立了初始网络连接。我们停止随机发射的MCs与强大建立的突触权重前馈。我们从经验上观察到,这种随机射击可以产生各种各样的形状,但必须停止随机射击,以稳定已聚合的柱子。随机放电的生物学起源和重复活动后它停止的事实如下。神经元从所有类型的连接接收突触输入:向前、横向、反馈。只要前向突触很弱,这些输入的组合就会产生一种“突触噪音”,类似于随机放电。当正向连接变得强大时,因为神经元已经“习得”的一个特征,它们成为主导,神经元的输出不再受剩余的“突触噪音”的影响。结果,似乎随机触发已经停止,尽管它仍然存在,但不再对网络的行为产生重大影响。
3.6 自动抽象
我们现在用我们的视觉皮层的例子来解释如何在HC层次结构中实现自动抽象的概念。第一级的每个MC“采样”其接受域内的输入像素,参见图3中的第1级。随后的MCs逐渐对接收域内MCs的激活做出反应,从而学习复杂的形状。
出现的形状。一级MCs连接LGN细胞的输出。在MCs初始随机激活的基础上,第一级MCs与其感受域内的LGN细胞建立联系。如2.2节所述,LGN细胞检测对比度,特别是提取轮廓。这些轮廓的大多数自然形状分解成小段在一个足够细的粒度。第一级MCs,最初通过随机射击对这些片段作出反应,后来通过Hebbian学习得到加强。这些片段逐渐成为第一级列中的一些主要形状(参见图3)。这一行为是由生物证据支持的Gabor过滤器存在于视觉皮层的第一层。接下来的几层继续同样的过程,学习越来越复杂的形状。例如,片段的组合可以产生交叉、角度和其他复杂的形状(参见图3)。
过滤。层级中较高的MCs对应着越来越多的较低层级MCs的聚合信息(和)。结果,他们的接受域迅速变成了更简单形状的模糊组合,没有清晰的语义。在这里,侧向抑制连接通过沉默弱的微型柱体来实现必要的过滤作用,并允许更清晰的形状(语义更丰富)出现在更高级别的列中。这些侧向抑制连接在MCs簇之间实现了一种最大算子的形式。形式上,这种侧抑制再次使用Hebbian学习规则来实现,即,如果MCi是主动的(xi(t) > 0.7)但至少有一个MC (MCK)在这个HC,使得xK(t) > xi(t),那么MCi受到K的侧抑制,这意味着在我们的模型中:(1)xi(t) = 0和(2)活跃突触单位传入MCi的权重被缩小。这种修饰形式实现了HCs内的竞争,并对应于所谓的突触前侧抑制。
3.7 总结
总之,有了这样的模型,就不需要先验的规范或从输入数据中提取的信息的知识。信息被逐渐抽象成越来越复杂的概念。哪些复杂的概念会出现取决于网络结构、初始条件和输入数据的特征。换句话说,这个过程实现了一种“通过实例学习”的形式。

  1. GPGPU模型评估
    4.1 模型实现
    虽然前面部分中描述的模型最终可能通过专用硬件实现,但我们已经研究了如何在当前可用的体系结构上适合该模型的软件版本。到目前为止,我们遇到的最吸引人的架构是通用图形处理单元(GPGPU)NVIDIA的CUDA。在这种编程模型中,高度并行的工作负载可以在数百到数千个CUDA线程上进行处理。在目前的高端CUDA设备中,线程组被安排在一个流媒体多处理器(SM)上运行,该多处理器由8个顺序核和16KB的快速访问共享内存组成。CUDA使得程序员可以通过多种不同的方法来优化他们的应用程序,包括内存访问合并和使用共享内存空间作为快速存取用户管理的缓存[29]。Nere等人[24]已经成功地证明了Hashmi等人[13]的皮层模型可以很好地映射到CUDA架构上。我们使用这个基于CUDA的实现我们的实验。通过映射一个单一的微型集群到一个CUDA线程,我们可以在一个GPGPU上同时激活数千个微型集群。由于微型柱的发射是基于输入和微型柱权重的点产品评估,该模型是一个高吞吐量数据密集型应用CUDA被发明的例子。最后,每个SM的共享内存空间对于相邻微型柱体之间的快速横向通信是理想的。第3.6节描述了具有不同层次组织组件的皮层架构,这些组件由微型柱体和超列组成。类似地,NVIDIA的CUDA框架由一个分层组织、线程、协作线程阵列(CTAs)和内核启动组成。GPU加速的代码将皮层结构的组成部分转换为CUDA框架。在CUDA上使用这样的组织,超列中的微型柱可以很容易地在快速访问共享内存空间中同步、横向通信和共享接受域输入,如图5所示。
    在这里插入图片描述
    首先,我们通过创建多个超列的层次结构并将其暴露给从MNIST手写数字数据库获得的手写数字图像子集来评估模型的识别精度。我们的训练数据由每个数字的100个变化组成(总共1000幅图像)。在这个实验中,我们创建了一个有5个层次的超列网络。这个分层网络第0级包含24个超列,每个超列都有有15个微型柱,第1级有12个超列,每个超列有20个微型柱,第2级有6个超列,每个超列有20个微型柱,第3级有3个超列,每个超列有15个微型柱,在第4级有15个微型柱的1个超列。经过15000次训练后,分层网络对训练数据集中的每一张手写数字图像的识别都达到了100%的准确率。这意味着,在15000个训练时代之后,训练数据集中的每个手写示例(见图6中的示例)被正确地分配给它实际表示的数字(0-9)。软件模型实现在GeForce 9800 GT GPU实现了每秒40个字符的识别率,与生物学示例相当。MNIST数据库的测试集由10000张手写数字图像组成。对于测试集,我们的模型在1,000位图像的训练下,平均识别率达到85%。我们注意到,这是无法与目前的先进水平相比的ANN手写数字识别应用。主要原因是,这些人工神经网络应用程序的各种参数被仔细地调整,以便这些应用程序达到小于1.0%的错误率。因此,这些应用程序的性能是非常特定于训练数据集的。另一方面,我们的模型不依赖于任何精心调整的参数,这使得它更通用,更适合广泛的训练数据集。这意味着对于我们的模型,同样的网络可以用于数字、合成图像和真实生活图像的鲁棒识别。还应该指出的是,这项研究的目的并不是要击败最先进的ANN手写数字应用的识别精度。相反,我们打算表明,与传统的神经网络应用程序相比,生物学上合理的连通性和学习规则使我们的模型对永久性硬件缺陷具有更大的容忍度。

4.2鲁棒性和固有容错性
永久缺陷和暂态故障不仅是未来架构所关注的问题,而且在一些最新的系统中已经是一个普遍的问题。例如,NVIDIA Fermi是第一个为所有dram、缓存和寄存器提供分段纠错代码的GPU架构。永久性缺陷,在设计时或在芯片寿命期间,也预计将进一步增加在未来。
目前,为GPU芯片编程的应用程序,如Fermi或Tesla,假设GPU所有核心功能正常。如果Fermi芯片的512个着色器(核心)中的任何一个变得功能失调(随着核心数量的增加越来越有可能),就有必要重写应用程序,以便没有任务映射到错误的着色器,否则编译器将不得不自动执行映射。在这里,我们认为程序员或编译器被给予显式控制着色器映射,尽管在当前生成的gpgpu中还没有这种能力。例如,所有现有的为gpu编写的视觉识别应用程序都必须经过重新编程或重新编译过程。即使是基于人工神经网络的视觉识别应用也会受到同样的限制。虽然神经网络在概念上是神经网络,但它们的反向传播学习过程和它们的软件实现作为命令式基于数组的计算都是不容错的。
我们模型的软件实现的GeForce 9800 GT的GPU保存模型的关键概念:连接(突触权重)初始化随机值较弱,操作(sum, max)实现健壮的方式通过一组突触,没有中央控制和监督的学习过程,因为它发生在一个分布式的方式,但它可以实现复杂的任务,比如视觉识别。由于这些特性,我们模型的软件实现对于有缺陷的GPU硬件来说具有内在的鲁棒性。它可以正常工作,因此,不像大多数其他应用程序,它可以利用GPU,不需要任何重新编程或重新编译,即使一个或几个核心功能失调,不得不停用。所需要的只是定期对应用程序进行重新培训,以便它能够适应故障硬件的新配置,但同样无需指定配置;学习过程将自动调整到有问题的硬件。当然,这篇文章只是演示了视觉识别的鲁棒性,但我们研究一般皮质模型的部分动机是将其应用于已知的大规模生物神经网络可以处理的广泛任务。

4.3 故障识别和检测模型
在生物网络(新大脑皮层)的例子中,故障模型非常简单:如果神经元或小柱有缺陷,它们就停止产生任何激活,并最终死亡。当这种类型的故障发生时,其他神经元/微柱修改它们的突触权重,以检测和解释之前被损坏的神经元/微柱识别的特征。
在我们的软件实现中,每个MC运行在一个着色器核心上,它可以有多种失败模式。在这项工作中,我们排除了灾难性故障(如短路,使整个系统崩溃)(由于我们的模型使用相同图像的重复曝光进行学习和识别,间歇故障和瞬时错误被平均掉了)。相反,我们关注破坏微型柱计算的永久性错误。最终,由于输出激活函数的s型性质,这些错误将自己表现为MC在应该触发的时候没有触发(卡在零点故障),或者在不应该触发的时候触发(卡在一故障)。一个MC的卡在零点故障行为就像生物网络中受损的神经元/微型柱:因为它没有产生任何活动,它的功能就会自动被邻近的MCs神经元取代。另一方面,一个卡在一的MC下层次化的MCs所生成的所有信息都被缺陷所掩盖,因此,单级卡在一的MCs会严重降低网络的性能。因此,必须检测到卡在一状态并使MC停用。
为了检测卡在一状态,我们重新计算获胜的微型图形在两个相邻着色器上的响应,并使用投票来决定哪一个着色器是有缺陷的。为了最小化开销,我们只能间歇性地重新计算,每100次迭代一次。这是一种合理的优化,因为永久性故障很少,而且检测延迟对我们的图像识别应用程序不是非常重要。在其他应用程序中,可能需要更高开销、更低延迟的检测机制。如果一个着色器的两个邻居不同意它的结果,它将被禁用。在后续的模型迭代中,所有相邻的MCs(在同一个超列中)和层次结构中下一层的上游MCs忽略有缺陷的MC的输出。在这一点上,我们的模型利用了自动抽象和随机激发的思想来重新学习被运行在缺陷着色器核心上的MCs识别的特征。应该注意的是,因为HC中的所有MCs共享相同的接受域,所以连接到缺陷MCs的MCs不需要重新连接,因为它们的输出已经暴露给层次结构中较高层的多个MCs。

4.4 快速模拟一个有缺陷的GPU使用一个无故障的GPU
在这里,我们演示了我们可以通过简单地停用模型中的一个或多个MCs并在无故障的GPU上运行模型来模拟有故障的GPU的行为。证明这一等价性使我们能够执行长时间和大规模的模型健壮性实验,而不需要对一个有缺陷的GPGPU进行详细的模拟。为了显示这一等效性,我们使用模拟器GPGPUSim配置来模拟我们验证的真实GPU和后来使用的GPU,上述的GeForce 9800 GT;该GPU有14个多处理器,每个处理器有8个着色器核心。最初,我们使用GPGPUSim在超列模型上模拟停用着色器核心(标量处理器)的效果。在我们的实验中,我们在GPGPUSim中添加了一个特性,它允许我们停用一个给定的着色器核心。未激活着色器的输出保持为零不变。在GPGPUSim上,我们执行以下实验。我们用32个微柱初始化一个超列,接受域大小为3×3。我们将这个超列暴露给15个大小为3×3的独特模式。经过几个训练阶段后,超列识别出每个独特的模式。这意味着,在32个微型柱中,有15个调整了它们的重量,以便它们能够按照训练集中的一个独特特征进行射击。
在这一点上,我们注入永久的错误在随机选择的着色器核心。这些着色器核心然后被检测和停用。然后,我们评估停用缺陷着色器核心对超列识别率的影响。注意,在我们的模型实现中,每个超列映射到一个多处理器,而每个微型柱映射到一个着色器核心。因此,4个微柱线程映射到单个物理着色器核心上,因此停用一个着色器将禁用4个微柱。图7报道了本次实验的结果,标记为GPGPUSim。除特别说明外,所有结果均为20次试验的平均值。初始识别率(IRR)是着色器核心停用后,再训练前的识别率,而最终识别率(FRR)是再训练后的识别率。然后我们在真实的GPU上进行如下实验,标记为HC模型。我们通过将它们的输出设置为零来禁用4个随机选择的微型柱。然后,我们同样的报告了真实GPU的IRR和FRR。
在这里插入图片描述
我们可以从这些实验中得出两个结论。第一个是将模型优雅地退化为缺陷。IRR实验模拟瞬态故障或永久缺陷,其中不进行再训练。经过再训练,识别率保持接近完美,直到每个多处理器的错误着色器核数等于5;然后32个微柱线程中的20个被禁用,剩下的12个功能性的微柱对于学习15个特性来说还不够多。第二个观察是GPGPUSim模拟器与有缺陷的着色器行为几乎完全相同的真实GPU与失活的微柱。因此,为了后续的大规模实验,我们将在一个真正的GPU上模拟有缺陷的着色器与失活的微型图形。

4.5空间分布缺陷
在这一节中,我们研究错误的着色器的影响是随机的空间分布。我们构造了一个六层的层次网络。这个网络在第0级有24个超列,第1级有12个超列,第2级有6个超列,第3级有3个超列,第4级有1个超列,第5级有1个超列,总共有47个超列和940个微柱(每个超级列包含20个微柱)。该网络在MNIST数据库中获得的一个手写体数字样本(0-9)上进行再次训练,直到识别率达到100%。在这一点上,我们从随机位置停用着色器核心。因为在一个超列中有20个微柱,停用一个着色器核心平均每个超列影响2.5个微柱。因为47个超列中平均有3.3个映射到一个GeForce 9800gt多处理器上,每个失活着色器核心影响8.5微柱。例如,对于GeForce 9800 GT,失活6.25%的着色器核心意味着112个着色器核心中的7个被停用。因此,在整个层次结构中总共禁用了大约60个微柱。在关闭着色器核心后,我们评估IRR。然后我们对网络进行再训练,直到它达到一个稳定的识别率,并测量FRR。这个实验的结果如图8所示。我们可以观察到与验证实验相同的行为,可以注意到100%的识别精度可以达到,即使只有50%的功能着色器核心。
在这里插入图片描述
我们还想说明,模型的鲁棒性可以直接受益于冗余的并行层次结构,而不需要任何特殊的算法修改。我们创建了3个类似于上面所描述的并行层次网络。这些层次结构中的每个超列包含20个小型列。每个层次结构的输出都被提供给一个关联网络,该网络将每个层次结构顶层的微型柱池用于生成相同的数字。因此,如果触发一个对应于3个层次结构中的任何一个数字的微型柱,则关联网络中与该数字相关联的微型柱将触发。本质上,一个在关联网络中的微型柱可以被认为是它从每个层次网络输入的一个或。
这3个层次结构中的每一个都是在MNIST数字样本上进行训练的。经过训练,我们重复同样的着色器核心去激活过程如上所述。在这种情况下,停用一个着色器核心再次影响2.5微型柱每超列。但在这种情况下,10个超列映射到单个多处理器。因此,停用一个着色器核心大约影响在3个层次网络中有25个微型柱。图9显示了本实验的IRR和FRR。比较图8,我们看到,更大的层次网络的IRR下降得慢得多,其FRR也得到了类似的改善。从这个结果中,我们还可以推断,简单地增加每个超列的微型柱的数量也可以获得类似的好处。

4.6 空间聚集缺陷
除了着色器核心缺陷之外,其他一些GPU组件如数据路径、存储和调度器也会产生缺陷。
数据路径缺陷:一个错误的数据路径意味着受影响的多处理器中的所有着色器核心都会得到损坏的输入数据。因此,所有相应的着色器必须被停用,并且这个缺陷等同于聚集的着色器缺陷,在章节4.6中研究。
存储缺陷:错误的存储可能发生在着色器核心(寄存器),或在缓存或内存块的水平。在这两种情况下,如果ECC不能补偿永久缺陷,一个或几个着色器核心必须停用。在前一种情况下,一个着色器必须被停用。在后一种情况下,可以从相应的缓存和块中获取数据/存储数据的着色器核心集可以被停用。在一个多处理器中,有一个共享内存访问所有着色器核心,每个着色器核心也有它的本地内存。永久的本地内存缺陷可以通过停用个别着色器核心来处理。共享内存缺陷会导致整个多处理器失活,而不是整个GPU失活。除了本地内存和共享内存之外,还有全局内存、常量内存和纹理内存。所有的着色器核心都可以访问这些记忆。因此,这些内存中不可纠正的缺陷会导致整个GPU的丢失。
线程调度器缺陷:一个有缺陷的线程调度器可以以多种方式显示自己:发送线程到错误的着色器内核或多处理器,发送错误的内存地址到着色器内核,等等。这些情况可以再次通过识别和停用受影响的着色器核心来处理。另一个解决方案是考虑调度器的相对占用空间足够小,以支持使用较大设备的鲁棒性实现。
总的来说,几乎所有的GPU缺陷都可以通过停用一个或多个(分布式或集群)着色器核心来解决,即使它们不会直接影响着色器核心本身。

  1. 结论和未来工作
    在本文中,我们提倡利用神经科学的新进展来研究计算系统,这些系统通过构建并操纵越来越抽象的信息表示来处理信息,而不是快速执行大量的基本计算。虽然与传统计算机相比,这些计算系统的应用范围受到限制,但我们知道,生物实例可以在一系列任务上显著优于传统计算机;此外,这种计算方法很好地结合了即将到来的技术限制(速度,功耗,可靠性)。在短期到中期,商用gpgpu是一个很有前途的基底,用于部署基于这些原理的大规模皮质模型,而直接的硅实现仍然不可用。我们证明了皮层网络的固有容错性完全映射到可在商用gpgpu中发生的故障模式,并为此类系统开发了固有故障模型。故障注入实验验证了我们的直觉,即这种系统天生比传统计算系统更能容忍永久故障。
    在未来,我们计划探索一些方向。首先,我们想把大脑皮层的其他特征,如反馈、注意力、暂时学习和记忆,添加到我们的学习模型中。其次,我们计划研究我们的模型在其他有趣的工作负载上的性能,如游戏机器人、语音到文本转换等。我们也计划研究我们的皮质模型到硬件电路实现的映射。

猜你喜欢

转载自blog.csdn.net/u010594449/article/details/108553217