1.4 本书的目标和大纲

机器学习,尤其是深度学习已经成为一门重要的学科,通过它可以解决许多传统上困难的问题,例如模式识别、决策和自然语言处理。如今,数百万甚至数十亿个神经网络正部署在数据中心、个人计算机和便携式设备中运行,执行各种任务。在未来,预计我们将需要更大规模、更复杂的神经网络。这种发展趋势需要一种定制化的硬件来应对功耗和响应时间不断增长的要求。

在本书中,我们重点讨论如何为具有学习能力的神经网络构建节能硬件。本书致力于为构建可以学习执行各种任务的硬件神经网络提供协同设计和协同优化方法。本书提供了从高层算法到底层实现细节的完整视图。开发硬件友好算法的目的是简化硬件实现,而特殊的硬件体系结构的提出则是为了更好地利用算法的独特功能。在以下各章中,将讨论用于节能型神经网络加速器的算法和硬件体系结构。本书的组织概述如图1.3所示。

图1.3 本书组织结构概述

第2章讨论利用和训练基于速率的ANN的算法,以及涉及ANN的学习和推理的几个基本概念。该章还介绍流行的网络结构,例如全连接神经网络、CNN和循环神经网络,并讨论它们的优点。其内容还包括演示不同类型的学习方案,例如监督学习、无监督学习和强化学习,并且提供一个具体的案例研究来说明如何在强化学习任务中使用ANN。考虑到最近深度学习取得的许多惊人成果,该章重点介绍深度学习中常用的概念和技术。

第3章介绍执行神经网络的各种选项,涵盖从通用处理器到专用硬件,从数字加速器到模拟加速器等内容。该章还讨论第2章中介绍的许多神经网络结构和深度学习技术的硬件实现。针对数字和模拟加速器,该章提出各种有助于构建节能加速器的架构和电路层面的技术及创新。该章还详细讨论为神经网络自适应动态编程而构建低功耗加速器的案例研究,以提供具体示例。

第4章从典型SNN的基本操作原理开始,讨论SNN的基本概念和流行的学习算法,确定SNN和ANN之间的相似点和关键区别。该章首先讨论许多能够训练浅层神经网络的经典学习算法。受深度ANN最近取得成功的启发,还探讨如何将学习扩展到深度SNN,研究了训练多层SNN的流行方法。为了证明训练深度SNN的可行性,该章还详细介绍一种利用脉冲时序估计反向传播所需梯度信息的监督学习算法。

第5章讨论SNN的硬件实现。该章强调SNN硬件的几个优点,这是实现SNN硬件的动力。此外还介绍一些针对模拟生物神经网络或执行认知任务的通用大规模的脉冲神经网络系统,包括TrueNorth和SpiNNaker等数字系统以及Neurogrid和BrainScaleS等模拟系统。除了这些大规模神经形态系统以外,该章还讨论旨在以高能效加速特定任务的紧凑型定制SNN硬件。为了在硬件上有效地实现第4章中介绍的学习算法,该章给出了三个设计示例。其中两种设计是基于常规CMOS技术的数字加速器,而第三种设计是基于新兴纳米技术的模拟系统。通过这三个设计示例,设计SNN硬件的许多重要方面都被涵盖到了。

第6章总结全书,并就神经网络硬件领域的未来研究方向提供一些想法和展望。