深度学习——Caffe之经典模型详解与实战(txt+pdf+epub+mobi电子书下载)


发布时间:2021-08-04 07:37:06

点击下载

作者:乐毅,王斌

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

深度学习——Caffe之经典模型详解与实战

深度学习——Caffe之经典模型详解与实战试读:

前言

2016年3月,Google开发的一款人工智能程序阿尔法围棋(AlphaGo)对战世界围棋冠军、职业九段选手李世石,以4:1的总比分获胜。众多媒体和网络新闻纷纷直播或转载此次人工智能应用领域内的盛况。随后,Google在《Nature》杂志发表了关于AlphaGo算法的论文“Mastering the game of Go with deep neural networks and tree search”。此论文提到了AlphaGo用3,000万棋局训练深度神经网络的方法,展现了深度学习异常强大的学习能力。一时间,国内外掀起了研究和学习人工智能的热潮。然而,很多读者朋友希望能找到一本关于深度学习应用领域的书籍,目前市场上关于人工智能、机器学习或深度学习领域内的各类书目很多,遗憾的是这些书籍大多是理论性质的,少有系统介绍深度学习的应用实践参考书。

与此同时,笔者认为深度学习的应用能力会成为一个爆发性需求的知识技能,也会是未来科技的至高点。鉴于此,我与朋友王斌从去年就计划编写一本关于深度学习的应用实践书籍,希望能够对深度学习爱好者或初学者提供一些帮助。

全书共17章,第1章介绍了人工智能和深度学习的背景和现状;第2章介绍了深度学习的基本理论和主流的深度学习框架;第3章介绍了Caffe的安装、配置和运行环境;第4章介绍了Caffe网络模型的构成要素、常用的层类型和Solver方法;第5~10章详细解读了LeNet、AlexNet、GoogLeNet、VGGNet、Siamese和SqueezeNet目标分类模型,并附上Caffe实战训练;第11~15章详细解读了FCN、R-CNN、Fast-RCNN、Faster-RCNN和SSD目标定位模型;第16~17章利用Caffe深度学习框架解求Kaggle网站的两个经典项目。

本书在内容上对深度学习相关的机器学习理论只作了简单介绍,更多的放在如何应用Caffe解决实际问题,并把使用当中可能出现的问题也一一列举出来,帮助读者分析原因、解决问题。本书介绍了十多种非常经典的网络模型,学习这些模型可以帮助读者很好地理解和应用Caffe框架和工具。当然,读者并无必要对这些网络模型一一阅读,也可根据自身情况选择对自己有实际帮助的案例进行分析学习。

由于深度学习技术发展迅速,各种知识和应用工具变化很快,Github上许多开源的项目也在不断更新和修正。笔者才疏学浅,理解有限,加之编写时间也较仓促,书中难免有错谬之处,敬请广大读者朋友批评指正,不胜感激。乐毅2016年11月第1章 绪论

深度学习是机器学习研究中的一个新领域,其动机在于建立能模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像、声音和文本。深度学习算法基于人工神经网络,是当前机器学习领域最前沿和热门的课题之一。本章将介绍机器学习和深度学习的发展历程、相关技术和国内外研究现状。1.1 引言

人工神经网络(Artificial Neural Networks,ANNs),简称为神经网络(NNs)或连接模型(Connection Model),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。神经网络是计算智能和机器学习研究领域内非常活跃的分支之一。深度学习(Deep Learning)算法是近年来在人工神经网络领域的一项重大突破。深度学习通过组合低层特征形成更加抽象的高层特征,来发现数据的分布式特征。在深度学习中,我们并不告诉计算机如何解决问题,相反,计算机自己能够从观测数据中学习,然后通过学习结果,自行解决问题。

从2006年开始发展起来的深度学习算法经过多年的快速发展已经在计算机视觉、语音识别和自然语言处理中的许多重要问题上有杰出的表现。由于深度学习的先进性,已经使得机器智能开始加速走进人类的生活。在深度学习算法发展的过程中,有一些深度学习框架随之发展起来并广受欢迎。本书介绍的Caffe是一款优秀的神经网络深度学习框架,在深度学习领域广受欢迎。本书的目的是帮助读者掌握深度学习的核心概念,并深入浅出地介绍Caffe的内容和基于Caffe的深度学习模型。1.2 人工智能的发展历程

