神经网络基础知识及应用介绍

375 阅读14分钟

神经网络要点

神经网络是所有人工智能算法的核心,如今,深度神经网络被用于从图像识别和物体检测到自然语言处理和生成等任务。在剖析了构成神经网络的基本构件和它们的工作原理后,本参考卡深入研究了神经架构类型及其各自的用途、神经网络芯片和模型优化技术的高层次。

简介

计算细胞的大规模互联,也被称为神经元,包括一个神经网络,它是所有人工智能(AI)算法的核心和灵魂。近80年前,即1943年,神经生理学家Warren McCullough和伊利诺伊大学芝加哥分校的数学家Walter Pitts首次提出神经网络。经过一系列的演变,深度神经网络(DNNs)--通常是指那些具有两个以上隐藏层的网络--现在被用于图像识别、图像分类、物体检测、语音识别、语言翻译、自然语言处理(NLP)和自然语言生成(NLG)。

本参考卡首先通过与生物神经网络的类比介绍了神经网络的概念,随后带领读者了解神经网络的基本组成部分,这些组成部分被认为是构建模块。此后讨论了常见的神经架构,定义了神经元的基本安排和它们的具体用途。

然后,我们将讨论专门为有效处理DNN工作负载而设计的不同人工智能加速器,以及在学习率上下功夫的神经网络优化器,以减少整体损失并提高准确性。最后,我们将介绍DNN在各行业的各种应用,并探讨利用高性能计算(HPC)与AI的力量。

第二节

什么是神经网络?

我们的生物神经网络通过我们的五种感官接收来自外部环境的感觉。然后,神经元将这些感觉传递给我们的其他神经细胞。人工神经网络(ANN),以同样的方式,收集数据作为输入,而神经元整合所有的信息。像生物神经网络的突触一样,人工神经网络中的互连在隐蔽层内转换输入数据。ANN中的输出被生成,就像生物神经网络中轴突的机制一样,对输出进行引导。

第三节

神经网络的要点

本节将首先阐明神经网络的组成成分,然后介绍各种网络结构,说明神经元是如何排列的。随后对神经网络芯片和优化器的讨论将展示网络的无缝实施,以提高准确性和速度。

神经网络组件

首先领会神经网络的螺母和螺栓是很关键的,它由三层--输入、隐藏和输出--以及感知器、激活函数、权重和偏置组成。

输入层、隐藏层和输出层

单一输入层接受有助于预测预期结果的外部独立变量。模型的所有独立变量都是输入层的一部分。一对多的相互连接的隐藏层是根据神经网络要服务的目的来配置的,比如通过视觉识别和NLP的对象检测和分类。隐层是输入/预测器的加权和的函数。当网络包含多个隐藏层时,每个隐藏单元是前一个隐藏层的单元的加权和的函数。输出层作为隐藏层的一个函数,包含目标(因果)变量。对于任何图像分类,输出层根据模型的预期目标,将输入数据隔离成多个节点。

图1: 输入层、隐藏层和输出层

感受器

康奈尔大学的实验心理学家Frank Rosenblatt对神经元的学习能力很感兴趣,他创造了一个具有多个输入、一个处理器和一个单一输出的简单感知器。因此,感知器是由单层组成的神经网络的一个组成部分。

图2: 感知器

激活函数

激活函数,也被称为转移函数,控制神经元输出的振幅。在一个具有多个隐藏层的深度神经网络中,激活函数将一个层中的单元的加权和与后续层中的单元的值联系起来。所有的隐藏层都使用相同的激活函数。激活函数可以是线性的,也可以是非线性的,最常用的激活函数在下表中进行了总结。

表1

类型描述公式
改良的线性激活(ReLU)一个线性函数,如果输入是正的,它将直接输出,但如果输入是负的,输出是0最大(0,x)
Logistic (Sigmoid)一个 "S "型曲线,产生的输出在0和1之间,表示为概率1/(1+e^(-x))
双曲切线 (TanH)类似于Sigmoid函数,但在本质上是对称的,因此产生更好的结果;接受实值参数并将其转换到(-1,1)的范围内(e^x-e^(-x))/(e^x+e^(-x))
线性接受实值参数,并返回它们,不作任何改变f(x) = x
柔性最大常用于有多个类别的分类问题,返回每个类别的概率softmax(z_i) = exp(z_i)/(Σ_j exp(z_j))

