人工神经网络-SVM-深度学习简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用实例
Matlab命令 net = newff ( A, B, {C}, ’trainfun’ ) 参数说明 A是一个 n × 2的矩阵,第 i 行元素为输入信号 x i 的最 小值和最大值; B为一 k 维行向量,其元素为各隐层节点数; C为一k 维字符串行向量,每一分量为对应层神经元的激 励函数; trainfun为学习规则采用的训练函数(常见训练函数如下 表)。
2.什么是人工神经网络 人工神经网络(Artificial Neural Netwroks,简称 ANN)是对人类大脑系统的一种仿真,简单地讲,它是 一个数学模型,可以用电子线路来实现,也可以用计算 机程序来模拟,是人工智能研究的一种方法。 实际上它是由大量的、功能比较简单的形式神经元 互相连接而构成的复杂网络系统,用它可以模拟大脑的 许多基本功能和简单的思维方式。尽管它还不是大脑的 完美元缺的模型,但它可以通过学习来获取外部的知识 并存贮在网络内,可以解决计算机不易处理的难题,特 别是语音和图像的识别、理解、知识的处理、组合优化 计算和智能控制等一系列本质上是非计算的问题。
-0.4 0 2 4 6 8 10
实例. 蠓虫分类问题的神经网络方法
(1989年MCM竞赛题目 ) 生物学家试图对两种蠓虫(Af与Apf)进行鉴别,依据的资料 是触角和翅膀的长度,已经测得9只Af和6只Apf的数据如下: 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.08 6只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)依据确立的方法,对以下三个样本: (1.24,1.80),(1.28,1.84),(1.40,2.04)加以识别
2016/4/22
学习规则
19
BP算法是由两部分组成,信息的正向传递与误差 的反向传播
正向传播过程中,输入信息从输入层经隐含层逐层计 算传向输出层,每一层神经元的状态只影响下一层神 经元的状态 如果在输出层未得到期望的输出,则计算输出层的误 差变化值,然后转向反向传播,通过网络将误差信号 沿原来的连接通路反传回来修改各层神经元的权值直 至达到期望目标
X为n×M矩阵,为输入数据矩阵,M为样本的组数。Y为 m×M矩阵,为输出数据矩阵。
数据泛化
什么是数据泛化?
用经过训练的网络对于不是样本集的输入,计算出相应 的输出。 训练结束后,对新的输入点数据X2,调用sim函数进行泛 化,得出这些输入点处的输出矩阵Y2. Y2=sim(net,X2)
例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)是曲线 y 0.12e0.213 x 0.54e0.17 x sin(1.23x) 上的点。 x=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],{'tansig','tansig'}); 0.6 net.trainParam.epochs=1000; 0.4 net=train(net,x,y); x0=0.05:.1:10; 0.2 figure(1) 0 y1=sim(net,x0); -0.2 plot(x,y,'o', x0,y1,'r')
人脑和CPU
CPU 只具备一个功能 就是二进制加法运算
人脑的特点
处理信息的效率极高
人脑 100hz,10G个核 CPU i7 3.0 Ghz,4个核
能实现无监督的学习
对损伤有冗余性(tolerance)
善于归纳推广
人工神经网络
一个人工神经网络(Artificial neural network,简称ANN)就是要在当代数字计算 机现有规模的约束下,来模拟这种大量的并 行性,并在实现这一工作时,使它能显示许 多和生物学大脑相类似的特性。
3.几个发展阶段 第一次热潮(40-60年代未) 1943年,美国心理学家W.McCulloch和数学家 W.Pitts在提出了一个简单的神经元模型,即MP模型。 1958年,F.Rosenblatt等研制出了感知机 (Perceptron)。 低潮(70-80年代初)
第二次热潮 1982年,美国物理学家J.J.Hopfield提出Hopfield 模型,它是一个互联的非线性动力学网络他解决问题的 方法是一种反复运算的动态过程,这是符号逻辑处理方法 所不具备的性质. 1987年首届国际ANN大会在圣地亚哥 召开,国际ANN联合会成立,创办了多种ANN国际刊物。 1990年12月,北京召开首届学术会议。 第三次热潮 GPU 大数据 新方法 深度学习理论
Sigmoid函数
人工神经网络
Sigmoid函数
• S型函数具有非线性放 大系数功能,可以把输 入从负无穷大到正无穷 大的信号,变换成-1到 l之间输出 • 对较大的输入信号,放 大系数较小;而对较小 的输入信号,放大系数 则较大 • 采用S型激活函数可以 处理和逼近非线性输入 /输出关系
学习规则
18
BP算法属于δ算法,是一种监督式的学习算法
主要思想
对于q个输入学习样本:P1,P2,…,Pq,已知与其对应的 输出样本为:T1,T2,…,Tq
使网络输出层的误差平方和达到最小
用网络的实际输出A1,A2,…,Aq, 与目标矢量T1,T2,…,Tq 之间的误差修改其权值,使Am与期望的Tm,(m=l,…,q) 尽可能接近
就是把神经细胞原有的阶跃式输 出曲线钝化为一光滑曲线
BP神经网络
BP神经网络计算
BP神经网络
Rumelhart,McClelland于1985年提出了BP网络的误差反向后传BP(Back Propagation)学习算法
David Rumelhart
J. McClelland
BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广 泛的神经网络模型之一。它的学习规则是使用最速下降法,通过反向传播来 不断调整网络的权值和阈值,使网络的误差平方和最小。
2016/4/22
隐层数
一般认为,增加隐层数可以降低网络误差(也有文献认为不一定 能有效降低),提高精度,但也使网络复杂化,从而增加了网络的 训练时间和出现“过拟合”现象。 Hornik等早已证明:若输入层和输出层采用线性转换函数,隐层采 用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近 任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参 考这一点,应优先考虑3层BP网络(即有1个隐层)。
神经网络及SVM简介
一、 神经网络发展历史
1.背景知识 以冯· 诺依曼型计算机为中心的信息处理技术的高 速发展,使得计算机在当今的信息化社会中起着十分重 要的作用。但是,当用它来解决某些人工智能问题时却 遇到了很大的困难。 例如,一个人可以很容易地识别他人的脸孔,但计 算机则很难做到这一点。 大脑是由生物神经元构成的巨型网络,它在本质上 不同于计算机,是一种大规模的并行处理系统,它具有 学习、联想记忆、综合等能力,并有巧妙的信息处理方 法。 人工神经网络来源于对人脑实际神经网络的模拟
注:不同版本Matlab的可修改参数列表可能不同。
5. BP网络的训练与泛化 网络训练
[ net, 训 练 后 网 络
训 练 跟 踪 信 息
tr, Y1,
网 络 实 际 输 出
E ] = train ( net, X, Y )
误 差 矩 阵 网 络 训 练 函 数 未 经 训 练 网 络 网 络 实 际 输 入 网 络 应 有 输 出
学习的类型
人工神经网络
人工神经元模型
x1 x2
w1 w2
. . .
Σ