人工智能的研究从1956年正式开始,这一年在达特茅斯大学召开的会议上正式使用了“人工智能”(Artificial Intelligence,AI)这个术语。从计算机应用系统的角度出发,人工智能是研究如何制造智能机器或智能系统,来模拟人类智能活动的能力,以延伸人类智能的科学。人工智能理论的发展历程至今为止可分为三个阶段。第一阶段:初始阶段

1950年,著名的图灵测试诞生,按照艾伦·图灵的定义:如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有智能。同年,图灵还预言了创造出具有真正智能的机器的可能性。

1956年,在达特茅斯学院举行的一次会议上,计算机科学家约翰·麦卡锡说服与会者接受“人工智能”一词作为本领域的名称。后来,这次会议也被大家看成人工智能正式诞生的标志。

人工智能概念首次提出后,相继出现了一批显著的成果,如机器定理证明、跳棋程序、LISP表处理语言等。但由于消解法推理能力的有限,以及机器翻译等的失败,使人工智能走入了低谷。这一阶段的特点是:重视问题求解的方法,忽视知识的重要性。第二阶段:发展阶段

20世纪60年代末到20世纪70年代,专家系统出现。DENDRAL化学质谱分析系统、MYCIN疾病诊断和治疗系统、PROSPECTIOR探矿系统、Hearsay-II语音理解系统等专家系统的研究和开发,将人工智能引向了实用化。

20世纪80年代,Astrom发表了论文,这是第一篇直接将人工智能的专家系统技术引入到控制系统的代表作,明确地提出了建立专家控制的新概念。与此同时,对于模糊理论的研究,以及其他智能理论的分支,都开始迅速白热化并展开研究,这些标志着智能控制已从研制开发阶段转向应用阶段。

20世纪80年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,掀起了基于统计模型的机器学习热潮。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显示出优越性。这个时候的人工神经网络,虽然[1]也被称作多层感知机(Multi-layer Perceptron),但实际上是一种只含有一层隐层节点的浅层模型。

20世纪90年代,由于网络技术特别是Internet技术的发展,人工智能开始由单个智能主体研究转向基于网络环境下的分布式人工智能研究。不仅研究基于同一目标的分布式问题求解,而且研究多个智能主体的多目标问题求解,使人工智能进一步面向实用。里程碑似的成果包括在1997年IBM的深蓝战胜国际象棋世界冠军卡斯帕罗夫。这个时期,各种各样的浅层机器学习模型相继被提出,比如支撑向量机[2][3](Support Vector Machines,SVM)、Boosting、最大熵方法(例如Logistic Regression,LR)等。这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting)或没有隐层节点(如LR)。

2000年以来互联网的高速发展,对大数据的智能化分析和预测提出了巨大的需求,浅层学习模型在互联网应用上获得了巨大的成功。非常成功的应用包括搜索广告系统(例如Google的AdWords、百度的凤巢系统)的广告点击率CTR预估、网页搜索排序(例如Yahoo!和微软的搜索引擎)、垃圾邮件过滤系统、基于内容的推荐系统等。第三阶段:大数据+深度模型阶段

2006年,加拿大多伦多大学教授、机器学习领域泰斗——Geoffrey Hinton和他的学生Ruslan Salakhutdinov在顶尖学术刊物《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章有两个主要的信息:一是多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;二是深度神经网络在训练上的难点,可以通过“逐层初始化”来有效克服。

自2006年以来,深度学习在学术界持续升温。目前深度学习的理论研究虽然还处于起步阶段,但在应用领域已显现出巨大能量。2011年以来,微软研究院和Google的语音识别研究人员先后采用深度神经网络(DNN)技术降低语音识别错误率达20%~30%,是语音识别领域十多年来最大的突破性进展。2012年,DNN技术在图像识别领域取得惊人的效果,在ImageNet评测上将错误率从26%降低到15%。同样在这一年,DNN还被应用于制药公司的DrugeActivity预测问题,并获得世界上的最好成绩。2015年,微软在ImageNet评测上[4]的错误率已降低至3.57%,低于人眼判别的错误率(大约是5.1%)。2016年3月,Google的围棋软件AlphaGo对战世界围棋冠军、职业九段选手李世石,并以4:1的总比分获胜。

今天Google、Facebook、微软等知名的拥有大数据的高科技公司争相投入资源,占领深度学习的技术制高点。因为他们都看到了在大数据时代,更加复杂且更加强大的深度模型能深刻揭示海量数据里所承载的复杂而丰富的信息,并能够对未来或未知事件做更精准的预测。