如果对使用哪种激活函数最适合你的使用情况有任何困惑,建议使用ReLU,因为它有助于克服梯度消失的问题,使模型得到更好的训练。

权重和偏倚

权重标志着相应特征(输入变量)在预测输出中的重要性。它们还解释了该特征与目标输出之间的关系。下图表明,输出是x(输入)乘以连接权重w0b(偏置)乘以连接权重w1的总和。

图3: 权重和偏置

偏置就像线性函数y=mx+c中的常数,其中m=权重,c=偏置。如果没有偏置,模型将只通过原点,而这种情况与现实相差甚远。因此,偏置有助于换位线,使模型更加灵活。

常见的神经架构

神经网络架构是由神经元组成的,这些神经元的排列方式创造了定义算法如何学习的结构。这些安排有输入层和输出层,中间有隐藏层,增加了模型的计算和处理能力。下面讨论关键的结构。

径向基函数

径向基函数(RBF)有一个被称为 "特征向量 "的单一非线性隐藏层,其中隐藏层的神经元数量应多于输入层的神经元数量,以将数据投射到更高维的空间。因此,RBF增加了特征向量的维度,使分类在高维空间中高度可分离。下图说明了输入 (x)是如何通过单个隐藏层(即特征向量)转化为输出 (y)的,隐藏层通过权重与 xy相连。

图4: 径向基函数

限制性波尔兹曼机

受限玻尔兹曼机(RBM)是一种无监督的学习算法,其两层神经网络包括可见/输入层和没有任何层内连接的隐藏层--即各层中没有两个节点相连,这就产生了限制。RBM被用于电影的推荐引擎、模式识别(例如,理解手写文本)和雷达目标识别的实时脉冲内识别。

图5: 限制性波尔兹曼机

递归神经网络

递归神经网络(RNN)将输入视为时间序列,将输出视为至少有一个连接周期的时间序列。RNNs是通用近似器。它们几乎可以逼近任何动态系统。RNNs被用于时间序列分析,如股票预测、销售预测、自然语言处理和翻译、聊天机器人、图像说明和音乐合成。

图6: 递归神经网络

长短时记忆(LSTM)--由遗忘、输入和输出门组成--有多个应用,包括时间序列预测和自然语言理解和生成。LSTM主要用于捕捉长期依赖关系。遗忘门决定是保留前一个时间戳的信息还是 "遗忘 "它。一个不太复杂的变体,门的数量较少,形成了门控循环单元(GRU)。

GRU是LSTM的一个简化变体,其中遗忘门和输入门被合并为一个更新门,单元状态和隐藏状态也被合并。因此,GRU使用更少的内存,因此比LSTM更快。

卷积神经网络

卷积神经网络(CNN)在图像分类中广泛流行。一个CNN为图像中的对象分配权重和偏差,以达到分类目的。由像素值矩阵组成的图像通过卷积层、池化层和全连接(FC)层进行处理。池化层减少了卷积特征的空间大小。最后的输出层产生一个置信度分数,以确定一幅图像属于一个定义的类别的可能性有多大。CNN被广泛用于Facebook和其他社交媒体平台,以监控内容。

深度强化学习

深度强化学习(deep RL)是深度强化学习的简称,通过融合人工智能和强化学习的力量,创造出一种完美的协同作用。通过强化学习是指对正确的决定进行奖励,对错误的决定进行惩罚的算法。深度RL的应用包括负载平衡、机器人技术、工业操作、交通控制和推荐系统。

生成式对抗网络

生成式对抗网络(GANs)使用两个神经网络,一个生成器和一个鉴别器。生成器帮助生成图像、语音和视频内容,而判别器则将它们分类为来自领域或生成的内容。这两个模型被训练为零和游戏,直到证明生成器模型产生了合理的结果。

神经网络芯片

神经网络芯片通过处理速度、存储和网络提供计算基础设施的力量,使芯片能够在海量数据上快速运行神经网络算法。网络芯片将任务分解成多个子任务,这些子任务可以同时运行到多个核心,以提高处理速度。

人工智能加速器的类型

专门的人工智能加速器已经被设计出来,根据模型大小、支持的框架、可编程性、学习曲线、目标吞吐量、延迟和成本而有很大的不同。此类硬件包括图形处理单元(GPU)、视觉处理单元(VPU)、现场可编程门阵列(FPGA)、中央处理单元(CPU)和张量处理单元(TPU)。虽然一些加速器如GPU更能够处理计算机图形和图像处理,但FPGA需要使用硬件描述语言(HDL)如VHDL和Verilog进行现场编程,而谷歌的TPU更专门用于神经网络机器学习。下面让我们分别看一下它们的能力。

