人工神经网络-SVM-深度学习简介-文档资料_第1页
人工神经网络-SVM-深度学习简介-文档资料_第2页
人工神经网络-SVM-深度学习简介-文档资料_第3页
人工神经网络-SVM-深度学习简介-文档资料_第4页
人工神经网络-SVM-深度学习简介-文档资料_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1神经网络及SVM简介2 以冯以冯诺依曼型计算机为中心的信息处理技术的高速诺依曼型计算机为中心的信息处理技术的高速发展,使得计算机在当今的信息化社会中起着十分重要发展,使得计算机在当今的信息化社会中起着十分重要的作用。但是,当用它来解决某些人工智能问题时却遇的作用。但是,当用它来解决某些人工智能问题时却遇到了很大的困难。到了很大的困难。 例如,一个人可以很容易地识别他人的脸孔,但计例如,一个人可以很容易地识别他人的脸孔,但计算机则很难做到这一点。算机则很难做到这一点。 大脑是由生物神经元构成的巨型网络,它在本质上大脑是由生物神经元构成的巨型网络,它在本质上不同于计算机,是一种大规模的并行处理系

2、统,它具有不同于计算机,是一种大规模的并行处理系统,它具有学习、联想记忆、综合等能力,并有巧妙的信息处理方学习、联想记忆、综合等能力,并有巧妙的信息处理方法。法。 人工神经网络来源于对人脑实际神经网络的模拟人工神经网络来源于对人脑实际神经网络的模拟一、一、 神经网络发展历史神经网络发展历史背景知识背景知识3人脑和CPU4神经细胞利用电-化学过程交换信号。输入信号来自另一些神经细胞。这些神经细胞的轴突末梢(也就是终端)和本神经细胞的树突相遇形成突触(synapse),信号就从树突上的突触进入本细胞。信号在大脑中实际怎样传输是一个相当复杂的过程,但就我们而言,重要的是把它看成和现代的计算机一样,利

3、用一系列的0和1来进行操作。就是说,大脑的神经细胞也只有两种状态:兴奋(fire)和不兴奋(即抑制)。发射信号的强度不变,变化的仅仅是频率。神经细胞利用一种我们还不知道的方法,把所有从树突上突触进来的信号进行相加,如果全部信号的总和超过某个阀值,就会激发神经细胞进入兴奋(fire)状态,这时就会有一个电信号通过轴突发送出去给其他神经细胞。如果信号总和没有达到阀值,神经细胞就不会兴奋起来。5人脑和CPU动 物神经细胞的数目(数量级)蜗 牛10,000 (=104)蜜 蜂100,000 (=105)蜂 雀10,000,000 (=107)老 鼠100,000,000 (=108)人 类10,000

4、,000,000 (=1010)大 象100,000,000,000 (=1011)6人脑和CPUCPU 只具备一个功能 就是二进制加法运算7人脑的特点对损伤有冗余性对损伤有冗余性(tolerance)能实现无监督的学习能实现无监督的学习处理信息的效率极高处理信息的效率极高善于归纳推广善于归纳推广CPU i7 3.0 Ghz,4个核人脑 100hz,10G个核8人工神经网络一个人工神经网络(Artificial neural network,简称ANN)就是要在当代数字计算机现有规模的约束下,来模拟这种大量的并行性,并在实现这一工作时,使它能显示许多和生物学大脑相类似的特性。9 人工神经网络(

5、人工神经网络(Artificial Neural Netwroks,简称,简称ANN)是对人类大脑系统的一种仿真,简单地讲,它是)是对人类大脑系统的一种仿真,简单地讲,它是一个数学模型,可以用电子线路来实现,也可以用计算一个数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。机程序来模拟,是人工智能研究的一种方法。 实际上它是由大量的、功能比较简单的形式神经元实际上它是由大量的、功能比较简单的形式神经元互相连接而构成的复杂网络系统,用它可以模拟大脑的互相连接而构成的复杂网络系统,用它可以模拟大脑的许多基本功能和简单的思维方式。尽管它还不是大脑的许多基本功能和简单

6、的思维方式。尽管它还不是大脑的完美元缺的模型,但它可以通过学习来获取外部的知识完美元缺的模型,但它可以通过学习来获取外部的知识并存贮在网络内,可以解决计算机不易处理的难题,特并存贮在网络内,可以解决计算机不易处理的难题,特别是别是语音和图像的识别、理解、知识的处理、组合优化语音和图像的识别、理解、知识的处理、组合优化计算和智能控制等计算和智能控制等一系列本质上是非计算的问题。一系列本质上是非计算的问题。 2什么是人工神经网络什么是人工神经网络10 1943年年,美国心理学家美国心理学家W.McCulloch和数学家和数学家W.Pitts在提出了一个简单的神经元模型,即在提出了一个简单的神经元模