深度学习带来了机器学习的新浪潮,推动“大数据+深度模型”时代的来临,并推动人工智能和人机交互等关键技术大步前进。1.3 机器学习及相关技术1.3.1 学习形式分类

1.监督学习(Supervised Learning)

监督学习,也被称为有监督学习或有教师学习。监督学习是从标记的训练数据来推断一个功能的机器学习任务。训练数据包括一套训练示例。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成的。监督学习从给定的训练数据集中学习一个函数,当新的数据到来时,可以根据这个函数预测结果。监督学习的训练集需要包括输入和输出,也可以说是特征和目标。训练集中的目标是由人标注的。常见的监督学习算法包括回归分析算法(regression)和统计分类算法(classification)。这一类学习主要应用于分类和预测。

2.无监督学习(unsupervised learning)

无监督学习是从没有标记的训练数据中学习数据的信息或特征,无监督学习通过对没有标记的训练样本进行学习,来发现训练样本集中的结构性知识。这里,所有的标记是未知的,因此训练样本的歧义性高。聚类就是典型的无监督学习,因为给学习者提供的实例是未标记的,所以也没有错误或报酬信号来评估潜在的解决方案。

无监督学习和统计数据密度估计密切相关。除此之外,无监督学习还包括寻求、总结和解释数据的主要特点等诸多技术。在无监督学习中,使用的许多方法是基于数据挖掘方法。1.3.2 学习方法分类

1.经验性归纳学习

经验性归纳学习采用一些数据密集的经验方法(如版本空间法、ID3法,定律发现方法)对例子进行归纳学习。其例子和学习结果一般都采用属性、谓词、关系等符号表示。它相当于基于学习策略分类中的归纳学习,但扣除连接学习、遗传算法、加强学习的部分。

2.分析学习

分析学习方法是从一个或少数几个实例出发,运用领域知识进行分析。其主要特征为:● 推理策略主要是演绎,而非归纳;● 使用过去求解问题的经验(实例)指导新的问题求解或形成一定

的问题求解规则;● 分析学习的目标是改善系统的性能,而不是新的概念描述。分析

学习包括应用解释学习、演绎学习、多级结构组块,以及宏操作

学习等技术。

3.类比学习

类比学习相当于基于学习策略分类中的类比学习。在这一类型的学习中比较引人注目的研究是通过与过去经历的具体事例作类比来学习,这样的学习被称为基于范例的学习(case_based learning),或简称范例学习。

4.遗传算法

遗传算法模拟生物繁殖的突变、交换和达尔文的自然选择(在每一生态环境中适者生存)。它把问题中的每一个个体编码为一个向量,向量的每一个元素被称为基因,并利用目标函数(相应于自然选择标准)对群体(个体的集合)中的每一个个体进行评价,根据评价值(适应度)对个体进行选择、交换、变异等遗传操作,从而得到新的群体。遗传算法适用于非常复杂和困难的环境,比如,带有大量噪声和无关数据、事物不断更新、问题目标不能明显和精确地定义,以及通过很长的执行过程才能确定当前行为的价值等。同神经网络一样,遗传算法的研究已经发展为人工智能的一个独立分支,其代表人物为霍勒德(J.H.Holland)。

5.连接学习

典型的连接模型实现为人工神经网络,模型由神经元的一些简单计算单元及单元间的加权连接组成。

6.增强学习

增强学习的特点是通过与环境的试探性(trial and error)交互来确定和优化动作的选择,以实现所谓的序列决策任务。在这种任务中,学习机制通过选择并执行动作,导致系统状态的变化,并有可能得到某种强化信号,从而实现与环境的交互。强化信号就是对系统行为的一种标量化的奖惩。增强学习的目标定义为寻找一个最优化的动作选择策略,即在任一给定的状态下选择哪种动作的方法,使产生的动作序列可获得某种最优的结果。1.3.3 机器学习的相关技术

1.BP(Back Propagation)神经网络

BP神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出的,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存储大量的输入-输出模式映射关系,而无须事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(Input layer)、隐含层(Hidden layer)和输出层(Output layer)。

2.随机森林(Random Forests)

