人工神经网络

人工神经网络是一种生物启发计算模型,按照人脑中的神经元网络仿制而成。此外,人工神经网络还可视为建立输入-输出关系模型的学习算法。人工神经网络的应用包括医学、商业、纯科学、数据挖掘、电信以及运营管理等领域的模式识别和预测。

人工神经网络通过将非线性函数应用于输入值的加权求和,以此转换输入数据。该转换叫作神经层,该函数则称为神经元。层的中间输出称为特征,会用作下一层的输入。历经重复转换的神经网络会学习多层非线性特征(比如边缘和形状),之后会在最后一层汇总这些特征以生成(对更复杂目标物的)预测。神经网络的学习方式是,改变网络的权重或参数以便将神经网络的预测值与期望值之差降至最低。我们将人工神经网络从数据中学习的这一阶段称为训练。

artificial-nerural-network

只将信息从一层向前馈送至下一层的神经网络称为前馈神经网络。而具有内存或反馈回路的一类网络则称为递归神经网络

神经网络推理

人工神经网络一旦经过训练,便可在获得输入时准确预测输出,我们将这一过程称为神经网络推理。为执行推理,经训练的神经网络可部署在各种平台中,从云端、企业数据中心到资源受限的终端设备无所不包。所部署的平台和应用程序类型对运行时具有独特的延迟、吞吐量和应用程序大小要求。例如,对于在汽车内执行车道检测的神经网络,需要满足低延迟和小型运行时应用程序这两个条件。另一方面,从视频流中识别对象的数据中心需要同时处理成千上万个视频流,因此需要具备高吞吐量和高效率。

神经网络术语

单元

单元通常是指转换输入数据的神经网络层中的非线性激活函数(如逻辑 sigmoid 函数)。输入/隐藏/输出层中的单元称为输入/隐藏/输出单元。一个单元通常拥有多个输入和输出连接。不过也存在一些复杂单元,比如长短期记忆 (LSTM) 单元拥有多个激活函数,并以独特的布局连接到非线性激活函数;又如最大输出单元可对大量经过非线性转换的输入值计算最终输出。池化、卷积以及其他输入转换函数通常不称作单元。

人工神经元

神经元或人工神经元与单元是同义词,只不过是隐含了与生物神经元的紧密联系。然而,深度学习实际上与神经生物学和人脑的关联并不大。在微观层面,人们使用神经元一词来将深度学习解释为对人脑的模拟。在宏观层面,人工智能可视为使用机器模拟人类的智力水平。不过,现在认为生物神经元更类似于整个多层感知器,而非神经网络中的单个单元/人工神经元。人类感知与认知的连接模型采用的是人工神经网络。作为由神经元及其突触形成的神经网络,大脑的这些连接模型不同于人类认知更类似于数字计算机中的符号运算这一传统观点(计算主义)。关系网络和神经图灵机证明,连接主义和计算主义的认知模型不一定互不相容,相反两者可以共存。

激活函数

激活函数或传递函数会对加权后的输入数据(对输入数据与权重执行矩阵乘法运算)进行转换。该函数可以为线性或非线性函数。单元与传递函数的区别在于,单元可以更加复杂。一个单元可包含多个传递函数(LSTM 单元)或更复杂的结构(最大输出单元)。

1000 层纯线性转换的特征可以通过单层再现(因为矩阵乘法链可始终由单个矩阵乘法表示)。然而,非线性转换可以创建越来越复杂的新关系。基于此,在深度学习中使用非线性函数来为每层创建愈加复杂的特征至关重要。非线性激活函数的示例包括逻辑 sigmoid、Tanh 和 ReLU 函数。

机器学习中,层是最高级别的构建模块。神经网络的第一层、中间层和最后一层分别称为输入层、隐藏层和输出层。隐藏层一词的由来在于其网络输出是不可见或是隐藏的。一个简单的三层神经网络拥有一个隐藏层,而深度神经网络一词则表示其拥有多个隐藏层。每个神经层包含若干个神经元或节点,且每层节点会与下一层的节点相连。节点之间的连接与权重有关,而权重取决于节点之间的关系。权重可根据逐层反向传播的误差进行调整,以此将成本函数(cost function)降至最低。成本函数用于衡量神经网络算法的输出与预计输出的近似度。我们可使用随机梯度下降、批量梯度下降或小批量梯度下降算法等优化算法来反向传播误差,以此将代价降至最低。随机梯度下降是指在统计上趋近对梯度的最优更改,以产生最低代价值。权重在梯度方向上的更改率称为学习率。低学习率对应于较慢/更可靠的训练,高学习率则对应于较快/较不可靠的训练,不过这种训练可能不会收敛至最优解。

神经网络层是一种容器,该容器通常会接收加权输入,然后通过一组大部分为非线性的函数对输入进行转换,接着再将这些值作为输出传递到神经网络的下一层。神经网络层通常是统一的,即仅包含一种激活函数、池化和卷积等。因此,我们可轻松将其与神经网络的其他部分进行对比。

借助 GPU 加速人工神经网络

先进的神经网络可能有数百万乃至十亿以上的参数需要通过反向传播进行调整。此外,它们需要大量的训练数据才能实现较高的准确度,这意味着成千上万乃至数百万的输入样本必须同时进行向前和向后传输。由于神经网络由大量相同的神经元构建而成,因此本质上具有高度并行性。这种并行性会自然地映射到 GPU,因而相较于仅使用 CPU 的神经网络训练,GPU 会使计算速度大幅增加。

由于能够加速系统,GPU 现已成为训练基于神经网络的大型复杂系统的理想平台。鉴于神经网络在业界和学术界与日俱增的重要性以及 GPU 的核心地位,NVIDIA 已建立名为 cuDNN 的基本类型库,该库可助力使用者轻松获得出色的深度神经网络性能。

推理运算的并行性质也使其十分宜于在 GPU 上执行。为优化、验证和部署推理网络,NVIDIA 研发了推理平台加速器和运行时引擎,称作 TensorRT。TensorRT 可实现低延迟、高吞吐量的推理,并能调整运行时应用程序,以理想方式在不同系列的 GPU 上运行。

其他资源

1. “Deep Learning in a Nutshell: Core Concepts”作者:Tim Dettmers,Parallel For All,NVIDIA,2015 年 11 月 3 日。
2. “Accelerate Machine Learning with the cuDNN Deep Neural Network Library”作者:Larry Brown,Parallel For All,NVIDIA,2014 年 9 月 7 日。
3. “cuDNN v2: Higher Performance for Deep learning on GPUs”作者:Larry Brown,Parallel For All,NVIDIA,2015 年 3 月 31 日。
4. “Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations”作者:Honglak Lee,ICML 2009 年。
5. “The Basic Ideas in Neural Networks”作者:David Rumelhart 等。《美国计算机协会通讯》,1994 年 3 月。