A. 一文看懂四种基本的神经网络架构
原文链接:
http://blackblog.tech/2018/02/23/Eight-Neural-Network/
更多干货就在我的个人博客 http://blackblog.tech 欢迎关注
刚刚入门神经网络,往往会对众多的神经网络架构感到困惑,神经网络看起来复杂多样,但是这么多架构无非也就是三类,前馈神经网络,循环网络,对称连接网络,本文将介绍四种常见的神经网络,分别是CNN,RNN,DBN,GAN。通过这四种基本的神经网络架构,我们来对神经网络进行一定的了解。
神经网络是机器学习中的一种模型,是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
一般来说,神经网络的架构可以分为三类:
前馈神经网络:
这是实际应用中最常见的神经网络类型。第一层是输入,最后一层是输出。如果有多个隐藏层,我们称之为“深度”神经网络。他们计算出一系列改变样本相似性的变换。各层神经元的活动是前一层活动的非线性函数。
循环网络:
循环网络在他们的连接图中定向了循环,这意味着你可以按照箭头回到你开始的地方。他们可以有复杂的动态,使其很难训练。他们更具有生物真实性。
循环网络的目的使用来处理序列数据。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。但是这种普通的神经网络对于很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。
循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。
对称连接网络:
对称连接网络有点像循环网络,但是单元之间的连接是对称的(它们在两个方向上权重相同)。比起循环网络,对称连接网络更容易分析。这个网络中有更多的限制,因为它们遵守能量函数定律。没有隐藏单元的对称连接网络被称为“Hopfield 网络”。有隐藏单元的对称连接的网络被称为玻尔兹曼机。
其实之前的帖子讲过一些关于感知机的内容,这里再复述一下。
首先还是这张图
这是一个M-P神经元
一个神经元有n个输入,每一个输入对应一个权值w,神经元内会对输入与权重做乘法后求和,求和的结果与偏置做差,最终将结果放入激活函数中,由激活函数给出最后的输出,输出往往是二进制的,0 状态代表抑制,1 状态代表激活。
可以把感知机看作是 n 维实例空间中的超平面决策面,对于超平面一侧的样本,感知器输出 1,对于另一侧的实例输出 0,这个决策超平面方程是 w⋅x=0。 那些可以被某一个超平面分割的正反样例集合称为线性可分(linearly separable)样例集合,它们就可以使用图中的感知机表示。
与、或、非问题都是线性可分的问题,使用一个有两输入的感知机能容易地表示,而异或并不是一个线性可分的问题,所以使用单层感知机是不行的,这时候就要使用多层感知机来解决疑惑问题了。
如果我们要训练一个感知机,应该怎么办呢?
我们会从随机的权值开始,反复地应用这个感知机到每个训练样例,只要它误分类样例就修改感知机的权值。重复这个过程,直到感知机正确分类所有的样例。每一步根据感知机训练法则来修改权值,也就是修改与输入 xi 对应的权 wi,法则如下:
这里 t 是当前训练样例的目标输出,o 是感知机的输出,η 是一个正的常数称为学习速率。学习速率的作用是缓和每一步调整权的程度,它通常被设为一个小的数值(例如 0.1),而且有时会使其随着权调整次数的增加而衰减。
多层感知机,或者说是多层神经网络无非就是在输入层与输出层之间加了多个隐藏层而已,后续的CNN,DBN等神经网络只不过是将重新设计了每一层的类型。感知机可以说是神经网络的基础,后续更为复杂的神经网络都离不开最简单的感知机的模型,
谈到机器学习,我们往往还会跟上一个词语,叫做模式识别,但是真实环境中的模式识别往往会出现各种问题。比如:
图像分割:真实场景中总是掺杂着其它物体。很难判断哪些部分属于同一个对象。对象的某些部分可以隐藏在其他对象的后面。
物体光照:像素的强度被光照强烈影响。
图像变形:物体可以以各种非仿射方式变形。例如,手写也可以有一个大的圆圈或只是一个尖头。
情景支持:物体所属类别通常由它们的使用方式来定义。例如,椅子是为了让人们坐在上面而设计的,因此它们具有各种各样的物理形状。
卷积神经网络与普通神经网络的区别在于,卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元连接。在CNN的一个卷积层中,通常包含若干个特征平面(featureMap),每个特征平面由一些矩形排列的的神经元组成,同一特征平面的神经元共享权值,这里共享的权值就是卷积核。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将学习得到合理的权值。共享权值(卷积核)带来的直接好处是减少网络各层之间的连接,同时又降低了过拟合的风险。子采样也叫做池化(pooling),通常有均值子采样(mean pooling)和最大值子采样(max pooling)两种形式。子采样可以看作一种特殊的卷积过程。卷积和子采样大大简化了模型复杂度,减少了模型的参数。
卷积神经网络由三部分构成。第一部分是输入层。第二部分由n个卷积层和池化层的组合组成。第三部分由一个全连结的多层感知机分类器构成。
这里举AlexNet为例:
·输入:224×224大小的图片,3通道
·第一层卷积:11×11大小的卷积核96个,每个GPU上48个。
·第一层max-pooling:2×2的核。
·第二层卷积:5×5卷积核256个,每个GPU上128个。
·第二层max-pooling:2×2的核。
·第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。
·第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。
·第五层卷积:3×3的卷积核256个,两个GPU上个128个。
·第五层max-pooling:2×2的核。
·第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。
·第二层全连接:4096维
·Softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。
卷积神经网络在模式识别领域有着重要应用,当然这里只是对卷积神经网络做了最简单的讲解,卷积神经网络中仍然有很多知识,比如局部感受野,权值共享,多卷积核等内容,后续有机会再进行讲解。
传统的神经网络对于很多问题难以处理,比如你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。
这是一个简单的RNN的结构,可以看到隐藏层自己是可以跟自己进行连接的。
那么RNN为什么隐藏层能够看到上一刻的隐藏层的输出呢,其实我们把这个网络展开来开就很清晰了。
从上面的公式我们可以看出,循环层和全连接层的区别就是循环层多了一个权重矩阵 W。
如果反复把式2带入到式1,我们将得到:
在讲DBN之前,我们需要对DBN的基本组成单位有一定的了解,那就是RBM,受限玻尔兹曼机。
首先什么是玻尔兹曼机?
[图片上传失败...(image-d36b31-1519636788074)]
如图所示为一个玻尔兹曼机,其蓝色节点为隐层,白色节点为输入层。
玻尔兹曼机和递归神经网络相比,区别体现在以下几点:
1、递归神经网络本质是学习一个函数,因此有输入和输出层的概念,而玻尔兹曼机的用处在于学习一组数据的“内在表示”,因此其没有输出层的概念。
2、递归神经网络各节点链接为有向环,而玻尔兹曼机各节点连接成无向完全图。
而受限玻尔兹曼机是什么呢?
最简单的来说就是加入了限制,这个限制就是将完全图变成了二分图。即由一个显层和一个隐层构成,显层与隐层的神经元之间为双向全连接。
h表示隐藏层,v表示显层
在RBM中,任意两个相连的神经元之间有一个权值w表示其连接强度,每个神经元自身有一个偏置系数b(对显层神经元)和c(对隐层神经元)来表示其自身权重。
具体的公式推导在这里就不展示了
DBN是一个概率生成模型,与传统的判别模型的神经网络相对,生成模型是建立一个观察数据和标签之间的联合分布,对P(Observation|Label)和 P(Label|Observation)都做了评估,而判别模型仅仅而已评估了后者,也就是P(Label|Observation)。
DBN由多个限制玻尔兹曼机(Restricted Boltzmann Machines)层组成,一个典型的神经网络类型如图所示。这些网络被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接。隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。
生成对抗网络其实在之前的帖子中做过讲解,这里在说明一下。
生成对抗网络的目标在于生成,我们传统的网络结构往往都是判别模型,即判断一个样本的真实性。而生成模型能够根据所提供的样本生成类似的新样本,注意这些样本是由计算机学习而来的。
GAN一般由两个网络组成,生成模型网络,判别模型网络。
生成模型 G 捕捉样本数据的分布,用服从某一分布(均匀分布,高斯分布等)的噪声 z 生成一个类似真实训练数据的样本,追求效果是越像真实样本越好;判别模型 D 是一个二分类器,估计一个样本来自于训练数据(而非生成数据)的概率,如果样本来自于真实的训练数据,D 输出大概率,否则,D 输出小概率。
举个例子:生成网络 G 好比假币制造团伙,专门制造假币,判别网络 D 好比警察,专门检测使用的货币是真币还是假币,G 的目标是想方设法生成和真币一样的货币,使得 D 判别不出来,D 的目标是想方设法检测出来 G 生成的假币。
传统的判别网络:
生成对抗网络:
下面展示一个cDCGAN的例子(前面帖子中写过的)
生成网络
判别网络
最终结果,使用MNIST作为初始样本,通过学习后生成的数字,可以看到学习的效果还是不错的。
本文非常简单的介绍了四种神经网络的架构,CNN,RNN,DBN,GAN。当然也仅仅是简单的介绍,并没有深层次讲解其内涵。这四种神经网络的架构十分常见,应用也十分广泛。当然关于神经网络的知识,不可能几篇帖子就讲解完,这里知识讲解一些基础知识,帮助大家快速入(zhuang)门(bi)。后面的帖子将对深度自动编码器,Hopfield 网络长短期记忆网络(LSTM)进行讲解。
B. 人工智能时代,神经网络的原理及使用方法 | 微课堂
人工智能时代已经悄然来临,在计算机技术高速发展的未来,机器是否能代替人脑?也许有些读者会说,永远不可能,因为人脑的思考包含感性逻辑。事实上,神经网络算法正是在模仿人脑的思考方式。想不想知道神经网络是如何“思考”的呢?下面我向大家简单介绍一下神经网络的原理及使用方法。
所谓人工智能,就是让机器具备人的思维和意识。人工智能主要有三个学派——行为主义、符号主义和连接主义。
行为主义是基于控制论,是在构建感知动作的控制系统。理解行为主义有个很好的例子,就是让机器人单脚站立,通过感知要摔倒的方向控制两只手的动作,保持身体的平衡,这就构建了一个感知动作控制系统。
符号主义是基于算数逻辑和表达式。求解问题时,先把问题描述为表达式,再求解表达式。如果你在求解某个问题时,可以用if case这样的条件语句,和若干计算公式描述出来,这就使用了符号主义的方法,比如“专家系统”。符号主义可以认为是用公式描述的人工智能,它让计算机具备了理性思维。但是人类不仅具备理性思维,还具备无法用公式描述的感性思维。比如,如果你看过这篇推送,下回再见到“符号主义”几个字,你会觉得眼熟,会想到这是人工智能相关的知识,这是人的直觉,是感性的。
连接主义就是在模拟人的这种感性思维,是在仿造人脑内的神经元连接关系。这张图给出了人脑中的一根神经元,左侧是神经元的输入,“轴突”部分是神经元的输出。人脑就是由860亿个这样的神经元首尾相接组成的网络。
神经网络可以让计算机具备感性思维。我们首先理解一下基于连接主义的神经网络设计过程。这张图给出了人类从出生到24个月神经网络的变化:
随着我们的成长,大量的数据通过视觉、听觉涌入大脑,使我们的神经网络连接,也就是这些神经元连线上的权重发生了变化,有些线上的权重增强了,有些线上的权重减弱了。
我们要用计算机仿出这些神经网络连接关系,让计算机具备感性思维。
首先需要准备数据,数据量越大越好,以构成特征和标签对。如果想识别猫,就要有大量猫的图片和这张图片是猫的标签构成特征标签对,然后搭建神经网络的网络结构,再通过反向传播优化连接的权重,直到模型的识别准确率达到要求,得到最优的连线权重,把这个模型保存起来。最后用保存的模型输入从未见过的新数据,它会通过前向传播输出概率值,概率值最大的一个就是分类和预测的结果。
我们举个例子来感受一下神经网络的设计过程。鸢尾花可以分为三类:狗尾鸢尾、杂色鸢尾和佛吉尼亚鸢尾。我们拿出一张图,需要让计算机判断这是哪类鸢尾花。人们通过经验总结出了规律:通过测量花的花萼长、花萼宽、花瓣长、花瓣宽分辨出鸢尾花的类别,比如花萼长>花萼宽,并且花瓣长/花瓣宽>2,则可以判定为这是第一种,杂色鸢尾。看到这里,也许有些读者已经想到用if、case这样的条件语句来实现鸢尾花的分类。没错,条件语句根据这些信息可以判断鸢尾花分类,这是一个非常典型的专家系统,这个过程是理性计算。只要有了这些数据,就可以通过条件判定公式计算出是哪类鸢尾花。但是我们发现鸢尾花的种植者在识别鸢尾花的时候并不需要这么理性的计算,因为他们见识了太多的鸢尾花,一看就知道是哪种,而且随着经验的增加,识别的准确率会提高。这就是直觉,是感性思维,也是我们这篇文章想要和大家分享的神经网络方法。
这种神经网络设计过程首先需要采集大量的花萼长、花萼宽、花瓣长、花瓣宽,和它们所对应的是哪种鸢尾花。花萼长、花萼宽、花瓣长、花瓣宽叫做输入特征,它们对应的分类叫做标签。大量的输入特征和标签对构建出数据集,再把这个数据集喂入搭建好的神经网络结构,网络通过反向传播优化参数,得到模型。当有新的、从未见过的输入特征,送入神经网络时,神经网络会输出识别的结果。
展望21世纪初,在近十年神经网络理论研究趋向的背景下,神经网络理论的主要前沿领域包括:
一、对智能和机器关系问题的认识进一步增长。
研究人类智力一直是科学发展中最有意义,也是空前困难的挑战性问题。人脑是我们所知道的唯一智能系统,具有感知识别、学习、联想、记忆、推理等智能。我们通过不断 探索 人类智能的本质以及联结机制,并用人工系统复现或部分复现,制造各种智能机器,这样可使人类有更多的时间和机会从事更为复杂、更富创造性的工作。
神经网络是由大量处理单元组成的非线性、自适应、自组织系统,是在现代神经科学研究成果的基础上提出的,试图模拟神经网络加工、记忆信息的方式,设计一种新的机器,使之具有人脑风格的信息处理能力。智能理论所面对的课题来自“环境——问题——目的”,有极大的诱惑力与压力,它的发展方向将是把基于连接主义的神经网络理论、基于符号主义的人工智能专家系统理论和基于进化论的人工生命这三大研究领域,在共同追求的总目标下,自发而有机地结合起来。
二、神经计算和进化计算的重大发展。
计算和算法是人类自古以来十分重视的研究领域,本世纪30年代,符号逻辑方面的研究非常活跃。近年来,神经计算和进化计算领域很活跃,有新的发展动向,在从系统层次向细胞层次转化里,正在建立数学理论基础。随着人们不断 探索 新的计算和算法,将推动计算理论向计算智能化方向发展,在21世纪人类将全面进入信息 社会 ,对信息的获取、处理和传输问题,对网络路由优化问题,对数据安全和保密问题等等将有新的要求,这些将成为 社会 运行的首要任务。因此,神经计算和进化计算与高速信息网络理论联系将更加密切,并在计算机网络领域中发挥巨大的作用,例如大范围计算机网络的自组织功能实现就要进行进化计算。
人类的思维方式正在转变,从线性思维转到非线性思维神经元,神经网络都有非线性、非局域性、非定常性、非凸性和混沌等特性。我们在计算智能的层次上研究非线性动力系统、混沌神经网络以及对神经网络的数理研究,进一步研究自适应性子波、非线性神经场的兴奋模式、神经集团的宏观力学等。因为,非线性问题的研究是神经网络理论发展的一个最大动力,也是它面临的最大挑战。
以上就是有关神经网络的相关内容,希望能为读者带来帮助。
以上内容由苏州空天信息研究院谢雨宏提供。
C. 神经网络原理及应用
神经网络原理及应用
1. 什么是神经网络?
神经网络是一种模拟动物神经网络行为特征,进行分布式并行信息处理的算法。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
人类的神经网络
2. 神经网络基础知识
构成:大量简单的基础元件——神经元相互连接
工作原理:模拟生物的神经处理信息的方式
功能:进行信息的并行处理和非线性转化
特点:比较轻松地实现非线性映射过程,具有大规模的计算能力
神经网络的本质:
神经网络的本质就是利用计算机语言模拟人类大脑做决定的过程。
3. 生物神经元结构
4. 神经元结构模型
xj为输入信号,θi为阈值,wij表示与神经元连接的权值,yi表示输出值
判断xjwij是否大于阈值θi
5. 什么是阈值?
临界值。
神经网络是模仿大脑的神经元,当外界刺激达到一定的阈值时,神经元才会受刺激,影响下一个神经元。
6. 几种代表性的网络模型
单层前向神经网络——线性网络
阶跃网络
多层前向神经网络(反推学习规则即BP神经网络)
Elman网络、Hopfield网络、双向联想记忆网络、自组织竞争网络等等
7. 神经网络能干什么?
运用这些网络模型可实现函数逼近、数据聚类、模式分类、优化计算等功能。因此,神经网络广泛应用于人工智能、自动控制、机器人、统计学等领域的信息处理中。虽然神经网络的应用很广,但是在具体的使用过程中到底应当选择哪种网络结构比较合适是值得考虑的。这就需要我们对各种神经网络结构有一个较全面的认识。
8. 神经网络应用
D. 什么叫神经网络
枫舞给出基本的概念:
一.一些基本常识和原理
[什么叫神经网络?]
人的思维有逻辑性和直观性两种不同的基本方式。逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。这种思维方式的根本之点在于以下两点:1.信息是通过神经元上的兴奋模式分布储在网络上;2.信息处理是通过神经元之间同时相互作用的动态过程来完成的。
人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。
[人工神经网络的工作原理]
人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而当输入为“B”时,输出为“0”。
所以网络学习的准则应该是:如果网络作出错误的的判决,则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。
如果输出为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够作出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识别的模式也就越多。
=================================================
枫舞推荐一个小程序:
关于一个神经网络模拟程序的下载
人工神经网络实验系统(BP网络) V1.0 Beta 作者:沈琦
http://emuch.net/html/200506/de24132.html
作者关于此程序的说明:
从输出结果可以看到,前3条"学习"指令,使"输出"神经元收敛到了值 0.515974。而后3条"学习"指令,其收敛到了值0.520051。再看看处理4和11的指令结果 P *Out1: 0.520051看到了吗? "大脑"识别出了4和11是属于第二类的!怎么样?很神奇吧?再打show指令看看吧!"神经网络"已经形成了!你可以自己任意的设"模式"让这个"大脑"学习分辩哦!只要样本数据量充分(可含有误差的样本),如果能够在out数据上收敛地话,那它就能分辨地很准哦!有时不是绝对精确,因为它具有"模糊处理"的特性.看Process输出的值接近哪个Learning的值就是"大脑"作出的"模糊性"判别!
=================================================
枫舞推荐神经网络研究社区:
人工神经网络论坛
http://www.youngfan.com/forum/index.php
http://www.youngfan.com/nn/index.html(旧版,枫舞推荐)
国际神经网络学会(INNS)(英文)
http://www.inns.org/
欧洲神经网络学会(ENNS)(英文)
http://www.snn.kun.nl/enns/
亚太神经网络学会(APNNA)(英文)
http://www.cse.cuhk.e.hk/~apnna
日本神经网络学会(JNNS)(日文)
http://www.jnns.org
国际电气工程师协会神经网络分会
http://www.ieee-nns.org/
研学论坛神经网络
http://bbs.matwav.com/post/page?bid=8&sty=1&age=0
人工智能研究者俱乐部
http://www.souwu.com/
2nsoft人工神经网络中文站
http://211.156.161.210:8888/2nsoft/index.jsp
=================================================
枫舞推荐部分书籍:
人工神经网络技术入门讲稿(PDF)
http://www.youngfan.com/nn/ann.pdf
神经网络FAQ(英文)
http://www.youngfan.com/nn/FAQ/FAQ.html
数字神经网络系统(电子图书)
http://www.youngfan.com/nn/nnbook/director.htm
神经网络导论(英文)
http://www.shef.ac.uk/psychology/gurney/notes/contents.html
===============================================
枫舞还找到一份很有参考价值的讲座
<前向网络的敏感性研究>
http://www.youngfan.com/nn/mgx.ppt
是Powerpoint文件,比较大,如果网速不够最好用鼠标右键下载另存.
=========================================================
枫舞添言:很久之前,枫舞梦想智能机器人从自己手中诞生,SO在学专业的时候也有往这方面发展...考研的时候亦是朝着人工智能的方向发展..但是很不幸的是枫舞考研失败...SO 只好放弃这个美好的愿望,为生活奔波.希望你能够成为一个好的智能计算机工程师..枫舞已经努力的在给你提供条件资源哦~~
E. 有人可以介绍一下什么是"神经网络"吗
由于神经网络是多学科交叉的产物,各个相关的学科领域对神经网络
都有各自的看法,因此,关于神经网络的定义,在科学界存在许多不同的
见解。目前使用得最广泛的是T.Koholen的定义,即"神经网络是由具有适
应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经
系统对真实世界物体所作出的交互反应。"
如果我们将人脑神经信息活动的特点与现行冯·诺依曼计算机的工作方
式进行比较,就可以看出人脑具有以下鲜明特征:
1. 巨量并行性。
在冯·诺依曼机中,信息处理的方式是集中、串行的,即所有的程序指
令都必须调到CPU中后再一条一条地执行。而人在识别一幅图像或作出一项
决策时,存在于脑中的多方面的知识和经验会同时并发作用以迅速作出解答。
据研究,人脑中约有多达10^(10)~10^(11)数量级的神经元,每一个神经元
具有103数量级的连接,这就提供了巨大的存储容量,在需要时能以很高的
反应速度作出判断。
2. 信息处理和存储单元结合在一起。
在冯·诺依曼机中,存储内容和存储地址是分开的,必须先找出存储器的
地址,然后才能查出所存储的内容。一旦存储器发生了硬件故障,存储器中
存储的所有信息就都将受到毁坏。而人脑神经元既有信息处理能力又有存储
功能,所以它在进行回忆时不仅不用先找存储地址再调出所存内容,而且可
以由一部分内容恢复全部内容。当发生"硬件"故障(例如头部受伤)时,并
不是所有存储的信息都失效,而是仅有被损坏得最严重的那部分信息丢失。
3. 自组织自学习功能。
冯·诺依曼机没有主动学习能力和自适应能力,它只能不折不扣地按照
人们已经编制好的程序步骤来进行相应的数值计算或逻辑计算。而人脑能够
通过内部自组织、自学习的能力,不断地适应外界环境,从而可以有效地处
理各种模拟的、模糊的或随机的问题。
神经网络研究的主要发展过程大致可分为四个阶段:
1. 第一阶段是在五十年代中期之前。
西班牙解剖学家Cajal于十九世纪末创立了神经元学说,该学说认为神经
元的形状呈两极,其细胞体和树突从其他神经元接受冲动,而轴索则将信号
向远离细胞体的方向传递。在他之后发明的各种染色技术和微电极技术不断
提供了有关神经元的主要特征及其电学性质。
1943年,美国的心理学家W.S.McCulloch和数学家W.A.Pitts在论文《神经
活动中所蕴含思想的逻辑活动》中,提出了一个非常简单的神经元模型,即
M-P模型。该模型将神经元当作一个功能逻辑器件来对待,从而开创了神经
网络模型的理论研究。
1949年,心理学家D.O. Hebb写了一本题为《行为的组织》的书,在这本
书中他提出了神经元之间连接强度变化的规则,即后来所谓的Hebb学习法则。
Hebb写道:"当神经细胞A的轴突足够靠近细胞B并能使之兴奋时,如果A重
复或持续地激发B,那么这两个细胞或其中一个细胞上必然有某种生长或代
谢过程上的变化,这种变化使A激活B的效率有所增加。"简单地说,就是
如果两个神经元都处于兴奋状态,那么它们之间的突触连接强度将会得到增
强。
五十年代初,生理学家Hodykin和数学家Huxley在研究神经细胞膜等效电
路时,将膜上离子的迁移变化分别等效为可变的Na+电阻和K+电阻,从而建
立了着名的Hodykin-Huxley方程。
这些先驱者的工作激发了许多学者从事这一领域的研究,从而为神经计
算的出现打下了基础。
2. 第二阶段从五十年代中期到六十年代末。
1958年,F.Rosenblatt等人研制出了历史上第一个具有学习型神经网络
特点的模式识别装置,即代号为Mark I的感知机(Perceptron),这一重
大事件是神经网络研究进入第二阶段的标志。对于最简单的没有中间层的
感知机,Rosenblatt证明了一种学习算法的收敛性,这种学习算法通过迭代
地改变连接权来使网络执行预期的计算。
稍后于Rosenblatt,B.Widrow等人创造出了一种不同类型的会学习的神经
网络处理单元,即自适应线性元件Adaline,并且还为Adaline找出了一种有
力的学习规则,这个规则至今仍被广泛应用。Widrow还建立了第一家神经计
算机硬件公司,并在六十年代中期实际生产商用神经计算机和神经计算机软
件。
除Rosenblatt和Widrow外,在这个阶段还有许多人在神经计算的结构和
实现思想方面作出了很大的贡献。例如,K.Steinbuch研究了称为学习矩阵
的一种二进制联想网络结构及其硬件实现。N.Nilsson于1965年出版的
《机器学习》一书对这一时期的活动作了总结。
3. 第三阶段从六十年代末到八十年代初。
第三阶段开始的标志是1969年M.Minsky和S.Papert所着的《感知机》一书
的出版。该书对单层神经网络进行了深入分析,并且从数学上证明了这种网
络功能有限,甚至不能解决象"异或"这样的简单逻辑运算问题。同时,他们
还发现有许多模式是不能用单层网络训练的,而多层网络是否可行还很值得
怀疑。
由于M.Minsky在人工智能领域中的巨大威望,他在论着中作出的悲观结论
给当时神经网络沿感知机方向的研究泼了一盆冷水。在《感知机》一书出版
后,美国联邦基金有15年之久没有资助神经网络方面的研究工作,前苏联也
取消了几项有前途的研究计划。
但是,即使在这个低潮期里,仍有一些研究者继续从事神经网络的研究工
作,如美国波士顿大学的S.Grossberg、芬兰赫尔辛基技术大学的T.Kohonen
以及日本东京大学的甘利俊一等人。他们坚持不懈的工作为神经网络研究的
复兴开辟了道路。
4. 第四阶段从八十年代初至今。
1982年,美国加州理工学院的生物物理学家J.J.Hopfield采用全互连型
神经网络模型,利用所定义的计算能量函数,成功地求解了计算复杂度为
NP完全型的旅行商问题(Travelling Salesman Problem,简称TSP)。这
项突破性进展标志着神经网络方面的研究进入了第四阶段,也是蓬勃发展
的阶段。
Hopfield模型提出后,许多研究者力图扩展该模型,使之更接近人脑的
功能特性。1983年,T.Sejnowski和G.Hinton提出了"隐单元"的概念,并且
研制出了Boltzmann机。日本的福岛邦房在Rosenblatt的感知机的基础上,
增加隐层单元,构造出了可以实现联想学习的"认知机"。Kohonen应用3000
个阈器件构造神经网络实现了二维网络的联想式学习功能。1986年,
D.Rumelhart和J.McClelland出版了具有轰动性的着作《并行分布处理-认知
微结构的探索》,该书的问世宣告神经网络的研究进入了高潮。
1987年,首届国际神经网络大会在圣地亚哥召开,国际神经网络联合会
(INNS)成立。随后INNS创办了刊物《Journal Neural Networks》,其他
专业杂志如《Neural Computation》,《IEEE Transactions on Neural
Networks》,《International Journal of Neural Systems》等也纷纷
问世。世界上许多着名大学相继宣布成立神经计算研究所并制订有关教育
计划,许多国家也陆续成立了神经网络学会,并召开了多种地区性、国际性
会议,优秀论着、重大成果不断涌现。
今天,在经过多年的准备与探索之后,神经网络的研究工作已进入了决
定性的阶段。日本、美国及西欧各国均制订了有关的研究规划。
日本制订了一个"人类前沿科学计划"。这项计划为期15-20年,仅
初期投资就超过了1万亿日元。在该计划中,神经网络和脑功能的研究占有
重要地位,因为所谓"人类前沿科学"首先指的就是有关人类大脑以及通过
借鉴人脑而研制新一代计算机的科学领域。
在美国,神经网络的研究得到了军方的强有力的支持。美国国防部投资
4亿美元,由国防部高级研究计划局(DAPRA)制订了一个8年研究计划,
并成立了相应的组织和指导委员会。同时,海军研究办公室(ONR)、空军
科研办公室(AFOSR)等也纷纷投入巨额资金进行神经网络的研究。DARPA认
为神经网络"看来是解决机器智能的唯一希望",并认为"这是一项比原子弹
工程更重要的技术"。美国国家科学基金会(NSF)、国家航空航天局(NASA)
等政府机构对神经网络的发展也都非常重视,它们以不同的形式支持了众多
的研究课题。
欧共体也制订了相应的研究计划。在其ESPRIT计划中,就有一个项目是
"神经网络在欧洲工业中的应用",除了英、德两国的原子能机构外,还有多
个欧洲大公司卷进这个研究项目,如英国航天航空公司、德国西门子公司等。
此外,西欧一些国家还有自己的研究计划,如德国从1988年就开始进行一个
叫作"神经信息论"的研究计划。
我国从1986年开始,先后召开了多次非正式的神经网络研讨会。1990年
12月,由中国计算机学会、电子学会、人工智能学会、自动化学会、通信学
会、物理学会、生物物理学会和心理学会等八个学会联合在北京召开了"中
国神经网络首届学术会议",从而开创了我国神经网络研究的新纪元。