在机器学习中,随机森林是一个包含多个决策树的分类器,并且随机森林的输出类别是由森林中的每棵树输出类别的统计量综合决定的。这个方法结合了Breimans的“Bootstrap aggregating”思想和Ho的“Random Subspace Method”思想来建造决策树的集合。

3.支持向量机(Support Vector Machine,SVM)

在机器学习中,支持向量(SVM)是一种监督学习模型,可以分析数据、识别模式,用于分类和回归分析。支持向量机的一个关键概念就是核函数,可以使用所谓的核技巧,把输入隐含映射成高维特征空间,有效地进行线性分类或非线性分类。

4.深度学习(Deeping Learning)

深度学习的概念由Hinton等人于2006年提出。采用深度学习算法的典型神经网络采用大量的卷积层,利用空间相对关系来减少参数数目以提高训练性能。基于深度学习的Caffe学习框架及其经典模型的介绍是本书的重点。1.4 国内外研究现状1.4.1 国外研究现状

2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey [5]Hinton和他的学生Ruslan Salakhutdinov在《科学》上发表了一篇基于神经网络深度学习理念的突破性文章,开启了深度学习在学术界和工业界的浪潮。

2010年,美国国防部先进研究项目局首次资助深度学习,参与方包括斯坦福大学、纽约大学和NEC美国研究院等机构。

2011年,斯坦福人工智能实验室主任吴恩达领导Google的科学家们,用16000台电脑模拟了一个人脑神经网络,并向这个网络展示了1000万段随机从YouTube上选取的视频,看看它能学会什么。结果在完全没有外界干涉的条件下,它自己识别出了猫脸。

2011年,微软语音识别采用深度学习技术降低语音识别错误率达20~30%,是该领域十多年来最大的突破性进展。

2012是深度学习研究和应用爆发的一年,深度学习被应用于著名生物制药公司黙克的分子药性预测问题,从各类分子中学习发现那些可能成为药物分子,并获得世界上最好效果。

2012年,Hinton和他的学生Alex Krizhevsky为了回应别人对于Deep Learning的质疑而将其用于ImageNet(图像识别目前最大的数据库)上,最终取得了非常惊人的结果,其结果相对原来的最佳纪录有巨大的提升(前5项错误率由25%降低为17%)。Alex在比赛中所用[6]的神经模型在业界被称为AlexNet。深度学习从此风靡世界。

2012年12月,微软亚洲研究院展示了中英即时口译系统,错误率仅为7%,而且发音十分顺畅。

2013年,欧洲委员会发起模仿人脑的超级计算机项目,计划历时10年投入16亿美元,由全球80个机构的超过200名研究人员共同参与,希望在理解人类大脑工作方式上取得重大进展,并推动更多能力强大的新型计算机的研发。

2013年6月18日,微软宣布已经研发出一种新型语音识别技术,可提供“接近即时”的语音至文本的转换服务,比当时最先进的语音识别技术快两倍,同时,准确率提高了15%。[7][8]

2014年,GoogLeNet和VGG-Net获得ImageNet 2014计算机识别竞赛的冠亚军,这两类模型结构有一个共同特点是go deeper。GoogLeNet用的参数比ImageNet 2012计算机识别挑战赛的冠军AlexNet少12倍,但准确率更高。最终的Top-5错误率在验证集和测试集上都是6.67%,获得了第一名。

2015年微软亚洲研究院视觉计算组在ImageNet 2015计算机识别挑战赛中凭借深层神经网络技术的最新突破,以绝对优势获得图像分类、图像定位和图像检测全部三个主要项目的冠军。该研究团队使用了“残差学习”原理来指导神经网络结构的设计。“残差学习”最重要的突破在于重构了学习的过程,并重新定义了深层神经网络中的信息流,很好地解决了此前深层神经网络层级与准确度之间的矛盾。前5项错误率是3.57%,而此前同样的实验中,人眼辨识的错误率大概为5.1%。

2016年3月,Google开发的一款围棋人工智能程序阿尔法围棋(AlphaGo)对战世界围棋冠军、职业九段选手李世石,并以4:1的总比分获胜。1.4.2 国内研究现状

关于深度学习在国内的发展情况,百度、华为、阿里巴巴、腾讯等中国著名的信息技术和互联网企业近年来也纷纷高举深度学习的旗帜,投入到深度学习研究的大军中去。

2012年,华为在中国香港成立诺亚方舟实验室,主要从事人工智能学习——数据挖掘研究。

