为什么说要重视神经网络加速器?

自从以深度学习为代表的神经网络算法的精度大大提升以后,人工智能开始终于又再次火了起来,且有席卷全球之势。根据BBC预测,到2020年,人工智能总体市场将会高达1190亿元的规模,年平均复合增长率也将达到19.7%。庞大的市场潜力就吸引了众多的芯片、算法和应用厂商投身其中。

和过去的大多数应用不一样,人工智能在模型训练与推理中需要大量的计算。但受限于其算法和计算本身的特性,过往一直被广泛使用的传统计算芯片却无法满足这些需求,这就要求芯片厂商去为神经网络算法打造专用的芯片,尤其是推理端的芯片,也就是俗称的神经网络加速器。由于这个市场大家几乎都处于同一起跑线,所以很多新兴的和传统的芯片厂商在上面角逐,这就给开发者的芯片选择带来了困扰。

为此,我们从概念入手,为大家提供神经网络加速器的(NNA)基本面了解,希望对大家有所启发。

神经网络加速器是趋势

在谈神经网络加速器之前,我们先了解一下什么是神经网络。

据维基百科,在机器学习和认知科学领域,人工神经网络是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具。

典型的神经网络具有以下三个部分:

1)结构(Architecture)

结构指定了网络中的变量和它们的拓扑关系。例如,神经网络中的变量可以是神经元连接的权重(weights)和神经元的激励值(activities of the neurons)。

2)激励函数(Activity Rule)

大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。一般激励函数依赖于网络中的权重(即该网络的参数)。

3)学习规则(Learning Rule)

学习规则指定了网络中的权重如何随着时间推进而调整。这一般被看做是一种长时间尺度的动力学规则。一般情况下,学习规则依赖于神经元的激励值。它也可能依赖于监督者提供的目标值和当前权重的值。例如,用于手写识别的一个神经网络,有一组输入神经元。输入神经元会被输入图像的数据所激发。在激励值被加权并通过一个函数(由网络的设计者确定)后,这些神经元的激励值被传递到其他神经元。这个过程不断重复,直到输出神经元被激发。最后,输出神经元的激励值决定了识别出来的是哪个字母。

人工神经网络通常是通过一个基于数学统计学类型的学习方法(Learning Method)得以优化,所以人工神经网络也是数学统计学方法的一种实际应用,通过统计学的标准数学方法我们能够得到大量的可以用函数来表达的局部结构空间,另一方面在人工智能学的人工感知领域,我们通过数学统计学的应用可以来做人工感知方面的决定问题(也就是说通过统计学的方法,人工神经网络能够类似人一样具有简单的决定能力和简单的判断能力),这种方法比起正式的逻辑学推理演算更具有优势。

拥有了这些神经网络之后,不但可以在云端架设服务器提供人工智能服务,且可以应用到智能手机、智能安防甚至智能汽车中实现图像识别、物体跟踪和语音识别等任务。但这些应用由于其应用场景的不同,还有算法特性的限制,这就要求他们提供低功耗、高效的,专门设计用来运行这些神经网络算法的芯片,我们就把他们称之为“神经网络加速器”。

再者,从目前看来,由于数据收集需要大量运算,因此各国的人工智算法仍然以云端发展为主。但考虑到信息安全、功耗以及对产品设计带来的挑战问题,以云为中心的架构方式并非在任何情况下都是最理想的解决方案,这就推动了对嵌入式人工智能的关注。那就对相关的芯片提出了更高的需求。

综上所述,推进神经网络加速器的落地势在必行。

本文节选自半导体行业观察 ,转载此文目的在于传递更多信息,版权归原作者所有。

最新文章