加入极市专业CV交流群,与10000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
来源:机器之心@微信公众号
不久之前,清华大学微电子所等机构在 Nature 上发表文章,展示了他们完全基于硬件的卷积神经网络(CNN)实现。他们构建的基于忆阻器的五层 CNN 在 MNIST 手写数字识别任务中实现了 96.19% 的准确率,为大幅提升 CNN 效率提供了可行的解决方案。
基于忆阻器的神经形态计算系统为神经网络训练提供了一种快速节能的方法。但是,最重要的图像识别模型之一——卷积神经网络还没有利用忆阻器交叉阵列的完全硬件实现。此外,由于硬件实现收益小、变化大,设备特性不完善,其结果很难媲美软件实现。
不久之前,来自清华大学和马萨诸塞大学的研究者在《自然》杂志上发表文章,提出用高收益、高性能的均匀忆阻器交叉阵列实现 CNN,该实现共集成了 8 个包含 2048 个单元的忆阻器阵列,以提升并行计算效率。此外,研究者还提出了一种高效的混合训练方法,以适应设备缺陷,改进整个系统的性能。研究者构建了基于忆阻器的五层 CNN 来执行 MNIST 图像识别任务,识别准确率超过 96%。
除了使用不同卷积核对共享输入执行并行卷积外,忆阻器阵列还复制了多个相同卷积核,以并行处理不同的输入。相较于当前最优的图形处理器(GPU),基于忆阻器的 CNN 神经形态系统的能效要高出一个数量级,且实验证明该系统可扩展至大型网络,如残差神经网络。该结果或可促进针对深度神经网络和边缘计算提供基于忆阻器的非冯诺伊曼(non-von Neumann)硬件解决方案。
CNN 是最重要的深度神经网络之一,在图像处理相关任务中发挥关键作用,如图像识别、图像分割和目标检测。
CNN 的典型计算步骤需要大量滑动卷积操作。从这个方面来看,CNN 需要支持并行乘积累加运算(MAC)的计算单元。而这需要重新设计传统的计算系统,以便以更高的性能、更低的能耗来运行 CNN,这些计算系统包括通用应用平台(如 GPU)、应用特定的加速器等。
但是,计算效率的进一步提升最终受限于系统的冯诺伊曼架构,该架构中的内存和处理单元是物理分离的,从而导致大量能耗,以及不同单元之间数据 shuffle 的高延迟。
与之相反,基于忆阻器的神经形态计算可以提供非冯诺伊曼计算范式,即存储数据,从而消除数据迁移的开销。忆阻器阵列直接使用欧姆定律进行加法运算,使用基尔霍夫定律(Kirchhoff』s law)进行乘法运算,因而能够实现并行内存内(in-memory)MAC 运算,从而模拟内存内计算(in-memory computing),并实现速度和能效的大幅提升。
基于忆阻器的神经形态计算研究覆盖大量主题,从设备优化到系统实现不一而足。一些研究展示了与内存内计算实际应用相关的实验。最近的研究报告了双层和三层忆阻器感知器在 MNIST 手写数字数据集上的图像识别结果。但是,没有一个 CNN 是在完全基于忆阻器的硬件系统中实现的。
造成这种困境的主要原因是缺乏针对基于忆阻器的 CNN(mCNN)实现的高效解决方案:首先,mCNN 通常收益低,忆阻器交叉阵列不均匀;其次,由于设备缺陷(如变化、电导率偏移和设备状态锁定),mCNN 很难达到可媲美软件实现结果的性能(例如图像识别准确率);第三,CNN 中的核心卷积操作非常耗时,因为它需要沿着不同的输入块滑动,这通常是一个序列过程,会导致忆阻器卷积器和忆阻器阵列之间出现速度不匹配的情况,后者旨在完成全连接向量矩阵乘法(vector–matrix multiplication,VMM)。
该研究成功实现了一个完整的五层 mCNN,用于执行 MNIST 手写数字图像识别任务。优化后的材料堆栈(material stack)能够在 2048 个单晶体管单忆阻器(one-transistor–one-memristor,1T1R)阵列中实现可靠且均匀的模拟开关行为。使用该研究提出的混合训练机制后,实验在整个测试集上的识别准确率达到了 96.19%。
此外,该研究在三个并行忆阻器卷积器中复制了卷积核,从而将 mCNN 的延迟降低约 2/3。该研究得到的高度集成神经形态系统弥补了基于忆阻器的卷积运算和全连接 VMM 之间的吞吐量差距,从而为大幅提升 CNN 效率提供了可行的解决方案。
基于忆阻器的实用神经形态计算系统通常需要集成多个忆阻器交叉阵列。一般来说,将权重分配到不同阵列有利于并行计算,尤其是对于网络规模扩大的情形。但是,之前基于忆阻器的 demo 依赖于单一阵列,其主要原因是生成高度可重复的阵列面临巨大挑战。忆阻器设备的易变性和不完美特性被认为是神经形态计算应用的主要瓶颈。
该研究提出了一种基于忆阻器的灵活计算架构,适用于神经网络,如图 1a 所示。
忆阻器单元使用 TiN/TaO_x/HfO_x/TiN 的材料堆叠,通过调节电场和热,在增强(SET)和抑制(RESET)这两种情况下均展现出连续电导率调节能力。材料和制造流程(详见 Methods for details)与传统的 CMOS 流程兼容,从而使忆阻器阵列可以方便地内置在晶圆的后段制程中,以减少流程变动,实现高复现性。得到的交叉阵列在同等的编程条件下具备均匀的模拟开关行为。因此,多忆阻器阵列硬件系统基于自定义印刷电路板(PCB)和 FPGA 评估板(ZC706, Xilinx)构建。
正如系统图所示,该系统主要包含八个基于忆阻器的处理元件(PE)。每个 PE 具备集成了 2048 个单元的忆阻器阵列。每个忆阻器与晶体管的漏级端相连,即 1T1R 配置。核心 PCB 子系统具备八个忆阻器阵列芯片,如图 1b 所示。每个忆阻器阵列(图 1b 右侧小图)具备 128 × 16 个 1T1R 单元。在水平方向上共有 128 条并行字线和 128 条源线,在垂直方向上共有 16 条位线。
该阵列展示了极具可重复性的多级电导率状态,如图 1c 测试结果所示。图 1c 展示了 1024 个忆阻器在 32 个不同电导率状态中的分布,其中所有曲线均独立且没有重叠。将使用 50 ns 脉宽训练的相同 SET 和 RESET 脉冲部署到闭环编程操作中,以达到特定的电导率状态。
图 1:基于忆阻器的硬件系统具备可靠的多级电导率状态。
图 2:具备忆阻器卷积器的五层 mCNN。
图 3:利用混合训练方法得到 mCNN。
a:实验所用混合训练方法的流程图。b:实验中使用混合训练方法训练 mCNN 的图示。首先,系统将不同卷积层的核权重以及 192 × 10 FC 权重迁移至忆阻器 PE。然后,系统保持核权重不变,仅通过实时训练更新 FC 权重。c–e:与 C1 层(c,大小为 8 × 9)、C3 层(d,大小为 96 × 9)和 FC 层(e,大小为 120 × 16)中的核权重目标值相比,权重迁移误差(weight-transfer error)的分布情况。彩条表示权重迁移误差的绝对值。f:经过 550 次混合训练迭代循环后的误差率轨迹。绿色曲线表示 55,000 张训练图像上的趋势,蓝色曲线表示 10,000 张测试图像上的趋势。
图 4:使用混合训练方法得到的并行忆阻器卷积器,可以提升卷积效率。
a:使用混合训练方法的硬件系统操作流程图,其为并行忆阻器卷积器调节不完美的设备特性。三批输入图像(左侧手写数字)输入到三个 PE 卷积器组中。所有处理后的中间数据输入到共享 FC PE 中,以完成实时调整。在神经网络图中,蓝色表示卷积层 C1 和子采样层 S2,绿色表示卷积层 C3 和子采样层 S4。在 PE 图中,蓝色区域表示 C1 层的卷积核,绿色区域表示 C3 层的卷积核。b–d:从 C1 和 C3 层的异地训练核权重映射到三个不同组 G1 (b)、G2 (c) 和 G3 (d) 的权重迁移误差分布。色彩图的大小是 104 × 9。彩条表示在 0.2-V 读数脉冲处迁移后的当前值中存在的误差。e:实验 FC 权重分布 (120 × 16) 在混合训练前(上)后(下)的演化。f:与 e 对应的电导率-权重变化的分布情况。g:混合训练后在测试集上得到的误差率比对每个卷积器组执行权重迁移后直接得到的误差率低得多。
参考链接:https://www.nature.com/articles/s41586-020-1942-4
*延伸阅读
△长按添加极市小助手
△长按关注极市平台,获取最新CV干货
觉得有用麻烦给个在看啦~