2013年01月19日,百度宣布成立深度学习研究院Institute of Deep Learning(简称IDL)。之后宣布了百度大脑计划。

2014年06月22日,腾讯在ICML展示了Deep Learning Platform深度学习平台。

2014年09月09日,京东挂牌成立了京东深度神经网络实验室(JD DNN Lab)。

2014年11月03日,阿里巴巴组建团队成立IDST(Institute of Data Science&Tech)。

2016年5月23日,发改革委印发《“互联网+”人工智能三年行动实施方案》,明确指出要推进计算机视觉、智能语音处理、生物特征识别、自然语言理解、智能决策控制等技术,推进人工智能在家居、汽车、无人系统、安防等方面的应用,提升人工智能集群式创新创业能力。这已经是国务院在人工智能领域的第二次发文。以四部委联合发文的形式下达,足见国家对人工智能技术及应用的重视程度。这说明人工智能的意义已经超出本身,成为创新创业国家战略成败的一部分。参考文献

[1] F.Rosenblatt.The perceptron,a perceiving and recognizing automaton Project Para.Cornell Aeronautical Laboratory,1957.

[2] P.H.Chen,C.J.Lin,and B.Scholkopf,A tutorial onν-support vector machines,Appl.Stoch.Models.Bus.Ind.2005,21,111-136.

[2] J Friedman,R Tibshirani,Special Invited Paper.Additive Logistic Regression:A Statistical View of Boosting:Discussion,Annals of Statistics,2000.

[4] K He,X Zhang,S Ren,J Sun,Deep Residual Learning for Image Recognition,Computer Science,2015.

[5] HINTON,Prof.Geoffrey Everest.Who's Who.(online Oxford University Press ed.).A&C Black,an imprint of Bloomsbury Publishing plc.2015.

[6] A.Krizhevsky,I.Sutskever,and G.Hinton.ImageNet classification with deep convolutional neural networks.In NIPS,2012.

[7] C.Szegedy,W.Liu,Y.Jia,P.Sermanet,S.Reed,D.Anguelov,D.Erhan,V.Vanhoucke,and A.Rabinovich.Going deeper with convolutions.In CVPR,2015.

[8] K.Simonyan and A.Zisserman.Very deep convolutional networks for large-scale image recognition.In ICLR,2015.第2章 深度学习

深度学习(Deep Learning)是机器学习(Machine Learning)研究中的一个新领域,是具有多隐含层的神经网络结构。深度学习通过组合低层特征形成更加抽象的高层表示属性或特征,以发现数据的分布式特征表示。

本章将从生物意义上的神经网络模型,引入人工神经网络模型,以及BP神经网络和卷积神经网络,最后介绍了深度学习的当前的主流框架。2.1 神经网络模型2.1.1 人脑视觉机理

1981年的诺贝尔医学奖颁发给了David Hubel、TorstenWiesel和Roger Sperry。David Hubel是一个出生在加拿大的美国神经生物学家,他和TorstenWiesel的主要贡献是“发现了视觉系统的信息处理”,即[1]可视皮层是分级的,如图2-1所示。图2-1 人脑可视皮层分级

1958年,DavidHubel和Torsten Wiesel在JohnHopkins University,研究瞳孔区域与大脑皮层神经元的对应关系。他们在猫的后脑头骨上,开了一个3毫米的小洞,向洞里插入电极,测量神经元的活跃程度。

然后,他们在小猫的眼前,展现各种形状、各种亮度的物体。并且,在展现每一件物体时,还改变物体放置的位置和角度。他们期望通过这个办法,让小猫瞳孔感受不同类型、不同强度的刺激。

之所以做这个试验,目的是证明一个猜测。位于后脑皮层的不同视觉神经元,与瞳孔所受刺激之间,存在某种对应关系。一旦瞳孔受到某一种刺激,后脑皮层的某一部分神经元就会活跃。经历了很多天反复的枯燥的试验,同时牺牲了若干只可怜的小猫,David Hubel和Torsten Wiesel发现了一种被称为“方向选择性细胞(Orientation Selective Cell)”的神经元细胞。当瞳孔发现了眼前的物体的边缘,而且这个边缘指向某个方向时,这种神经元细胞就会活跃。

这个发现激发了人们对于神经系统的进一步思考。神经-中枢-大脑的工作过程,或许是一个不断迭代、不断抽象的过程。这里的关键词有两个:一个是抽象,一个是迭代。从原始信号,做低级抽象,逐渐向高级抽象迭代。

