首页> 中国专利> 迁移学习的硬件加速器扩展—将训练扩展/完成到边缘

迁移学习的硬件加速器扩展—将训练扩展/完成到边缘

摘要

一种用于在边缘设备的硬件加速器上训练神经网络的计算机实现的方法,包括将训练好的神经网络划分为领域独立部分和领域依赖部分。神经网络的领域独立部分被部署到边缘设备的硬件加速器的专用神经网络处理单元上,并且神经网络的领域依赖部分被部署到边缘设备的硬件加速器的一个或多个附加处理器上。使用在边缘设备处收集的数据来重新训练硬件加速器的附加处理器上的领域依赖部分。

著录项

  • 公开/公告号CN113272829A

    专利类型发明专利

  • 公开/公告日2021-08-17

    原文格式PDF

  • 申请/专利权人 西门子股份公司;

    申请/专利号CN201980088723.2

  • 申请日2019-01-14

  • 分类号G06N3/063(20060101);G06N3/08(20060101);G06N3/04(20060101);G07C3/14(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人张贵东

  • 地址 德国慕尼黑

  • 入库时间 2023-06-19 12:14:58

说明书

技术领域

本公开总体上涉及迁移学习的硬件加速器扩展,以便将训练扩展/完成到边缘。例如,本文描述的各种系统、方法和装置可以应用于开发物联网(IoT)和其它边缘设备处的高度定制化的神经网络。

背景技术

分类是一种机器学习任务,它为给定的数据点集合预测一个类。近年来,在诸如图像和语音识别的分类任务中,准确度有了明显提高。新方法使用人工深度神经网络,并在诸如ImageNet的大型公共数据集上实现超人类精度。这一发展由用于训练的超大数据集和基于数据中心/云的计算能力来推动。关于主要以消费者为中心(例如,基于自由共享的照片)的领域的学习现在正转移到其他领域,例如工业和医疗保健领域。应用包括基于深度强化学习的大型发电燃气轮机排放优化、基于视觉的机器人控制和非标准对象的抓取、制成品的视觉质量控制等。

深度神经网络的工业应用面临的一个挑战是,可用的数据通常不如已成功部署这些算法的其他领域那么多。例如,人们不能记录一个具有特定缺陷的零件的成千上万个表示,以在将来自动检测它。此外,许多工业应用程序要求高数据安全性,不是所有供应商都对在云中共享甚至存储这种数据感到舒适。此外,还存在关于延迟、通用实时要求、带宽以及在没有数据连接的情况下离线运行设施的要求的限制。

这些考虑促进了当前从云应用到边缘计算应用的趋势。术语“边缘计算”是指与集中式云计算环境相反,在位于机器附近或机器上的设备节点上执行的计算。虽然边缘方法解决了上面所讨论的一些挑战,但是边缘计算也带来了限制可用计算性能的问题。复杂的深度神经网络无法在低功耗CPU上运行实时应用,导致了AI专用硬件加速器的趋势。然而,用于在云中训练大型深层神经网络的数据中心仍然比边缘AI加速器具有显著更高的性能,边缘AI加速器必须以几瓦来运行才能实现被动冷却,从而在不移动部件的情况下实现高可靠性。例如,如Silver,D等人的用深度神经网络和树搜索掌握围棋游戏(Mastering thegame of Go with deep neural networks and tree search),Nature 529,484–489(2016)中所描述的AlphaGO Lee在数据中心的48个TPU上训练了几个月以实现最佳性能。

允许在边缘上进行训练的灵活解决方案是基于CPU或GPU的。不幸的是,这些解决方案要么与AI特定的硬件加速器相比在计算上受到限制,要么需要明显更多的功率,这限制了它们在工业边缘环境和使用边缘设备的其他操作环境中的使用。

发明内容

本发明的实施例通过提供方法、系统和装置来解决和克服上述缺点和不足中的一个或多个,这些方法、系统和装置与通过将训练扩展/完成到边缘来迁移学习的硬件加速器扩展有关。

根据一些实施例,用于在边缘设备的硬件加速器上训练神经网络的计算机实现的方法包括将训练好的神经网络划分成领域独立部分和领域依赖部分。神经网络的领域独立部分被部署到边缘设备的硬件加速器的专用神经网络处理单元上,并且神经网络的领域依赖部分被部署到边缘设备的硬件加速器的一个或多个附加处理器上。使用在边缘设备处收集的数据在硬件加速器的附加处理器上重新训练领域依赖部分。

根据其他实施例,边缘设备通过网络连接到远程计算机系统。边缘设备具有硬件加速器,该硬件加速器包括一条或多条通信总线、专用神经网络处理单元以及一个或多个处理器。专用神经网络处理单元执行训练好的神经网络的领域独立部分。处理器执行通过通信总线连接到领域独立部分的训练好的神经网络的领域依赖部分。处理器使用在边缘设备处收集的数据来重新训练领域依赖部分。

根据其他实施例,用于训练神经网络的系统包括计算机和边缘设备。计算机将神经网络划分成领域独立部分和领域依赖部分,其中至少领域独立部分是预先训练好的。边缘设备经由网络从计算机接收领域独立部分和领域依赖部分。边缘设备将神经网络的领域独立部分部署到边缘设备的硬件加速器的专用神经网络处理单元上。神经网络的领域依赖部分被部署到边缘设备的硬件加速器的一个或多个附加处理器上。边缘设备使用在边缘设备处收集的数据在硬件加速器的附加处理器上训练领域依赖部分。在部署和重新训练之后,边缘设备使用领域独立部分和领域依赖部分来执行一个或多个任务。

作为上述系统的变型,在一些实施例中,边缘设备经由网络从计算机仅接收领域独立部分。神经网络的该领域独立部分被部署到边缘设备的硬件加速器的专用神经网络处理单元上。然后,边缘设备将神经网络的新版本的领域依赖部分生成到边缘设备的硬件加速器的一个或多个附加处理器上。边缘设备使用在边缘设备处收集的数据在硬件加速器的附加处理器上训练新版本的领域依赖部分。在部署和训练之后,边缘设备使用新版本的领域独立部分和领域依赖部分来执行一个或多个任务。

从下面参照附图对说明性实施例的具体实施方式中,本发明的其他特征和优点将变得显而易见。

附图说明

当结合附图阅读时,从下面的具体实施方式中可以最好地理解本发明的前述和其他方面。为了说明本发明的目的,在附图中示出了目前优选的实施例,然而,应当理解,本发明不限于所公开的特定手段。附图中包括下面的图:

图1A示出了根据本发明的一些实施例配置的示例边缘设备架构;

图1B示出了根据本发明的一些实施例配置的替代边缘设备架构;以及

图2示出了根据一些实施例的用于在边缘设备的硬件加速器上训练神经网络的计算机实现的方法。

具体实施方式

以下公开描述了根据针对与硬件加速器扩展相关的方法、系统和装置的几个实施例的本发明,这些硬件加速器扩展通过将训练扩展/完成到边缘来迁移学习。

在典型的神经网络部署中,最大的数据集被记录在边缘处,并被上传到云,以重新训练神经网络来获得最佳性能。然后在边缘处下载并应用该网络。每当需要向网络添加新类时,都重复该过程。这种方法的原因是神经网络硬件加速器被设计成最大化它们的推理(interference)性能。在架构中没有考虑训练所需的神经网络权重的快速迭代变化,因为硬件计算能力不足以进行全面训练,并且不会接触到来自边缘处的大型数据库的数百万个示例。一种替代方法是收集数据,并在本地服务器上进行训练以解决数据隐私忧虑。此后,更新后的网络被上传回边缘硬件,以供将来推理。这两种方法都不允许在边缘设备内部用最少的数据进行训练(而无需与其他系统接口),并且同时允许设备推理的连续操作(即,无需停止工厂加工线)。

采用本文描述的技术,神经网络被划分为固定部分和灵活部分。固定部分是(例如,用云中的数百万个示例)预先训练好的,并且用作特征提取层。然后,固定部分可以部署在硬件加速器的推理优化的部分上。神经网络的灵活部分用于训练新的类和使当前的分类器动态自适应。然后,该灵活部分可以被部署在硬件加速器的灵活部分(例如,例如流混合架构矢量引擎(Streaming Hybrid Architecture Vector Engine,SHAVE)处理器、GPU或CPU)中。通过在边缘处在低功耗硬件上执行神经网络训练/自适应,我们可以实现更灵活的应用,包括基于连续学习的方法。这将使神经网络的更新和细化过程明显比常规解决方案更有效。

图1A示出了根据本发明的一些实施例配置的示例边缘设备架构。该边缘设备105通过网络115连接到远程计算机110。在该示例中,边缘设备105的主要组件是人工智能(AI)硬件加速器120。硬件加速器120包括专用神经网络处理单元125,其包括一个或多个处理单元,该处理单元被优化用于以高速和低功耗执行神经网络。硬件加速器120还包括一个或多个附加处理器130。例如,这些附加处理器130可以包括例如SHAVE处理器、图形处理单元(GPU)或者甚至是中央处理单元(CPU)。可以使用单一类型的处理器,或者不同类型处理器的组合(例如,SHAVE处理器和CPU)可以用于本发明。通信总线135连接专用神经网络处理单元125和附加处理器130。可用于本发明的硬件加速器的非限制性示例包括因特尔的MyriadTMX VPU。在MyriadTMX VPU中,专用神经网络处理单元125体现在神经计算引擎中,而附加处理器130由Myriad的SHAVE核来体现。

继续参考图1,在远程计算机110处,训练好的神经网络150被划分成领域独立部分140和领域依赖部分145。例如,该划分可以由训练好的神经网络150的原始设计者进行,或者可以(例如,使用本领域已知的可视化工具来)分析训练好的神经网络150以确定训练好的神经网络150的不同部分的功能特性。

领域独立部分140是训练好的神经网络150的一部分,其执行可以跨多个领域使用的功能(例如,特征提取),而领域依赖部分145执行更特定于特定领域或应用(例如,分类)的功能。硬件加速器120必要时使用通信总线135在两个部分140、145之间传输数据,以将领域独立部分140和领域依赖部分145作为完整的神经网络执行。用于在不同硬件加速器组件之间传输数据的技术在本领域中是公知的,通常可以采用任何这样的技术来促进上述数据传输。

每个部分140、145包括一层或多层。如本领域中通常所理解的,术语“层”是指神经网络和不同的网络体系架构(例如卷积层或池化层)内的特定深度处一起操作的节点的集合。神经网络可以基于其底层架构被划分为不同的层。对深层神经网络的研究表明,网络中的前面的层类似于Gabor滤波器或颜色团块(color blob)。在经典的图像处理方法中已经使用了类似的函数来进行预处理和特征提取。然后,在网络的后面的层将这些功能进行组合,以区分类或执行其他功能。在J.Yosinski,J.Clune,Y.Bengio和H.Lipson的深度神经网络中的特征可迁移性如何?(How transferable are features in deep neuralnetworks?)以及在Z.Ghahramani,M.Welling,C.Cortes,N.Lawrence,和K.Weinberger编辑的神经信息处理系统进展27(Advances in Neural Information Processing Systems27),第3320-3328页,Curran Associates公司,2014年12月中分析了神经网络不同层的领域特异性。已经表明,通过使用这种方法,与使用有限的数据进行训练相比,使用小的训练集可以生成明显更高的识别准确度。例如,Matlab发布了一个比较,他们从头开始训练具有每类5000个图像的网络,获得了75%的准确度,然后使用一种迁移学习方法,其中他们只利用每类500个图像来重新训练AlexNet的最后3层,并且实现了85%的准确度。参见“用MATLAB进行深度学习:在MATLAB中使用神经网络进行迁移学习”(Deep Learning withMATLAB:Transfer Learning with Neural Networks in MATLAB),可查阅于:https://www.mathworks.com/videos/transfer-learning-with-neural-networks-in-matlab-1492007175092.html(最后访问时间:2019年1月9日)。

例如,卷积神经网络(convolutional neural network)可以被设计成具有以下层:输入层;一系列卷积层和池化层,以及一个或多个全连接层。输入层接收图像的原始像素值。卷积层包括当在输入数据中检测到特定特征时激活的滤波器(或核)的集合。例如,卷积层可以执行边缘检测和/或曲线检测。池化层减小了卷积层的输出的空间尺寸。在一些CNN中,在连续的卷积层之间周期性地插入池化层。在一系列卷积和最大池化层之后,经由一个或多个全连接层来执行神经网络的高级推理。例如,全连接层可以执行图像处理任务,例如对象检测、对象分割、图像分类或定位。用于实现这些图像处理技术的技术在本领域中是公知的,因此本文不详细描述这些技术。

在本文描述的迁移学习技术的情况下,可以用大数据集(例如,ImageNet数据集)来训练CNN。输入层和一系列卷积和池化层被用作领域独立的特征提取器。训练好的CNN的全连接层被替换为边缘设备105上的领域依赖的全连接层。实际上,这可以理解为保留完整的CNN,其中在执行梯度下降/优化过程时,仅允许全连接层的权重变化。

在一些实施例中,训练好的神经网络150的领域独立部分140与领域依赖部分145之间的划分可以基于硬件加速器120的硬件能力来进行。例如,如上所述,领域依赖部分145可以仅包括训练好的神经网络150的全连接层,其对提取的特征数据执行分类(或其他任务)。根据所涉及的任务,可能希望在领域依赖部分145中还包括一些其他层(例如,一个或多个卷积和池化层),以允许这些层基于边缘设备本地的数据被重新训练。为了评估如何划分训练好的神经网络150,远程计算机110可以向边缘设备105询问其硬件特性,然后相应地划分训练好的神经网络150。这些硬件特性通常可以包括指示边缘设备105的处理能力的任何信息。该信息可以包括但不限于硬件加速器120的处理速度、可用RAM和总线速度。

图1B示出了图1A的示例的变体。这里,远程计算机110简单地发送完整的训练好的神经网络150,而不是在远程计算机110上划分训练好的神经网络150并将两个部分140、145发送到边缘设备。然后,边缘设备105将训练好的神经网络150划分成领域独立部分140和领域依赖部分145。在一些实施例中,训练好的神经网络150可以与指定所需的硬件特性的指令一起被传送到边缘设备105以在领域依赖部分145中包括某些层。以这种方式,边缘设备105可以基于对其硬件特性的评估来本地执行划分。

图2示出了根据一些实施例的用于在边缘设备的硬件加速器上训练神经网络的计算机实现的方法200。该方法200可用于允许在边缘设备处定制预先训练好的神经网络。例如,在一个实施例中,使用第一数据集来训练神经网络,该第一数据集不是特定于工厂操作环境的。一般来说,这些数据可以采取任何形式,并且将基于应用而变化。训练数据的非限制性示例包括通用图像和/或音频数据。创建领域独立版本,并可以在边缘设备处使用特定于工厂操作环境的第二数据集对该领域独立版本进行重新训练。需要注意的是,“领域独立”并不一定意味着原始的神经网络是完全通用的。例如,可以基于从一组工厂收集的传感器测量值的库来训练神经网络。然后,可以在特定工厂的边缘设备处重新训练该神经网络的一部分,以利用本地收集的传感器测量值来细化神经网络。

从步骤205开始,训练好的神经网络被划分成领域独立部分和领域依赖部分。在一些实施例中,在通过网络连接到边缘设备的远程计算机系统处划分训练好的神经网络。例如,在一些实施例中,神经网络部分作为一个或多个描述网络的架构和每个节点的权重的可扩展标记语言(XML)文件来传输。在其他实施例中,神经网络作为针对边缘计算机的架构编译的一个或多个可执行应用程序来迁移。在其他实施例中,在边缘设备处使用附加处理器来划分训练好的神经网络。例如,可以基于边缘设备的硬件特性来选择包括在领域依赖部分中的训练好的神经网络的层数。

继续参考图2,在步骤210,神经网络的领域独立部分被部署到边缘设备的硬件加速器的专用神经网络处理单元上。硬件加速器可以包括计算机模拟(in silicon)优化的神经网络特定操作,例如卷积或矩阵乘法或针对普通神经网络设计执行优化的极快的存储器计算连接。在步骤215,神经网络的领域依赖部分被部署到边缘设备的硬件加速器的一个或多个附加处理器上。部署方法可以根据神经网络的开发方式和边缘设备的架构而变化。然而,通常可以使用本领域已知的任何部署技术。

在步骤220,使用在边缘设备处收集的数据,在硬件加速器的附加处理器上重新训练领域依赖部分。例如,在一个实施例中,边缘设备是在工厂设置中充当控制器的组件。边缘设备接收测量值,根据这些测量值进行预测,然后生成一个或多个控制工厂设备的输出。在这种情况下,在操作期间收集的测量数据可以用于重新训练神经网络的领域依赖部分。注意,这种重新训练的方法不仅允许神经网络的设备级定制,而且以比远程计算系统可获得的更高的数据保真度进行训练。例如,可以以0.01秒的间隔收集传感器测量值,并且可以需要10秒的数据来进行预测。如果数据需要传输到远程计算机,则存储和带宽要求可能要求以每秒为单位采样数据,因此需要基于10个测量值进行训练。然而,在边缘设备处,每个测量值都可以用于训练,从而潜在地提高整体模型的准确度。最后,在步骤225,一旦神经网络被重新训练,边缘设备就使用它来执行一个或多个任务。例如,继续上述示例,边缘设备可以对图像数据进行分类,并生成用于控制工厂设备的输出。

在一些实施例中,远程计算机系统不在领域依赖部分传输到边缘设备;相反,领域依赖部分是基于边缘数据完全在边缘处生成的。然而,提供具有相同类输出的预先训练好的领域依赖部分应该有助于算法的转换速度。这假设领域之间的差异不是很大,并且可以在新领域中找到最优分类器的凸路径(convex path)。训练也可以尝试这种方法,如果没有足够的分类器可以适应;然后可以随机重新开始领域依赖网络中的全连接层,并从头开始训练这部分。

为了进一步说明图2中描述的技术的适用性,设想了需要基于摄像头图像将工业过程的输出分类为好产品和坏产品的用例。定义/指定检测到的故障是很有用的,这样接下来的步骤(如返工)就可以自动化了。由于某些故障非常罕见,因此在训练阶段期间没有关于这些故障类的可用数据。使用常规系统中应用的方法,需要停止生产以确保不遗漏任何故障,将新数据添加到训练中,并在再次激活生产线之前上传新模型。这是一种非常昂贵且有时不可行的方法,因为机器可能需要很长的加速时间才能达到所需的质量水平。这可以通过使用渐进神经网络学习方法来解决,如A.A.Rusu,N.C.Rabinowitz,G.Desjardins,H.Soyer,J.Kirkpatrick,K.Kavukcuoglu,R.Pascanu,和R.Hadsell的渐进神经网络(Progressive neural networks),arXiv预印本arXiv:1606.04671,2016中所说明的。

类似于迁移学习,这种方法借用先前发现的分类器来最小化必要的参数优化器,并利用可用的更大的数据集来训练网络的特征提取部分。这种方法的优点是先前学习的分类器被冻结,并且不受新分类器训练的影响。这使得分类能够在不损失准确度的情况下,在训练期间继续。此外,网络可以被划分为固定的高性能优化部分和灵活的自适应部分。训练可以外包给硬件加速器的灵活层,以在当前的边缘硬件中能够运行。

上述训练技术通过在边缘处进行训练来使得大量新的应用能够实现。如上所述,所公开的技术的一个优点是数据不需要被记录和移动到强大的机器上进行训练,从而导致了更有效的过程。只要付出最少的努力,用户就能够更频繁地适应训练以进行更精细的调整。用户可以在操作过程中给出正确的反馈,以便在边缘继续学习。使用来自数百万个示例的大型预先训练好的网络作为基础并通过小的训练数据集来适应用例的分类器的性能明显高于从头开始从几个示例训练的网络。在线操作期间可以进行重新训练和增加类。这可以导致减少代价高昂的受监控生产线的停机。此外,在边缘上训练组件生成了逻辑分离层,使用户能够将它们的处理的部分与可能发生在外部(如在云平台上)的预先训练隔离开来。

本公开的实施例可以用硬件和软件的任意组合来实现。例如,除了上面参考图1A和图1B呈现的硬件加速器架构之外,可以使用硬件加速器作为协处理器,在主CPU中计算所有灵活的(即,领域依赖)部分并且将固定的(即,领域独立)部分外包到加速器。此外,本公开的实施例可以包括在制造物品中(例如,一个或多个计算机程序产品),其具有例如计算机可读的非暂时性介质。该介质可以在其中体现用于提供和促进本公开实施例的机制的计算机可读程序代码。制造物品可以作为计算机系统的一部分,也可以单独出售。

虽然本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员来说将是显而易见的。本文公开的各种方面和实施例是为了说明的目的,而不是为了限制,真正的范围和精神由所附的权利要求指出。

本文使用的可执行应用包括例如用于响应于用户命令或输入来调节处理器以实现预定功能(例如操作系统、上下文数据获取系统或其他信息处理系统的功能)的代码或机器可读指令。可执行程序是用于执行一个或多个特定过程的一段代码或机器可读指令、子例程或其他不同的代码段或可执行应用程序的部分。这些过程可以包括接收输入数据和/或参数,对接收的输入数据执行操作和/或响应于接收的输入参数执行功能,以及提供结果输出数据和/或参数。

本文的功能和处理步骤可以自动地执行或者全部地或部分地响应于用户命令执行。自动执行的活动(包括步骤)是响应于一个或多个可执行指令或设备操作执行的,而无需用户直接启动该活动。

图中的系统和过程并不排他。根据本发明的原理,可以导出其他系统、过程和选单来实现相同的目的。虽然已经参照特定实施例描述了本发明,但是应当理解,本文示出和描述的实施例和变化仅仅是为了说明的目的。在不脱离本发明范围的情况下,本领域技术人员可以实现对当前设计的修改。如本文所述,各种系统、子系统、代理、管理器和过程可以使用硬件组件、软件组件和/或其组合来实现。本文的任何权利要求要素均不得根据U.S.C.112(f)的第35款进行解释,除非该要素使用短语“用于…的部件”进行了明确叙述。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号