深度学习挑战在嵌入式平台

27 2016 Sep

Liran 酒吧,产品营销总监,CEVA,成像与视觉 DSP 核心产品线来看如何克服深在嵌入式系统中学习的挑战。

日常应用程序成功传入的人工智能 (AI) 将取决于它是多么容易部署深神经网络在低功耗的小型设备,而不是大型服务器网络

在这篇文章,我们看看如何处理这些挑战。

深度学习挑战在嵌入式平台

Googlenet 深卷积神经网络

在 2014 年,谷歌了名为 GoogLeNet 的 ImageNet 大型视觉识别挑战 (ILSVRC),进入。它是一个有趣的案例研究,因为它是 22 层深积网络,并且包括九个 inceptions,创建非常丰富和复杂的拓扑。

在 GoogLeNet 网络中,每一层的每个连接可以潜在来回通过复员方案。要在嵌入式系统中处理这一挑战。复杂的网络拓扑结构必须分为层在 DSP 上运行批处理或专用硬件。我们称这种子网划分。

在我们 CEVA 网络生成器工具中,所有的分析是自动完成的无需用户干预。网络划分为子网,每一个子网络上通过网络发生器的执行次序 DSP 运行。例如,让我们看看 GoogLeNet 网络的初始部分经过我们网络生成器工具。

深度学习挑战在嵌入式平台

CEVA 网络生成器工具

你可以看到在上面的图片,网络生成器创建四个子网。这些子网的三个运行在不同的执行时间,但两个可以在上并行运行不同的核心。此外,网络发生器被旨在创建长层序列,可能只会通过内部内存。

克服的挑战

接下来,让我们看看方法旨在克服一些深度学习嵌入式平台中最重大的挑战。

减少带宽

由于严格的限制的带宽在嵌入式平台,实现卷积神经网络无疑将生成一些带宽方面的问题。这些都造成要么网络筛选器权重,或数据传输从一层到另一层。

这里有可以帮助减少带宽的两个规则︰ 1.通过在输入映射的不同位置上运行相同的筛选器创建每个输出映射。依托这一规则,我们可以节省大量负载数据重量、 减少不必要的带宽使用。

  1. 每个输出是由相同的输入数据计算的。应用此规则,可以加载输入和用于所有输出不超过一次利用复员方案。

繁殖和积累利用

DSP 架构的一个强大功能是能够执行单周期乘法累加 (MAC) 说明为激烈的计算。为了尽可能提高效率,它有利于有连续的 MAC 指令序列。这可以以不同的方式处理,在两个不同的情况︰

  1. 较低的数目大的输入映射
  2. 大量的小的输入映射

在第一种情况下,我们将愿意完成筛选器计算为每个输入地图前去下一个地图。这种方式我们受益重叠的筛选器,并且在地图的边缘上,我们将有冗余 MAC 利用损失。下面的公式所示,计算宽度和高度都是第一次,在这种情况下。我们调用这个方法局部滤波计算。

深度学习挑战在嵌入式平台

深度学习挑战在嵌入式平台

用于大尺寸映射的局部滤波器计算公式

在第二种情况下,小型的输入映射,出现在大量,应该整个地图进行计算。不同的输入的映射到一个输出映射处理。在这种情况下,计算了部分筛选结果和过程结束时所有的部分结果累加在一起使用的属性启用此卷积滤波器的一个结果。未来的公式所示,首先计算渠道。我们称这种交叉地图滤波器的计算方法。

深度学习挑战在嵌入式平台

深度学习挑战在嵌入式平台

公式为交叉地图滤波器的计算,用于大量的地图尺寸较小 (最后一层)

利用内部内存

若要有效地使用嵌入的资源,我们必须有所有的输入映射在内部的内存中,并加载只有一次。但是,如果我们没有足够的内存来保存此规则吗?在这种情况下我们将需要执行瓷砖除法运算的输入,但仍保留规则。分裂以后, 我们会有相同数量的投入,但在瓷砖。这种划分的影响正在加载图像块的数量的相关性中的权重。

所有这些问题和他们的解决方案显然是用户想要在嵌入式平台上实现深度学习时避免处理的东西。在 CEVA,我们相信这应该是一个实时系统来执行而无需用户参与或甚至意识的基本要求。这是 CEVA 深度神经网络框架和 CEVA 网络发生器的核心责任。

可以做什么呢?

我们讨论了几个嵌入的算法解决方案,有助于改变对我们有利的卷积计算。除了这些,更多的事情可以做在算法层次上理解神经网络的工作。下面是使用压缩方法和先验知识来减少带宽和提高性能的几个例子︰

  • 使用像哈夫曼编码算法
  • 在管道来保存 BW 工作
  • 找出一些计算可以保存时
  • 计算之间共享数据
  • 认识到当重点应放在权重和当它应该是对地图的大小 — — 网络依赖
  • 压缩和解压缩更好地随着时间的推移 (学习帧的执行)

结论

正如你所看到的有很多可以做深卷积神经网络的嵌入式系统技术方面。一旦在嵌入式系统中的深度学习的挑战已被克服,有许多机会都开放。

相关新闻