7、型,即MP模型。模型。1958年,年,F.Rosenblatt等研制出了等研制出了感知机感知机(Perceptron)。3几个发展阶段几个发展阶段q 第一次热潮第一次热潮(40-60年代未年代未) 1982年,美国物理学家年,美国物理学家J.J.Hopfield提出提出Hopfield模型模型,它是一个互联的非线性动力学网络他解决问题的,它是一个互联的非线性动力学网络他解决问题的方法是一种反复运算的动态过程方法是一种反复运算的动态过程,这是符号逻辑处理方法这是符号逻辑处理方法所不具备的性质所不具备的性质. 1987年首届国际年首届国际ANN大会在圣地亚哥大会在圣地亚哥召开,国际召开,国际ANN

8、联合会成立,创办了多种联合会成立,创办了多种ANN国际刊物。国际刊物。1990年年12月,北京召开首届学术会议。月,北京召开首届学术会议。q 低潮低潮(70-80年代初年代初)q 第二次热潮第二次热潮q 第三次热潮第三次热潮 GPU 大数据大数据 新方法新方法 深度学习理论深度学习理论11学习的类型12人工神经网络人工神经元模型x1xn表示与该神经元相连接的所有神经元的输入(出)w1wn表示与相连接神经元的突触强度(连接权) 表示神经元的(电压)阈值。f ( )表示激励函数,单调上升函数,且取有限值神经元电位值:神经元的输出值:y =f(s)1x2xnx1w2wnwf ( ). .ysniii