人类的逻辑思维,经常使用高度抽象的概念。例如,从原始信号摄入开始(瞳孔摄入像素Pixels),接着做初步处理(大脑皮层某些细胞发现边缘和方向),然后抽象(大脑判定眼前的物体的形状是圆形的),然后进一步抽象(大脑进一步判定该物体是个气球)。图2-2 人脑视觉机制

这个生理学的发现,促成了计算机人工智能在40年后的突破性发展。总的来说,人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征,再到V2区的形状或者目标的部分内容,再到更高层,形成整个目标和目标的行为,如图2-2所示。也就是说高层的特征是低层特征的组合,从低层到高层的特征表示越来越抽象,越来越能表现语义或者意图。而抽象层面越高,存在的可能猜测就越少,就越利于分类。例如,单词集合和句子的对应是多对一的,句子和语义的对应又是多对一的,语义和意图的对应还是多对一的,这是一个层级体系。2.1.2 生物神经元

生物神经元的结构如图2-3所示,包括以下部分。(1)细胞体:细胞核、细胞质和细胞膜。(2)树突:胞体短而多分枝的突起。相当于神经元的输入端。(3)轴突:胞体上最长枝的突起,也称神经纤维。端部有很多神经末梢传出神经冲动。(4)突触:神经元间的连接接口,每个神经元约有1万~10万个突触。神经元通过其轴突的神经末梢,经突触与另一个神经元的树突连接,实现信息的传递。由于突触的信息传递特性是可变的,形成了神经元间连接的柔性,称为结构的可塑性。(5)细胞膜电位:神经细胞在受到电、化学、机械的刺激后,能产生兴奋与抑制。图2-3 生物神经元结构

生物神经元功能如下。(1)兴奋与抑制:当传入神经元冲动,经整合使细胞膜电位长高,超过动作电位的阈值时,为兴奋状态,产生神经冲动,由轴突经神经末梢传出。当传入神经元的冲动,经整合,使细胞膜电位降低,低于阈值时,为抑制状态,不产生神经冲动。(2)学习与遗忘:由于神经元结构的可塑性,突触的传递作用可增强与减弱,因此,神经元具有学习与遗忘的功能。2.1.3 人工神经网络

人工神经网络是在现代神经科学的基础上提出和发展起来的,旨在反映人脑结构及功能的一种抽象数学模型。自1943年美国心理学家W.McCulloch和数学家W.A Pitts提出形式神经元的抽象数学模型[2]——MP模型以来,人工神经网络理论技术经过了50多年的曲折发展。特别是20世纪80年代,人工神经网络的研究取得了重大进展,有关的理论和方法已经发展成一门界于物理学、数学、计算机科学和神经生物学之间的交叉学科。它在模式识别、图像处理、智能控制、组合优化、金融预测与管理、通信、机器人及专家系统等领域得到广泛的应用,有40多种神经网络模型被提出,其中比较著名的有感知[3][4][5][6]机、Hopfield网络、Boltzman机、自适应共振理论及反向传播[7]网络(BP)等。

1.人工神经元模型

图2-4显示了作为人工神经网络(Artificial Neural Network)的基本单元的神经元模型,它有三个基本要素。图2-4 人工神经元结构(1)一组连接(对应生物神经元的突触),连接强度由各连接上的权值表示,权值为正表示激活,为负表示抑制。(2)一个求和单元,用于求取各输入信号的加权和(线性组合)。(3)一个非线性激活函数,起非线性映射作用并将神经元输出幅度限制在一定范围内(一般限值在[0,1]或[-1,1]之间)。(4)阈值θ(或偏置b=-θ)。kkk

以上作用可分别以数据公式表达出来:

式中x,x,…,x为输入信号,w,w,…,w为神经元k之权值,u12pk1k2kpk为线性组合结果,θ为阈值,φ(·)为激活函数,y为神经元k的输kk出。

若把输入的维数增加一维,则可把阈值θ包括进去。例如:k

此处增加了一个新的连接,其输入为x=-1(或+1),权值为0w=θ(或b),如图2-5所示。k0kk图2-5 人工神经元数学表达

2.激活函数

激活函数φ(·)有以下几种。(1)阈值函数

即阶梯函数。这时相应的输出y为k

其中,常称此种神经元为M-P模型。(2)分段线性函数

