⑴ 神经网络控制系统概念最早是什么时候提出来有没有经典的案例介绍
1943年,McCulloch与Pitts合作提出了第一个神经计算模型,简称MP模型。
典型反馈网络——Hopfield网络
美国物理学家Hopfield提出了离散型Hopfield神经网络和连续型Hopfield神经经网络,引入“计算能量函数”的概念,给出了网络稳定性判据,尤其是给出了Hopfield神经网络的电子电路实现,开拓了神经网络用于联系那个记忆和优化计算机的新途径。
【资料来源】:中国自动化网CA800
⑵ 神经网络浅谈
人工智能技术是当前炙手可热的话题,而基于神经网络的深度学习技术更是热点中的热点。去年谷歌的Alpha Go 以4:1大比分的优势战胜韩国的李世石九段,展现了深度学习的强大威力,后续强化版的Alpha Master和无师自通的Alpha Zero更是在表现上完全碾压前者。不论你怎么看,以深度学习为代表的人工智能技术正在塑造未来。
下图为英伟达(NVIDIA)公司近年来的股价情况, 该公司的主要产品是“图形处理器”(GPU),而GPU被证明能大大加快神经网络的训练速度,是深度学习必不可少的计算组件。英伟达公司近年来股价的飞涨足以证明当前深度学习的井喷之势。
好,话不多说,下面简要介绍神经网络的基本原理、发展脉络和优势。
神经网络是一种人类由于受到生物神经细胞结构启发而研究出的一种算法体系,是机器学习算法大类中的一种。首先让我们来看人脑神经元细胞:
一个神经元通常具有多个树突 ,主要用来接受传入信息,而轴突只有一条,轴突尾端有许多轴突末梢,可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。
下图是一个经典的神经网络(Artificial Neural Network,ANN):
乍一看跟传统互联网的拓扑图有点类似,这也是称其为网络的原因,不同的是节点之间通过有向线段连接,并且节点被分成三层。我们称图中的圆圈为神经元,左边三个神经元组成的一列为输入层,中间神经元列为隐藏层,右边神经元列为输出层,神经元之间的箭头为权重。
神经元是计算单元,相当于神经元细胞的细胞核,利用输入的数据进行计算,然后输出,一般由一个线性计算部分和一个非线性计算部分组成;输入层和输出层实现数据的输入输出,相当于细胞的树突和轴突末梢;隐藏层指既不是输入也不是输出的神经元层,一个神经网络可以有很多个隐藏层。
神经网络的关键不是圆圈代表的神经元,而是每条连接线对应的权重。每条连接线对应一个权重,也就是一个参数。权重具体的值需要通过神经网络的训练才能获得。我们实际生活中的学习体现在大脑中就是一系列神经网络回路的建立与强化,多次重复的学习能让回路变得更加粗壮,使得信号的传递速度加快,最后对外表现为“深刻”的记忆。人工神经网络的训练也借鉴于此,如果某种映射关系出现很多次,那么在训练过程中就相应调高其权重。
1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构,发表了抽象的神经元模型MP:
符号化后的模型如下:
Sum函数计算各权重与输入乘积的线性组合,是神经元中的线性计算部分,而sgn是取符号函数,当输入大于0时,输出1,反之输出0,是神经元中的非线性部分。向量化后的公式为z=sgn(w^T a)(w^T=(w_1,w_2,w_3),a=〖(a_1,a_2,a_3)〗^T)。
但是,MP模型中,权重的值都是预先设置的,因此不能学习。该模型虽然简单,并且作用有限,但已经建立了神经网络大厦的地基
1958年,计算科学家Rosenblatt提出了由两层神经元组成(一个输入层,一个输出层)的神经网络。他给它起了一个名字–“感知器”(Perceptron)
感知器是当时首个可以学习的人工神经网络。Rosenblatt现场演示了其学习识别简单图像的过程,在当时引起了轰动,掀起了第一波神经网络的研究热潮。
但感知器只能做简单的线性分类任务。1969年,人工智能领域的巨擘Minsky指出这点,并同时指出感知器对XOR(异或,即两个输入相同时输出0,不同时输出1)这样的简单逻辑都无法解决。所以,明斯基认为神经网络是没有价值的。
随后,神经网络的研究进入低谷,又称 AI Winter 。
Minsky说过单层神经网络无法解决异或问题,但是当增加一个计算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分类效果。
下图为两层神经网络(输入层一般不算在内):
上图中,输出层的输入是上一层的输出。
向量化后的公式为:
注意:
每个神经元节点默认都有偏置变量b,加上偏置变量后的计算公式为:
同时,两层神经网络不再使用sgn函数作为激励函数,而采用平滑的sigmoid函数:
σ(z)=1/(1+e^(-z) )
其图像如下:
理论证明: 两层及以上的神经网络可以无限逼近真实的对应函数,从而模拟数据之间的真实关系 ,这是神经网络强大预测能力的根本。但两层神经网络的计算量太大,当时的计算机的计算能力完全跟不上,直到1986年,Rumelhar和Hinton等人提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,带动了业界使用两层神经网络研究的热潮。
但好景不长,算法的改进仅使得神经网络风光了几年,然而计算能力不够,局部最优解,调参等一系列问题一直困扰研究人员。90年代中期,由Vapnik等人发明的SVM(Support Vector Machines,支持向量机)算法诞生,很快就在若干个方面体现出了对比神经网络的优势:无需调参;高效;全局最优解。
由于以上原因,SVM迅速打败了神经网络算法成为主流。神经网络的研究再一次进入低谷, AI Winter again 。
多层神经网络一般指两层或两层以上的神经网络(不包括输入层),更多情况下指两层以上的神经网络。
2006年,Hinton提出使用 预训练 ”(pre-training)和“微调”(fine-tuning)技术能优化神经网络训练,大幅度减少训练多层神经网络的时间
并且,他给多层神经网络相关的学习方法赋予了一个新名词–“ 深度学习 ”,以此为起点,“深度学习”纪元开始了:)
“深度学习”一方面指神经网络的比较“深”,也就是层数较多;另一方面也可以指神经网络能学到很多深层次的东西。研究发现,在权重参数不变的情况下,增加神经网络的层数,能增强神经网络的表达能力。
但深度学习究竟有多强大呢?没人知道。2012年,Hinton与他的学生在ImageNet竞赛中,用多层的卷积神经网络成功地对包含一千类别的一百万张图片进行了训练,取得了分类错误率15%的好成绩,这个成绩比第二名高了近11个百分点,充分证明了多层神经网络识别效果的优越性。
同时,科研人员发现GPU的大规模并行矩阵运算模式完美地契合神经网络训练的需要,在同等情况下,GPU的速度要比CPU快50-200倍,这使得神经网络的训练时间大大减少,最终再一次掀起了神经网络研究的热潮,并且一直持续到现在。
2016年基于深度学习的Alpha Go在围棋比赛中以4:1的大比分优势战胜了李世石,深度学习的威力再一次震惊了世界。
神经网络的发展历史曲折荡漾,既有被捧上神坛的高潮,也有无人问津的低谷,中间经历了数次大起大落,我们姑且称之为“三起三落”吧,其背后则是算法的改进和计算能力的持续发展。
下图展示了神经网络自发明以来的发展情况及一些重大时间节点。
当然,对于神经网络我们也要保持清醒的头脑。由上图,每次神经网络研究的兴盛期持续10年左右,从最近2012年算起,或许10年后的2022年,神经网络的发展将再次遇到瓶颈。
神经网络作为机器学习的一种,其模型训练的目的,就是使得参数尽可能的与真实的模型逼近。理论证明,两层及以上的神经网络可以无限逼近真实的映射函数。因此,给定足够的训练数据和训练时间,总能通过神经网络找到无限逼近真实关系的模型。
具体做法:首先给所有权重参数赋上随机值,然后使用这些随机生成的参数值,来预测训练数据中的样本。假设样本的预测目标为yp ,真实目标为y,定义值loss,计算公式如下:
loss = (yp -y) ^2
这个值称之为 损失 (loss),我们的目标就是使对所有训练数据的损失和尽可能的小,这就转化为求loss函数极值的问题。
一个常用方法是高等数学中的求导,但由于参数不止一个,求导后计算导数等于0的运算量很大,所以常用梯度下降算法来解决这样的优化问题。梯度是一个向量,由函数的各自变量的偏导数组成。
比如对二元函数 f =(x,y),则梯度∇f=(∂f/∂x,∂f/∂y)。梯度的方向是函数值上升最快的方向。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止。一般这个时候,所有的参数恰好达到使损失函数达到一个最低值的状态。下图为梯度下降的大致运行过程:
在神经网络模型中,由于结构复杂,每次计算梯度的代价很大。因此还需要使用 反向传播 (Back Propagation)算法。反向传播算法利用了神经网络的结构进行计算,不一次计算所有参数的梯度,而是从后往前。首先计算输出层的梯度,然后是第二个参数矩阵的梯度,接着是中间层的梯度,再然后是第一个参数矩阵的梯度,最后是输入层的梯度。计算结束以后,所要的两个参数矩阵的梯度就都有了。当然,梯度下降只是其中一个优化算法,其他的还有牛顿法、RMSprop等。
确定loss函数的最小值后,我们就确定了整个神经网络的权重,完成神经网络的训练。
在神经网络中一样的参数数量,可以用更深的层次去表达。
由上图,不算上偏置参数的话,共有三层神经元,33个权重参数。
由下图,保持权重参数不变,但增加了两层神经元。
在多层神经网络中,每一层的输入是前一层的输出,相当于在前一层的基础上学习,更深层次的神经网络意味着更深入的表示特征,以及更强的函数模拟能力。更深入的表示特征可以这样理解,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。
如上图,第一个隐藏层学习到“边缘”的特征,第二个隐藏层学习到“边缘”组成的“形状”的特征,第三个隐藏层学习到由“形状”组成的“图案”的特征,最后的隐藏层学习到由“图案”组成的“目标”的特征。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。
前面提到, 明斯基认为Rosenblatt提出的感知器模型不能处理最简单的“异或”(XOR)非线性问题,所以神经网络的研究没有前途,但当增加一层神经元后,异或问题得到了很好地解决,原因何在?原来从输入层到隐藏层,数据发生了空间变换,坐标系发生了改变,因为矩阵运算本质上就是一种空间变换。
如下图,红色和蓝色的分界线是最终的分类结果,可以看到,该分界线是一条非常平滑的曲线。
但是,改变坐标系后,分界线却表现为直线,如下图:
同时,非线性激励函数的引入使得神经网络对非线性问题的表达能力大大加强。
对于传统的朴素贝叶斯、决策树、支持向量机SVM等分类器,提取特征是一个非常重要的前置工作。在正式训练之前,需要花费大量的时间在数据的清洗上,这样分类器才能清楚地知道数据的维度,要不然基于概率和空间距离的线性分类器是没办法进行工作的。然而在神经网络中,由于巨量的线性分类器的堆叠(并行和串行)以及卷积神经网络的使用,它对噪声的忍耐能力、对多通道数据上投射出来的不同特征偏向的敏感程度会自动重视或忽略,这样我们在处理的时候,就不需要使用太多的技巧用于数据的清洗了。有趣的是,业内大佬常感叹,“你可能知道SVM等机器学习的所有细节,但是效果并不好,而神经网络更像是一个黑盒,很难知道它究竟在做什么,但工作效果却很好”。
人类对机器学习的环节干预越少,就意味着距离人工智能的方向越近。神经网络的这个特性非常有吸引力。
1) 谷歌的TensorFlow开发了一个非常有意思的神经网络 入门教程 ,用户可以非常方便地在网页上更改神经网络的参数,并且能看到实时的学习效率和结果,非常适合初学者掌握神经网络的基本概念及神经网络的原理。网页截图如下:
2) 深度学习领域大佬吴恩达不久前发布的《 神经网络和深度学习 》MOOC,现在可以在网易云课堂上免费观看了,并且还有中文字幕。
3) 《神经网络于深度学习》(Michael Nielsen着)、《白话深度学习与TensorFlow》也是不错的入门书籍。
⑶ 神经网络(深度学习)的几个基础概念
从广义上说深度学习的网络结构也是多层神经网络的一种。传统意义上的多层神经网络是只有输入层、隐藏层、输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。而深度学习中最着名的卷积神经网络CNN,在原来多层神经网络的基础上,加入了特征学习部分,这部分是模仿人脑对信号处理上的分级的。具体操作就是在原来的全连接的层前面加入了部分连接的卷积层与降维层,而且加入的是一个层级。输入层 - 卷积层 -降维层 -卷积层 - 降维层 -- .... -- 隐藏层 -输出层简单来说,原来多层神经网络做的步骤是:特征映射到值。特征是人工挑选。深度学习做的步骤是 信号->特征->值。 特征是由网络自己选择。
⑷ 什么叫神经网络
南搞小孩给出基本的概念: 一.一些基本常识和原理 [什么叫神经网络?] 人的思维有逻辑性和直观性两种不同的基本方式。逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。这种思维方式的根本之点在于以下两点: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 只好放弃这个美好的愿望,为生活奔波.希望你能够成为一个好的智能计算机工程师..枫舞已经努力的在给你提供条件资源哦~~
⑸ 什么是神经网络
神经网络是机器学习的一个流派。这是现今最火的一个学派。我们在第一讲中,已经知道人学习知识是通过神经元的连接,科学家通过模仿人脑机理发明了人工神经元。技术的进一步发展,多层神经元的连接,就形成了神经网络。那么神经网络是怎么搭建起来的呢?神经元是构建神经网络的最基本单位, 这张图就是一个人工神经元的原理图,非常简单,一个神经元由一个加法器和一个门限器组成。加法器有一些输入,代表从其他神经元来的信号,这些信号分别被乘上一个系数后在加法器里相加,如果相加的结果大于某个值,就“激活”这个神经元,接通到下个神经元,否则就不激活。原理就这么简单,做起来也很简单。今天所有的神经网络的基本单元都是这个。输入信号乘上的系数,我们也叫“权重”,就是网络的参数,玩神经网路就是调整权重,让它做你想让它做的事。 一个神经元只能识别一个东西,比如,当你训练给感知器会“认”数字“8”,你给它看任何一个数字,它就会告诉你,这是“8”还不是“8”。为了让机器识别更多更复杂的图像,我们就需要用更多的神经元。人的大脑由 1000 亿个神经元构成,人脑神经元组成了一个很复杂的三维立体结构。
⑹ 有人可以介绍一下什么是"神经网络"吗
由于神经网络是多学科交叉的产物,各个相关的学科领域对神经网络
都有各自的看法,因此,关于神经网络的定义,在科学界存在许多不同的
见解。目前使用得最广泛的是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月,由中国计算机学会、电子学会、人工智能学会、自动化学会、通信学
会、物理学会、生物物理学会和心理学会等八个学会联合在北京召开了"中
国神经网络首届学术会议",从而开创了我国神经网络研究的新纪元。
⑺ 神经网络简述
机器学习中谈论的神经网络是指“神经网络学习”,或者说,是机器学习和神经网络这两个学科领域的交叉部分[1]。
在这里,神经网络更多的是指计算机科学家模拟人类大脑结构和智能行为,发明的一类算法的统称。
神经网络是众多优秀仿生算法中的一种,读书时曾接触过蚁群优化算法,曾惊讶于其强大之处,但神经网络的强大,显然蚁群优化还不能望其项背。
A、起源与第一次高潮。有人认为,神经网络的最早讨论,源于现代计算机科学的先驱——阿兰.图灵在1948年的论文中描述的“B型组织机器”[2]。二十世纪50年代出现了以感知机、Adaling为代表的一系列成功,这是神经网络发展的第一个高潮[1]。
B、第一次低谷。1969年,马文.明斯基出版《感知机》一书,书中论断直接将神经网络打入冷宫,导致神经网络十多年的“冰河期”。值得一提的是,在这期间的1974年,哈佛大学Paul Webos发明BP算法,但当时未受到应有的重视[1]。
C、第二次高潮。1983年,加州理工学院的物理学家John Hopfield利用神经网络,在旅行商问题上获得当时最好结果,引起轰动;Rumelhart等人重新发明了BP算法,BP算法迅速走红,掀起神经网络第二次高潮[1]。
D、第二次低谷。二十世纪90年代中期,统计学习理论和支持向量机兴起,较之于这些算法,神经网络的理论基础不清晰等缺点更加凸显,神经网络研究进入第二次低谷[1]。
E、深度学习的崛起。2010年前后,随着计算能力的提升和大数据的涌现,以神经网络为基础的“深度学习”崛起,科技巨头公司谷歌、Facebook、网络投入巨资研发,神经网络迎来第三次高潮[1]。2016年3月9日至15日,Google人工智能程序AlphaGo对阵韩国围棋世界冠军李世乭,以4:1大比分获胜,比众多专家预言早了十年。这次比赛,迅速在全世界经济、科研、计算机产业各领域掀起人工智能和深度学习的热烈讨论。
F、展望。从几个方面讨论一下。
1)、近期在Google AlphaGo掀起的热潮中,民众的热情与期待最大,甚至有少许恐慌情绪;计算机产业和互联网产业热情也非常巨大,对未来充满期待,各大巨头公司对其投入大量资源;学术界的反应倒是比较冷静的。学术界的冷静,是因为神经网络和深度神经网络的理论基础还没有出现长足的进步,其缺点还没有根本改善。这也从另一个角度说明了深度神经网络理论进步的空间很大。
2)、"当代神经网络是基于我们上世纪六十年代掌握的脑知识。"关于人类大脑的科学与知识正在爆炸式增长。[3]世界上很多学术团队正在基于大脑机制新的认知建立新的模型[3]。我个人对此报乐观态度,从以往的仿生算法来看,经过亿万年进化的自然界对科技发展的促进从来没有停止过。
3)、还说AlphaGo,它并不是理论和算法的突破,而是基于已有算法的工程精品。AlhphaGo的工作,为深度学习的应用提供了非常广阔的想象空间。分布式技术提供了巨大而廉价的计算能力,巨量数据的积累提供了丰富的训练样本,深度学习开始腾飞,这才刚刚开始。
一直沿用至今的,是McChlloch和Pitts在1943年依据脑神经信号传输结构抽象出的简单模型,所以也被称作”M-P神经元模型“。
其中,
f函数像一般形如下图的函数,既考虑阶跃性,又考虑光滑可导性。
实际常用如下公式,因形如S,故被称作sigmoid函数。
把很多个这样的神经元按一定层次连接起来,就得到了神经网络。
两层神经元组成,输入层接收外界输入信号,输出层是M-P神经元(只有输出层是)。
感知机的数学模型和单个M-P神经元的数学模型是一样的,如因为输入层只需接收输入信号,不是M-P神经元。
感知机只有输出层神经元是B-P神经元,学习能力非常有限。对于现行可分问题,可以证明学习过程一定会收敛。而对于非线性问题,感知机是无能为力的。
BP神经网络全称叫作误差逆传播(Error Propagation)神经网络,一般是指基于误差逆传播算法的多层前馈神经网络。这里为了不占篇幅,BP神经网络将起篇另述。
BP算法是迄今最为成功的神经网络学习算法,也是最有代表性的神经网络学习算法。BP算法不仅用于多层前馈神经网络,还用于其他类型神经网络的训练。
RBF网络全程径向基函数(Radial Basis Function)网络,是一种单隐层前馈神经网络,其与BP网络最大的不同是采用径向基函数作为隐层神经元激活函数。
卷积神经网络(Convolutional neural networks,简称CNNs)是一种深度学习的前馈神经网络,在大型图片处理中取得巨大成功。卷积神经网络将起篇另述。
循环神经网络(Recurrent Neural Networks,RNNs)与传统的FNNs不同,RNNs引入定向循环,能够处理那些输入之间前后关联的问题。RNNs已经在众多自然语言处理(Natural Language Processing, NLP)中取得了巨大成功以及广泛应用[5]。RNNs将起篇另述。[5]
[1]、《机器学习》,周志华着
[2]、《模式识别(第二版)》,Richard O.Duda等着,李宏东等译
[3]、《揭秘IARPA项目:解码大脑算法或将彻底改变机器学习》,Emily Singerz着,机器之心编译出品
[4]、图片来源于互联网
[5]、 循环神经网络(RNN, Recurrent Neural Networks)介绍
⑻ 神经网络具体是什么
神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出。每两个神经元之间的连接代表加权值,称之为权重(weight)。不同的权重和激活函数,则会导致神经网络不同的输出。 举个手写识别的例子,给定一个未知数字,让神经网络识别是什么数字。此时的神经网络的输入由一组被输入图像的像素所激活的输入神经元所定义。在通过非线性激活函数进行非线性变换后,神经元被激活然后被传递到其他神经元。重复这一过程,直到最后一个输出神经元被激活。从而识别当前数字是什么字。 神经网络的每个神经元如下
基本wx + b的形式,其中 x1、x2表示输入向量 w1、w2为权重,几个输入则意味着有几个权重,即每个输入都被赋予一个权重 b为偏置bias g(z) 为激活函数 a 为输出 如果只是上面这样一说,估计以前没接触过的十有八九又必定迷糊了。事实上,上述简单模型可以追溯到20世纪50/60年代的感知器,可以把感知器理解为一个根据不同因素、以及各个因素的重要性程度而做决策的模型。 举个例子,这周末北京有一草莓音乐节,那去不去呢?决定你是否去有二个因素,这二个因素可以对应二个输入,分别用x1、x2表示。此外,这二个因素对做决策的影响程度不一样,各自的影响程度用权重w1、w2表示。一般来说,音乐节的演唱嘉宾会非常影响你去不去,唱得好的前提下 即便没人陪同都可忍受,但如果唱得不好还不如你上台唱呢。所以,我们可以如下表示: x1:是否有喜欢的演唱嘉宾。x1 = 1 你喜欢这些嘉宾,x1 = 0 你不喜欢这些嘉宾。嘉宾因素的权重w1 = 7 x2:是否有人陪你同去。x2 = 1 有人陪你同去,x2 = 0 没人陪你同去。是否有人陪同的权重w2 = 3。 这样,咱们的决策模型便建立起来了:g(z) = g(w1x1 + w2x2 + b ),g表示激活函数,这里的b可以理解成 为更好达到目标而做调整的偏置项。 一开始为了简单,人们把激活函数定义成一个线性函数,即对于结果做一个线性变化,比如一个简单的线性激活函数是g(z) = z,输出都是输入的线性变换。后来实际应用中发现,线性激活函数太过局限,于是引入了非线性激活函数。