s f()
yHale Waihona Puke Baidu
x1…xn表示与该神经元相连接的所有神经元的输入(出) w1…wn表示与相连接神经元的突触强度(连接权) θ 表示神经元的(电压)阈值。 f ( )表示激励函数,单调上升函数,且取有限值 神经元电位值: 神经元的输出值:y =f(s)
2. 常见训练函数
函数名 traingd traingdm traingdx trainrp
FR共轭梯度法
PR共轭梯度法 PB共轭梯度法 标量共轭梯度法
功能 梯度下降法 势能修正法 自调整学习效率法 恢复BP法 trainbfg trainoss trainlm trainbr
函数名 traincgf traincgp traincgb trainscg
人脑和CPU
神经细胞利用电-化学过程交换信号。输入信号来自另一 些神经细胞。这些神经细胞的轴突末梢(也就是终端)和 本神经细胞的树突相遇形成突触(synapse),信号就从 树突上的突触进入本细胞。信号在大脑中实际怎样传输是 一个相当复杂的过程,但就我们而言,重要的是把它看成 和现代的计算机一样,利用一系列的0和1来进行操作。就 是说,大脑的神经细胞也只有两种状态:兴奋(fire)和 不兴奋(即抑制)。发射信号的强度不变,变化的仅仅是 频率。神经细胞利用一种我们还不知道的方法,把所有从 树突上突触进来的信号进行相加,如果全部信号的总和超 过某个阀值,就会激发神经细胞进入兴奋(fire)状态, 这时就会有一个电信号通过轴突发送出去给其他神经细胞。 如果信号总和没有达到阀值,神经细胞就不会兴奋起来。
BFGS拟牛顿法
一步共轭 + 拟牛顿 LM法 Bayesian规范法
3. 激励函数 MATLAB中激励函数为
1 log sig ( x) 1 e x
e x e x tan sig ( x) x x e e
purelin( x) x
其字符串分别为:’logsig’,’tansig’,’purelin’
人脑和CPU
动物 蜗牛
蜜蜂 蜂雀 老鼠
神经细胞的数目(数量级) 10,000 (=10^4)
100,000 (=10^5) 10,000,000 (=10^7) 100,000,000 (=10^8)
人类 大象
10,000,000,000 (=10^10) 100,000,000,000 (=10^11)
n y(t ) f wi xi (t ) i 1
xn
wn
人工神经网络
激励函数的基本作用
控制输入对输出的激活; 对输入、输出进行函数转换; 将可能无限域的输入变换成指定的有限范围内的输出。
激励函数类型
阈值函数 线性函数 非线性函数
4. 可修改参数 除了需要输入A,B,{C},’trainfun’外,还有些默认的参数可 修改,如下表
参数名 net.trainParam.goal net.trainParam.epochs net.trainParam.show net.trainParam.lr net.trainParam.mc 功能 目标函数设定值 最大迭代次数 显示中间结果的周期 整批学习的学习效率 势能学习规则traingdm的势能率 缺省值 0 100 25 0.01 0.9
一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增 加隐层数更容易实现。
隐层节点数
在BP 网络中,隐层节点数的选择非常重要,它不仅对建立的神经 网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因, 但是目前理论上还没有一种科学的和普遍的确定方法。
目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样 本任意多的情况。 事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。 确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能 紧凑的结构,即取尽可能少的隐层节点数。 研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解 决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有 关。
相关文档
最新文档