人工神经网络模型主要考虑网络连接的拓扑结构、神经元的特征、学习规则等。目前,已有近40 种神经网络模型,其中有反向传播网络、感知器、自组织映射、霍普菲尔德神经网络、玻尔兹曼机、适应谐振理论等。
(1)按学习策略(Algorithm)分类,人工神经网络主要有监督式学习网络(Supervised Learning Network,SLN)、无监督式学习网络(Unsupervised Learning Network,ULN)、混合式学习网络(Hybrid Learning Network,HLN)、联想式学习网络(Associate Learning Network,ALN)、最适化学习网络(Optimization Application Network,OAN)。
(2)按网络架构(Connectionism)分类,人工神经网络主要有前馈神经网络(Feed forward Neural Network,FNN)、循环神经网络(Recurrent Neural Network,RNN)、强化式架构(Reinforcement Network)。
神经网络的模型非常多(图 2 − 2 − 1),分别具备不同的特性,适用于不同的环境和场合。接下来介绍几种在图像分类和对抗中常见的神经网络模型。
1. 前馈神经网络
前馈神经网络(FNN)是一种比较简单的神经网络,各神经元分层排列。每个神经元只与前一层的神经元相连,接收前一层的输出,并输出给下一层,且各层之间没有反馈。这种方法起源于20 世纪50 年代,又可分成单层和多层前馈神经网络。它的工作原理通常遵循以下规则:
(1)所有节点都完全连接。
(2)激活从输入层流向输出,无回环。
(3)输入层和输出层之间有一层隐含层。
在大多数情况下,这种类型的网络使用反向传播方法进行训练。
2. 深度前馈神经网络
深度前馈神经网络(DFNN)即多层前馈神经网络。在训练传统的前馈神经网络时,用户只向上一层传递了少量的误差信息。由于堆叠更多的层次导致训练时间的指数增长,使得在之前很长一段时间,深度前馈神经网络非常不实用。直到21 世纪初期,在开发了一系列有效的训练深度前馈神经网络的方法后,这一情况才得以改观。现在它们构成了现代机器学习系统的核心,能实现完全前馈神经网络的功能,且效果大大提高。
图2−2−1 常见的神经网络模型[13](书后附彩插)
3. 循环神经网络
循环神经网络(RNN)是一类具有短期记忆能力的神经网络。在循环神经网络中,神经元既可以接受其他神经元的信息,也可以接受自身的信息,形成具有环路的网络结构。和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构。循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成[14-16]等任务上。这是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络,引入不同类型的神经元——循环神经元,在网络中每个隐含神经元会收到它自己在固定延迟(一次或多次迭代)后的输出。除了这方面,循环神经网络与普通的模糊神经网络非常相似。当然,它们之间的差异还是非常明确的,如传递状态到输入节点、可变延迟等,但主要思想保持不变。循环神经网络主要被使用在上下文很重要的环境中,即过去的迭代结果和样本产生的决策会对当前产生影响。最常见的上下文例子是文本——一个单词只能在前面的单词或句子的上下文中进行分析。
4. 长短时记忆网络(www.xing528.com)
循环神经网络(RNN)在实际应用中很难处理长距离依赖的问题。长短时记忆网络(LSTM)是一种特殊的RNN 变体,它可以学习长期依赖信息,由Hochreiter 和Schmidhuber 在1997 年提出,并在2012 年以后被Alex Graves 进行了改良和推广。这种网络引入了一个特殊的存储单元,当数据有时间间隔(或滞后)时可以处理数据。循环神经网络可以通过“记住”前十个词来处理文本,长短时记忆网络可以通过“记住”许多帧之前发生的事情来处理视频帧。长短时记忆网络也广泛应用于写作和语音识别。
存储单元实际上由一些元素组成,称为门,它们是递归性的,并可以控制信息如何被记住和放弃。
5. 自动编码器
自动编码器(Auto Encoder)是一种由输入层、隐藏层(编码层)、解码层组成的神经网络。该网络的目的是重构输入,使其隐藏层学习到该输入的良好表征。这是一种无监督机器学习算法,应用了反向传播,可将目标值设置为与输入值相等。自动编码器的训练目标是将输入复制到输出。在内部,它有一个描述用于表征其输入代码的隐藏层,用于分类、聚类和特征压缩。当训练前馈神经网络进行分类时,必须在Y 类别中提供X 个示例,并且期望Y 个输出单元格中的一个被激活,这称为监督学习。此外,自动编码器可以在没有监督的情况下进行训练。当隐藏单元数量少于输入单元数量(并且输出单元数量等于输入单元数)时,在自动编码器被训练过程中,输出尽可能接近输入的方式,强制自动编码器泛化数据并搜索常见模式。
6. 霍普菲尔德神经网络
霍普菲尔德神经网络(HNN)是神经网络发展历史上的一个重要里程碑,由美国加州理工学院的物理学家J.J.Hopfield 教授于1982 年提出,是一种单层反馈神经网络。HNN 按照处理输入样本的不同,可以分成两种不同的类型:离散型(DHNN)、连续型(CHNN)。前者适合于处理输入为二值逻辑的样本,主要用于联想记忆;后者适合于处理输入为模拟量的样本,主要用于分布存储。前者使用一组非线性差分方程来描述神经网络状态的演变过程;后者使用一组非线性微分方程来描述神经网络状态的演变过程。这种网络对一套有限的样本进行训练,所以它们用相同的样本对已知样本做出反应。每个样本在训练前都作为输入样本,在训练中都作为隐藏样本,在训练之后都被用作输出样本。
在 HNN 试着重构受训样本时,它们可以用于给输入值降噪和修复输入。如果给出一半图像或数列用于学习,就可以反馈全部样本。
7. 玻尔兹曼机
玻尔兹曼机(BM)是随机神经网络和递归神经网络的一种,由杰弗里·辛顿(Geoffrey Hinton)和特里·谢泽诺斯基(Terry Sejnowski)于1985 年发明。玻尔兹曼机可被视作随机过程的、可生成的相应的霍普菲尔德神经网络。它是最早能够学习内部表达,并能解决复杂的组合优化问题的神经网络。玻尔兹曼机和 HNN 非常类似,有些单元被标记为输入的同时也是隐藏单元。在隐藏单元更新其状态时,输入单元就变成了输出单元(在训练时,BM 和HNN 逐个更新单元,而非并行)。这是第一个成功保留模拟退火方法的网络拓扑。
多层叠的玻尔兹曼机可以用于所谓的深度信念网络,深度信念网络可以用作特征检测和抽取。
8. 深度卷积神经网络
现代意义上的深度卷积神经网络(DCNN)起源于AlexNet[4],它是深度卷积神经网络的鼻祖。相比之前的卷积网络,深度卷积神经网络的最显著特点是层次加深、参数规模变大。目前,它在人工智能的图像识别中的应用非常广泛。它具有卷积单元(或者池化层)和内核,每一种都用于不同目的。卷积核事实上用于处理输入的数据,池化层用于简化它们(大多数情况是用非线性方程,如max),以减少不必要的特征。
这类网络通常被用于图像识别,它们在图像的一小部分上运行(大约20 像素 × 20 像素)。输入窗口逐像素地沿着图像滑动。然后,数据流向卷积层,卷积层形成一个漏斗(压缩被识别的特征)。从图像识别来讲,第一层识别梯度,第二层识别线,第三层识别形状,依次类推,直到特定的物体那一级。深度前馈神经网络通常被接在卷积层的末端,方便未来的数据处理。
9. 生成对抗网络
生成对抗网络(GAN)[17]代表了由生成器和分辨器组成的双网络大家族。它们一直在相互对抗——生成器试着生成一些数据,而分辨器接收样本数据后试着分辨出哪些是样本,哪些是生成的。只要能够保持两种神经网络训练之间的平衡,那么在不断进化的过程中,这种神经网络就可以生成实际图像。这是非监督式学习的一种方法,由伊恩·古德费洛等人于2014 年提出,具体而言,就是通过让两个神经网络以相互博弈的方式进行学习。生成对抗网络由一个生成网络与一个判别网络组成。生成网络从潜在空间中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入为真实样本(或生成网络)的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来;而生成网络则尽可能地欺骗判别网络。这两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。
10. 支持向量机
很多时候,支持向量机(SVM)并不被称为神经网络。这类技术用于二元分类工作,无论这个网络处理维度(或输入)有多少,结果都为“是”或“否”。在机器学习中,标记数据支持向量机在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例都被标记为两个类别中的某一个,SVM 训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM 模型将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的间隔明显分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。支持向量机的核心是将向量映射到一个更高维的空间,在该空间建立一个最大间隔超平面。在分开数据的超平面的两侧建有两个互相平行的超平面,分隔超平面使这两个平行超平面的距离最大化。平行超平面间的距离(或差距)越大,分类器的总误差就越小。
以上是几种常见神经网络模型的基本结构和简要介绍,每一种都有相应的理论基础支撑。如果读者需要对某种模型进一步了解,可以查阅相应的详细资料。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。