GPU最初是为图形处理开发的,现在被广泛用于深度学习(DL)。它们的好处是通过以下五个架构进行并行处理:

  • 单指令、单数据(SISD)
  • 单指令,多数据(SIMD)
  • 多指令,单数据(MISD)
  • 多指令,多数据(MIMD)
  • 单指令,多线程(SIMT)

GPU的计算速度比CPU快,因为它将更多的晶体管用于数据处理,这有助于使具有中大型模型和较大有效批处理量的大数据集的内存带宽最大化。

VPU是优化的DL处理器,旨在以超低的功率要求实现计算机视觉任务,而不影响性能。因此,VPU通过利用预先训练好的CNN模型的力量,对深度学习推理进行了优化。

FPGA有数以千计的存储单元,以低功耗运行并行架构。它由可重复编程的逻辑门组成,以创建自定义电路。FPGA被用于自动驾驶和自动口语识别和搜索。

具有MIMD架构的CPU在任务优化方面很出色,更适合于并行度有限的应用,如稀疏的DNN、对步骤有依赖性的RNN以及有效批量小的模型。

TPU是谷歌定制开发的特定应用集成电路(ASIC),用于加速DL工作负载。TPU为大批量提供高吞吐量,适用于训练数周的模型,以矩阵计算为主。

用于深度学习推理的AI加速器

深度学习推理需要人工智能加速器,以通过并行计算能力实现更快的计算。它们拥有高带宽内存,可以在处理器之间分配比传统芯片多四到五倍的带宽。用于DL推理的几个领先的AI加速器是AWS Inferentia,一个定制设计的ASIC,以及Open Visual Inference and Neural Network Optimization(OpenVINO),一个用于优化和部署AI推理的开源工具包。

它们都提高了执行计算机视觉、语音识别、NLP和NLG等任务的深度学习性能。OpenVINO使用包括TensorFlow、PyTorch、Caffe和Keras等框架训练的模型,并通过CPU、GPU、VPU和iGPU的加速来优化模型性能。

神经网络模型优化

深度学习模型优化被用于各种场景,包括视频分析以及计算机视觉。由于这些计算密集型的分析大多是实时进行的,因此以下目标至关重要:

  • 更快的性能
  • 降低计算要求
  • 优化的空间使用

例如,OpenVINO在以下工具的帮助下提供了神经网络的无缝优化:

  • 模型优化器- 将模型从多个框架转换为中间表征(IR);然后可以用OpenVINO Runtime总结这些模型。OpenVINO Runtime插件是软件组件,包括在CPU、GPU和VPU等硬件上进行推理的完整实现。
  • 培训后优化工具包(POT)--通过DefaultQuantization和AccuracyAwareQuantization算法应用培训后自动模型量化,加速了IR模型的推理速度。
  • 神经网络压缩框架(NNCF)--与PyTorch和TensorFlow整合,通过剪枝对模型进行量化和压缩。常用的压缩算法是8位量化、过滤器修剪、稀疏性、混合精度量化和二进制化。

第四节

结论

在当前时代,各行业以及各具体部门都对人工智能有广泛的应用。考虑到这一点,在本参考卡中,我们深入研究了人工智能算法的根源,并探讨了神经网络的基本原理、DNN的复杂结构以及实现最佳性能的硬件要求。下表介绍了整个行业中深度神经网络的一些主要应用。

表2

行业例子
零售业
自助结账
自动测量产品尺寸以优化平面图的空间
自动补货
医疗保健医学图像分类
CANcer分布式学习环境(CANDLE)。
政府预防犯罪
物流和仓库用于材料处理和运送的机器人
制造业质量控制和缺陷分类
汽车自主驾驶
金融服务欺诈检测
反洗钱和风险分析
贷款处理
交易的清算和结算
选项定价

随着人工智能算法复杂性的进步,超越人工智能芯片以减少建模时间/洞察时间并提高准确性变得越来越重要。由于高性能计算是一种共享资源,像Kubernetes这样的容器化解决方案为给用户提供更多的控制权和处理数据的规模铺平了道路。伊利诺伊州的国家超级计算应用中心(NCSA)正在带头应用人工智能和高性能计算之间的融合,涉及的行业包括基因组图谱和自动运输。