它类似于一个放大系数为1的非线性放大器,当工作于线性区时它是一个线性组合器,放大系数趋于无穷大时它变成一个阈值单元。(3)sigmoid函数

最常用的函数形式为

参数α>0可控制其斜率。另一种常用的是双曲正切函数。

这类函数具有平滑和渐近性,并保持单调性。2.2 BP神经网络

通过以上章节我们知道人脑对信息的传递和对外界刺激所产生的反应都是由神经元控制的,人脑由上百亿个这样的神经元构成。这些神经元之间并不孤立而且联系很密切,每个神经元平均与几千个神经元相连接,因此构成了人脑的神经网络。刺激在神经网络中的传播是遵循一定规则的,一个神经元并非每次接到其他神经传递过来的刺激都产生反应。它首先会将与其相邻的神经元传来的刺激进行积累,到一定的时候产生自己的刺激并将其传递给一些与它相邻的神经元。这样工作的百亿个神经元构成了人脑对外界进行的反应。而人脑对外界刺激的学习机制就是通过调节这些神经元之间联系及其强度。当然,以上说的是对人脑真正神经工作的一种简化的生物模型,利用这种简化的生物模型可以将它推广至机器学习中来,并把它描述成人工神经网络。BP神经网络就是其中的一种。[7]

BP(Back Propagation)网络是由Rinehart和McClelland为首的科学家小组于1986年提出的,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存储大量的输入-输出模式映射关系,而无须事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(Input)、隐层(Hide layer)和输出层(Output layer)。2.2.1 BP神经元

图2-6给出了第j个基本BP神经元(节点),它只模仿了生物神经元所具有的三个最基本也是最重要的功能:加权、求和与转移。其中x,x,…,x,…,x分别代表来自神经元1,2,…,i,…,n的输入;w,w,…,w,12inj1j2ji…,w则分别表示神经元1,2,…,i,…,n与第j个神经元的连接强度,即权jn值;bj为阈值,f(·)为传递函数,y为第j个神经元的输出。j

第j个神经元的净输入值S为:j图2-6 BP神经元

其中f(·)是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。2.2.2 BP神经网络构成

BP神经网络用最直观的图形表示如图2-7所示。图2-7 BP神经网络

第一区域相当于外界的刺激,是刺激的来源并且将刺激传递给神经元,因此把第一区域命名为输入层。

第二区域,表示神经元相互之间传递刺激相当于人脑里面,因此把第二区命名为隐藏层。

第三区域,表示神经元经过多层次相互传递后对外界的反应,因此把第三区域命名为输出层。

简单的描述就是,输入层将刺激传递给隐藏层,隐藏层通过神经元之间联系的强度(权重)和传递规则(激活函数)将刺激传到输出层,输出层整理隐藏层处理后的刺激产生最终结果。若有正确的结果,那么将正确的结果和产生的结果进行比较,得到误差,再逆推对神经网中的链接权重进行反馈修正,从而来完成学习的过程。这就是BP神经网的反馈机制,也正是BP(Back Propagation)名字的来源,即运用向后反馈的学习机制,来修正神经网中的权重,最终达到输出正确结果的目的。

BP算法由数据流的前向计算(正向传播)和识差信号的反向传播两个过程构成。正向传播时,传播方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。2.2.3 正向传播

设BP网络的输入层有n个节点,隐层有q个节点,输出层有m个节点,输入层与隐层之间有权值为v,隐层与输出层之间的权值为w,kijk如图2-8所示。图2-8 三层神经网络的拓扑结构

隐层的传递函数为f(·),输出层的传递函数为f(·),则隐层12节点的输出为(将阈值写入求和项中,k=1,2,…,p):

输出层节点的输出为(j=1,2,…,m):

至此BP网络就完成了n维空间向量对m维空间的近似映射。2.2.4 反向传播

1.定义误差函数

输入P个学习样本,用来表示。第v个样本输入到网络后得到输出(j=1,2,…,m)。采用平方型误差,于是得到第v个样本的误差E:v

其中,为期望输出。

对于P个样本,全局误差为:

2.输出层权值变化

采用累计误差BP算法调整w,使全局误差E变小,即jk

其中η为学习率(learningrate)。

定义误差信号为:

其中第一项:

第二项:

是输出层传递函数的偏微分。

于是:

由链定理得:

于是输出层各神经元的权值调整公式为:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载