9、txwfty1)()(13人工神经网络激励函数的基本作用控制输入对输出的激活;对输入、输出进行函数转换;将可能无限域的输入变换成指定的有限范围内的输出。激励函数类型阈值函数线性函数非线性函数 Sigmoid函数14人工神经网络Sigmoid函数就是把神经细胞原有的阶跃式输出曲线钝化为一光滑曲线 S型函数具有非线性放大系数功能,可以把输入从负无穷大到正无穷大的信号,变换成-1到l之间输出 对较大的输入信号,放大系数较小;而对较小的输入信号,放大系数则较大 采用S型激活函数可以处理和逼近非线性输入/输出关系15BP神经网络神经网络16BP神经网络计算神经网络计算17BP神经网络神经网络 Rumel

10、hart,McClelland于1985年提出了BP网络的误差反向后传BP(Back Propagation)学习算法 BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。J. McClelland David Rumelhart 2022-3-618学习规则BP算法属于算法,是一种监督式的学习算法主要思想对于q个输入学习样本:P1,P2,Pq,已知与其对应的输出样本为:T1,T2,Tq使网络输出层的误差平方和达到最小用网络的实际输出A1,A2,Aq, 与目标矢量

11、T1,T2,Tq之间的误差修改其权值,使Am与期望的Tm,(ml,q)尽可能接近2022-3-619学习规则BP算法是由两部分组成,信息的正向传递与误差的反向传播正向传播过程中,输入信息从输入层经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态如果在输出层未得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标2021 一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”现象。Hornik等早已证明:若输入

12、层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考这一点,应优先考虑3层BP网络(即有1个隐层)。一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。隐层数隐层数22 隐层节点数隐层节点数在BP 网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况。事实上,各种计算公式得到的隐

13、层节点数有时相差几倍甚至上百倍。确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。23应用实例应用实例24net = newff ( A, B, C, trainfun )q Matlab命令命令A是一个是一个 n 2的矩阵,第的矩阵,第 i 行元素为输入信号行元素为输入信号 x i 的的最最小值和最大值小值和最大值;q 参数说明参数说明B为一为一 k 维行向量,其元素为各维行向量,其元素为各隐层节点数隐层节点数;train

14、fun为学习规则采用的为学习规则采用的训练函数训练函数(常见训练函数如下(常见训练函数如下表)。表)。C为一为一k 维字符串行向量,每一分量为对应层神经元的维字符串行向量,每一分量为对应层神经元的激激励函数励函数;25函数名函数名功能功能函数名函数名traingd梯度下降法梯度下降法traincgftraingdm势能修正法势能修正法traincgptraingdx自调整学习效率法自调整学习效率法traincgbtrainrp恢复恢复BP法法trainscgFR共轭梯度法共轭梯度法trainbfgBFGS拟牛顿法拟牛顿法PR共轭梯度法共轭梯度法trainoss一步共轭一步共轭 + 拟牛顿拟牛顿

15、PB共轭梯度法共轭梯度法trainlmLM法法标量共轭梯度法标量共轭梯度法trainbrBayesian规范法规范法2. 常见训练函数常见训练函数26MATLAB中激励函数为中激励函数为1log( )1xsig xetan( )xxxxeesig xee( )purelin xx其字符串分别为:其字符串分别为:logsig,tansig,purelin3. 激励函数激励函数27 除了需要输入除了需要输入A,B,C,trainfun外,还有些默认的参数可外,还有些默认的参数可修改,如下表修改,如下表4. 可修改参数可修改参数参数名参数名功能功能缺省值缺省值net.trainParam.goal目

16、标函数设定值目标函数设定值0net.trainParam.epochs最大迭代次数最大迭代次数100net.trainParam.show显示中间结果的周期显示中间结果的周期25net.trainParam.lr整批学习的学习效率整批学习的学习效率0.01net.trainParam.mc势能学习规则势能学习规则traingdm的势能率的势能率0.9注:不同版本注:不同版本Matlab的可修改参数列表可能不同。的可修改参数列表可能不同。28 net, tr, Y1, E = train ( net, X, Y )5. BP网络的训练与泛化网络的训练与泛化q 网络训练网络训练训训练练跟跟踪踪信信

17、息息训训练练后后网网络络网网络络实实际际输输出出误误差差矩矩阵阵网网络络训训练练函函数数未未经经训训练练网网络络网网络络实实际际输输入入网网络络应应有有输输出出X为为nM矩阵,为输入数据矩阵,矩阵,为输入数据矩阵,M为样本的组数。为样本的组数。Y为为mM矩阵,为输出数据矩阵。矩阵,为输出数据矩阵。29 训练结束后,对新的输入点数据训练结束后,对新的输入点数据X2,调用,调用sim函数进行泛函数进行泛化,得出这些输入点处的输出矩阵化,得出这些输入点处的输出矩阵Y2. q 数据泛化数据泛化Y2=sim(net,X2) 用经过训练的网络对于不是样本集的输入,计算出相应用经过训练的网络对于不是样本集的

18、输入,计算出相应的输出。的输出。 什么是数据泛化?什么是数据泛化?30例例1 由下面的语句生成一组数据由下面的语句生成一组数据 x 和和 y,用神经网络进,用神经网络进行数据拟合行数据拟合 x=0:.1:10; y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);可知可知(x, y)是曲线是曲线 上的点。上的点。0.2130.170.120.54sin(1.23 )xxyeexx=0:.1:10;y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);net=newff(0,10,5,1,tan

19、sig,tansig);net.trainParam.epochs=1000;net=train(net,x,y);x0=0.05:.1:10;figure(1)y1=sim(net,x0);plot(x,y,o, x0,y1,r)0246810-0.4-0.200.20.40.631实例实例. 蠓虫分类问题的神经网络方法蠓虫分类问题的神经网络方法(1989年年MCM竞赛题目竞赛题目 )生物学家试图对两种蠓虫(生物学家试图对两种蠓虫(Af与与Apf)进行)进行鉴别,依据的资料鉴别,依据的资料是触角和翅膀的长度,已经测得是触角和翅膀的长度,已经测得9只只Af和和6只只Apf的数据如下:的数据如下

20、: 9只只Af触角长:触角长:1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56翅膀长:翅膀长:1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.086只只Apf触角长:触角长:1.14 1.18 1.20 1.26 1.28 1.30翅膀长:翅膀长:1.78 1.96 1.86 2.00 2.00 1.96问题:问题:(1)如何凭借原始资料)如何凭借原始资料(15 对数据对数据,被称之为学习样本被称之为学习样本)制制 定一种方法定一种方法,正确区分两类蠓虫正确区分两类蠓虫; (2)依据确立的方法)依据确立的方法,对以下三

21、个样本:对以下三个样本: (1.24,1.80),(1.28,1.84),(1.40,2.04)加以识别加以识别 32解法一:解法一:建立建立两层前向神经网络两层前向神经网络如下:如下: 隐层节点可适量选取(没有具体标准)。隐层节点可适量选取(没有具体标准)。X= 为输入矩阵,为输入矩阵,x1对应于触角长,对应于触角长, x2对应于翅膀长。对应于翅膀长。Y= 为输出矩阵为输出矩阵规定规定Af对应的应有输出为对应的应有输出为 , Apf对应的应有输出为对应的应有输出为 1x2x1y2y输入层隐层输出层21xx21yy100133以上神经网络模型的以上神经网络模型的MATLAB程序如下:程序如下:

22、 x=1.24 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56 1.14 1.18 1.20 1.26 1.28 1.30 1.72 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08 1.78 1.96 1.86 2.00 2.00 1.96; %原始数据原始数据x=x-1.1; %数据标准化数据标准化y=0 0 0 0 0 0 0 0 0 1 1 1 1 1 1; 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0; %应有的输出应有的输出net=newff(0,1;0 1,5,2,tansig,tansig); %建立两

23、层前向神经网络建立两层前向神经网络%net.trainParam.goal=0.0000001; %设定训练误差设定训练误差net.trainParam.epochs=2000; %设定最大训练步数设定最大训练步数net=train(net,x,y); %训练网络训练网络y1=sim(net,x) %输出数据输出数据yy=sim(net,1.24 1.28 1.40;1.80 1.84 2.04) %数据泛化数据泛化34underfittingoverfittinggood fit神经网络的问题神经网络的问题1 需要大样本需要大样本2 隐层的个数无公式隐层的个数无公式3 整个计算过程过于模糊,

24、很容易陷入局整个计算过程过于模糊,很容易陷入局部最优导致欠拟合或者过拟合部最优导致欠拟合或者过拟合35SVM的理论基础传统的统计模式识别方法只有在样本趋向无穷大时,其性能才有理论的保证。统计学习理论(STL)研究有限样本情况下的机器学习问题。SVM的理论基础就是统计学习理论。传统的统计模式识别方法在进行机器学习时,强调经验风险最小化。而单纯的经验风险最小化会产生“过学习问题”,其推广能力较差。推广能力推广能力是指: 将学习机器(即预测函数,或称学习函数、学习模型)对未来输出进行正确预测的能力。36SVM根据统计学习理论,学习机器的实际风险由经验风险值和置信范围值两部分组成。而基于经验风险最小化

25、准则的学习方法只强调了训练样本的经验风险最小误差,没有最小化置信范围值,因此其推广能力较差。Vapnik 提出的支持向量机(Support Vector Machine, SVM)以训练误差作为优化问题的约束条件,以置信范围值最小化作为优化目标,即SVM是一种基于结构风险最小化准则的学习方法,其推广能力明显优于一些传统的学习方法。形成时期在19921995年。 37线性判别函数和判别面 一个线性判别函数(discriminant function)是指由x的各个分量的线性组合而成的函数 两类情况:对于两类问题的决策规则为 如果g(x)0,则判定x属于C1, 如果g(x)0,则判定x属于C2,

26、如果g(x)=0,则可以将x任意 分到某一类或者拒绝判定。 0( )Tg xw xw38最优分类面 SVM 是从线性可分情况下的最优分类面发展而来的, 基本思想可用图2的两维情况说明. 图中, 方形点和圆形点代表两类样本, H 为分类线,H1, H2分别为过各类中离分类线最近的样本且平行于分类线的直线, 它们之间的距离叫做分类间隔(margin)。所谓最优分类线就是要求分类线不但能将两类正确分开(训练错误率为0),而且使分类间隔最大.推广到高维空间,最优分类线就变为最优分类面。 39分类超平面示意图 最优分类超平面图2w两类样本中离分类面最近的点且平行于最优分类超平面的样本点叫做支持向量。 4

27、0非线性变换 基本思想: 选择非线性映射(X)将x映射到高维特征空间Z,在Z中构造最优超平面41SVM方法的特点非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。 SVM 是一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度及大数定律等,因此不同于现有的统计方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”(transductive inference)

28、 ,大大简化了通常的分类和回归等问题。42SVM方法的特点SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。这种“鲁棒”性主要体现在: 增、删非支持向量样本对模型没有影响; 支持向量样本集具有一定的鲁棒性; 有些成功的应用中,SVM 方法对核的选取不敏感。43深度学习深度学习44浅层学习是机器学习的第一次浪潮人工神经网络(BP算法)虽被称作多层感知机,但实际是种只含有一层

29、隐层节点的浅层模型SVM、Boosting、最大熵方法(如LR,Logistic Regression)带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)的浅层模型局限性:有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受限。基本概念基本概念浅层学习与深度学习浅层学习与深度学习452006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton在科学上发表论文提出深度学习主要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来有效克服,逐层初始化可通过无监督学习实现的。基本概念基本概念46 深度学习:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论