神经网络实用教程义_第1页
神经网络实用教程义_第2页
神经网络实用教程义_第3页
神经网络实用教程义_第4页
神经网络实用教程义_第5页
已阅读5页,还剩218页未读 继续免费阅读

下载本文档

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

文档简介

1、神经网络实用教程神经网络实用教程学习资料与课程内容学习资料与课程内容2021-11-72教材教材书名:神经网络实用教程出版社:机械工业出版社出版日期:2008年2月作者:张良均 曹晶 蒋世忠2021-11-732021-11-74课件、实验及学习支持网站1、智能中国网: 2、神经网络在线: http:/ :细胞体细胞体(cell body) (cell body) 树突树突(dendrite)(dendrite)轴突轴突(axon)(axon)突触突触(synapse) (synapse) 用来完成神经元间信息的接收、传递和处理。用来完成神经元间信息的接收、传递和处理。人类大脑皮层约有人类大脑

2、皮层约有100100亿个神经元,亿个神经元,6060亿个神经亿个神经突触以及它们的连接体突触以及它们的连接体2021-11-792021-11-710 存存储储器器 指指令令 输输入入设设备备 运运算算器器 输输出出设设备备 控控制制器器冯冯.诺诺依依曼曼体体系系计计算算机机记忆与联想能力记忆与联想能力学习与认知能力学习与认知能力信息加工能力信息综合能力信息综合能力信息处理速度信息处理速度 2021-11-7.2人工神经元模型人工神经元模型p人工神经元是人工神经网络操作的基本信息处理人工神经元是人工神经网络操作的基本信息处理单位单位, ,是神经网络设计的基础。是神经网络设计

3、的基础。p人工神经元模型可以看成是由三种基本元素组成:人工神经元模型可以看成是由三种基本元素组成:(1)一组连接 连接强度由各连接上的权值表示,权值可以取正值也可以取负值,权值为正表示激活,权值为负表示抑制。(2)一个加法器 用于求输入信号对神经元的相应突触加权之和。(3)一个激活函数 用来限制神经元输出振幅。激活函数也称为压制函数,因为它将输入信号压制(限制)到允许范围之内的一定值。 另外,可以给一个神经元模型加一个外部偏置,其作另外,可以给一个神经元模型加一个外部偏置,其作用是增加或降低激活函数的网络输入。用是增加或降低激活函数的网络输入。 2021-11-7.2人工神

4、经元模型人工神经元模型2021-11-7.2人工神经元模型人工神经元模型p一个神经元可以用以下公式表示:一个神经元可以用以下公式表示:m1kikiiuw xf()kkkyub2021-11-7.2人工神经元模型人工神经元模型p激活函数主要的三种形式:激活函数主要的三种形式:阶梯函数分段线性函数10f00vvv( ) 1, 1f, 111, 1vvvvv 2021-11-7.2人工神经元模型人工神经元模型p非线性函数非线性函数单极s型函数双极s型函数2021-11-7.3神经网络的结构及工作方式神经网络的结构及工作方

5、式p人工神经网络是一个由许多简单的并行人工神经网络是一个由许多简单的并行工作的处理单元组成的系统,其功能取决工作的处理单元组成的系统,其功能取决于网络的结构、连接强度以及各单元的处于网络的结构、连接强度以及各单元的处理方式理方式p根据神经元的不同连接方式,可将神经根据神经元的不同连接方式,可将神经网络分为两大类:网络分为两大类:分层网络相互连接型网络 2021-11-7.3神经网络的结构及工作方式神经网络的结构及工作方式p分层网络分层网络单纯的前向网络具有反馈的前向网络 层内互联的前向网络p相互连接型网络相互连接型网络 2021-11-7.3神经网络的结

6、构及工作方式神经网络的结构及工作方式2021-11-7191.1.4 神经网络的学习p学习方式学习方式有导师学习(有监督学习)无导师学习(无监督学习)再励学习2021-11-7201.1.4 神经网络的学习p学习算法:学习算法是指针对学习问题学习算法:学习算法是指针对学习问题的明确规则,不同的学习算法对神经元的的明确规则,不同的学习算法对神经元的权值调整的表达式是不同的。权值调整的表达式是不同的。p算法分类算法分类hebb学习算法 学习算法随机学习算法竞争学习算法2021-11-7211.1.4 神经网络的学习phebbhebb学习算法学习算法由donald o. hebb提出。如果两个神经元

7、同时兴奋,则它们之间的突触连接加强。如果神经元 是神经元 的上层结点,用 分别表示两神经元的激活值(输出), 表示两个神经元之间的连接权,则hebb学习规则可以表示为: 式中式中 表示学习速率表示学习速率hebb学习规则是人工神经网络学习的基本规则,几乎所有神经网络的学习规则都可以看作hebb学习规则的变形ij,ijv vijwijijwvv2021-11-7221.1.4 神经网络的学习p 学习算法学习算法误差校正学习算法是根据神经网络的输出误差对神经元的连接强度进行修正,属于有导师学习 权值调整公式:调整目标是使下述公式所表达的误差为最小ijjiwv q211( )( )2oooed ky

8、 k2021-11-7231.1.4 神经网络的学习p随机学习算法随机学习算法误差学习算法通常采用梯度下降法,因此存在局部最小问题,随机学习算法通过引入不稳定因子来处理这种情况。经典随机学习算法模拟退化算法模拟退化算法遗传算法。遗传算法。 2021-11-7241.1.4 神经网络的学习p竞争学习算法竞争学习算法竞争学习属于无导师算法 神经元通过互相竞争来做出不同的响应竞争获胜的神经元按规则修正权值经典竞争学习神经网络自组织特征映射网络自组织特征映射网络(self-organization map(self-organization map,som)som)自适应共振网络自适应共振网络(ada

9、ptive resonace theory(adaptive resonace theory,art) art) 2021-11-7251.2 神经网络的特点及其应用p神经网络的特点神经网络的特点 并行分布式处理 非线性处理 具有自学习功能 神经网络可采用硬件实现 2021-11-7261.2 神经网络的特点及其应用p神经网络的应用领域神经网络的应用领域 语音识别语音识别娃娃语音识别娃娃图像识别与理解人脸检测人脸检测2021-11-7271.2 神经网络的特点及其应用p神经网络的应用领域神经网络的应用领域机器人智能故障检测智能故障检测医学应用医学图像处理医学图像处理2021-11-728p神经

10、网络的应用领域神经网络的应用领域国防军事应用航天器姿态控制航天器姿态控制导弹的智能引导导弹的智能引导 2021-11-729小结小结p生物神经网络构成生物神经网络构成p人工神经网络模型人工神经网络模型p人工神经网络结构及工作方式人工神经网络结构及工作方式p人工神经网络学习方法人工神经网络学习方法p人工神经网络特点人工神经网络特点p人工神经网络应用人工神经网络应用2.1matlab2.1matlab快速入门快速入门2021-11-7312.1matlab2.1matlab快速入门快速入门p2.1.1 matlab2.1.1 matlab界面组成界面组成p2.1.2 matlab2.1.2 mat

11、lab基本运算基本运算 p2.1.3 matlab2.1.3 matlab绘图函数绘图函数2021-11-7322.1.1 matlab界面组成工作空间浏览器窗工作空间浏览器窗命令行窗口命令行窗口命令历史窗口命令历史窗口当前目录窗口当前目录窗口2021-11-7332.1.1 matlab界面组成pmatlab界面组成命令行窗口命令行窗口命令历史窗口命令历史窗口 工作空间浏览器窗口工作空间浏览器窗口 当前目录窗口当前目录窗口编辑调试窗口编辑调试窗口2021-11-7342.1.1 matlab界面组成p在matlab主窗口中,点击“start”“desktop tools”“editor”即可

12、打开编辑调试窗口。2021-11-7352.1.2 matlab2.1.2 matlab基本运算基本运算 p基本运算基本运算 (5*2+1.3-0.8)*10/25 ans =4.2000 x = (5*2+1.3-0.8)*102/25 x = 42 变量命名规则第一个字母必须是英文字母;第一个字母必须是英文字母; 字母间不可留空格;字母间不可留空格;最多只能有最多只能有1919个字母,个字母,matlabmatlab会忽略多余字母。会忽略多余字母。 2021-11-7362.1.2 matlab2.1.2 matlab基本运算基本运算p基本运算基本运算若不想让matlab每次都显示运算结果

13、,只需在运算式最后加上 “;”即可matlab可同时执行数个命令,只要以逗号或分号将命令隔开: x = sin(pi/3); y = x2; z = y*10, z = 7.5000 若一个数学运算式太长,可用三个句点将其延伸到下一行: z = 10*sin(pi/3)* . sin(pi/3); 2021-11-7372.1.2 matlab2.1.2 matlab基本运算基本运算p matlab matlab的查询命令的查询命令键入help inv即可得知有关inv命令的用法p向量与矩阵的表示及运算向量与矩阵的表示及运算向量的表示方法与运算 x = 1 3 5 2; %表示一个行向量 y

14、= 2*x+1 y = 3 7 11 5 2021-11-7382.1.2 matlab2.1.2 matlab基本运算基本运算p向量与矩阵的表示及运算向量与矩阵的表示及运算更改、增加或删除向量中的元素y(3) = 2 % 更改第三个元素 y = % 更改第三个元素后的结果3 7 2 5 y(6) = 10 % 加入第六个元素 y = %加入第六个元素后的结果3 7 2 5 0 10 y(4) = % 删除第四个元素 y = %删除第四个元素后的结果 3 7 2 0 10 2021-11-7392.1.2 matlab2.1.2 matlab基本运算基本运算p向量与矩阵的表示及运算向量与矩阵的

15、表示及运算向量的一个元素或一部分向量的运算x(2)*3+y(4) % 取出x的第二个元素和y的第四个元素来做运算 ans = 9 y(2:4)-1 %用y的第二至第四个元素分别做减1运算,2:4代表向量中 的第2、3、4号元素 ans = 6 1 -1转置z = x z = x z = z = 1 1 3 3 5 5 2 2 2021-11-7402.1.2 matlab2.1.2 matlab基本运算基本运算p矩阵的表示方法和各种处理方式矩阵的表示方法和各种处理方式表示在命令窗口中输入 a = 1 2 3 4; 5 6 7 8; 9 10 11 12 结果为:a = 1 2 3 4 5 6

16、7 8 9 10 11 12 2021-11-7412.1.2 matlab2.1.2 matlab基本运算基本运算p矩阵的表示方法和各种处理方式矩阵的表示方法和各种处理方式运算a(2,3) = 5 % 将矩阵第二行,第三列的元素值置为5 a = %置值后的矩阵1 2 3 4 5 6 5 8 9 10 11 12 b = a(2,1:3) %取出矩阵a中第二行第一个到第三个元素,构成 矩阵b b = 5 6 5 a = a b %将b转置后,再以列向量并入a a = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 2021-11-7422.1.2 matlab2.1.2 ma

17、tlab基本运算基本运算p矩阵的表示方法和各种处理方式矩阵的表示方法和各种处理方式运算a(:, 2) = %删除第二列,符号:代表所有列 a = 1 3 4 5 5 5 8 6 9 11 12 5 a = a; 4 3 2 1 %加入第四行 a = 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 a(1 4, :) = % 删除第一和第四行,符号:代表所有行 a = 5 5 8 6 9 11 12 5 2021-11-7432.1.3 matlab绘图函数p二维绘图函数二维绘图函数plot plot plot(x) 当x为向量时,则以x元素为纵坐标,以相应元素的下标作为横坐

18、标来绘图。当x为实数矩阵时,则按列绘制每列元素值相对其下标的连线图,图中曲线x阵的列数。plot(x,y) 如果x、y为同维向量,则绘制以x、y为横纵坐标的连线图。如果x是向量,y是一个与x同维的矩阵,则绘制多条不同色彩的连线图,连线条数等于y阵的另一维数。如果x和y是同维矩阵,则以x、y对应元素为横纵坐标分别绘制曲线,曲线的条数等于矩阵的行数。plot(x,y,s) s表示线条的颜色和类型,如s=r+,表示各点是由红色的+号绘制的,如果没有特别说明,默认的类型为蓝色的线条。2021-11-7442.1.3 matlab绘图函数p二维绘图函数二维绘图函数plotplothold on设置在同一

19、张图上绘制多条曲线设置在同一张图上绘制多条曲线 hold off取消在同一张图上绘制多条曲线设置取消在同一张图上绘制多条曲线设置figure下次的图和已经绘制的图将不在同一张图上下次的图和已经绘制的图将不在同一张图上 2021-11-7452.1.3 matlab绘图函数p绘图函数使用示例绘图函数使用示例%横坐标变化范围为-6 6,每间隔0.1个单位绘制一次x=-6:0.1:6;y1=cos(x);y2=cos(2*x);y3=cos(3*x);%以x、y为横纵坐标绘图plot(x,y1);%保存绘图句柄,使下一次的图和已经绘制的图在同一张图上hold onplot(x,y2,r+);%关闭绘

20、图句柄下次的图和已经绘制的图将不在现一张图上hold off%打开一张新的绘图面figure%以x、y为横纵坐标,以蓝色的*绘图plot(x,y3,b*);2021-11-7462.1.3 matlab绘图函数2021-11-7472.1.3 matlab绘图函数2021-11-748小结小结pmatlabmatlab快速入门快速入门pmatlabmatlab界面组成界面组成pmatlabmatlab基本运算基本运算pmatlabmatlab绘图函数绘图函数2.22.2感知器神经网络模型感知器神经网络模型与学习算法与学习算法2021-11-.1单层感知器单层感知器p概述概述由

21、美国学者rosenblatt在1957年首次提出学习算法是rosenblatt在1958年提出的 包含一个突触权值可调的神经元 属于前向神经网络类型 只能区分线性可分的模式 ieee设立以其名字命名的奖项 2021-11-.1单层感知器单层感知器p单层感知器模型单层感知器模型2021-11-.1单层感知器单层感知器p单层感知器工作原理单层感知器工作原理 单层感知器可将外部输入分为两类和。当单层感知器可将外部输入分为两类和。当感知器的输出为感知器的输出为+1+1时,输入属于时,输入属于 类,当感知类,当感知器的输出为器的输出为-1-1时,输入属于时,输入属于

22、类,从而实现两类,从而实现两类目标的识别。在维空间,单层感知器进行模类目标的识别。在维空间,单层感知器进行模式识别的判决超平面由下式决定:式识别的判决超平面由下式决定: 10miiiw xb1l2l2021-11-.1单层感知器单层感知器p单层感知器工作原理单层感知器工作原理 对于只有两个输入的判别边界是直线(如下式所示),选择合适的学习算法可训练出满意的 和 ,当它用于两类模式的分类时,相当于在高维样本空间中,用一个超平面将两类样本分开。1 12 20wxwxb 1w2w2021-11-.2单层感知器的学习算法单层感知器的学习算法p单层感知器学习算法思想单

23、层感知器学习算法思想基于迭代的思想,通常是采用误差校正学习规则的学习算法。可以将偏差作为神经元突触权值向量的第一个分量加到权值向量中 输入向量和权值向量可分别写成如下的形式:令上式等于零,可得到在维空间的单层感知器的判别超平面。 t121,mnxnxnxn x t12,mnb nw nwnwnw2021-11-.2单层感知器的学习算法单层感知器的学习算法p单层感知器学习算法单层感知器学习算法第一步,设置变量和参量。 为激活函数为激活函数, , 为网络实际输出,为网络实际输出, 为期望输出,为期望输出, 为学习为学习速率,速率, 为迭代次数,为迭代次数, 为实际输出与期望输出的

24、误差。为实际输出与期望输出的误差。 第二步,初始化 给权值向量给权值向量 的各个分量赋一个较小的随机非零值,置的各个分量赋一个较小的随机非零值,置 第三步,输入一组样本 ,并给出 它的期望输出 。 第四步,计算实际输出:第五步,求出期望输出和实际输出求出差根据误差判断目前输出是否满足条件,一般为对所有样本误差为零或者均根据误差判断目前输出是否满足条件,一般为对所有样本误差为零或者均小于预设的值,则算法结束,否则将值增加小于预设的值,则算法结束,否则将值增加1 1,并用下式调整权值:,并用下式调整权值:然后转到第三步,进入下一轮计算过程然后转到第三步,进入下一轮计算过程 f( ) ( )ny(

25、)ndne(0)w0n 121,mnxnxnxn x( )nd0( )f( )( )miiiy nwn x n( )( )ed ny n 1w nw nd ny nx n2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现 p matlab matlab中单层感知器常用工具函数名称中单层感知器常用工具函数名称和基本功能和基本功能 函函 数数 名名功功 能能newp()生成一个感知器生成一个感知器hardlim()硬限幅激活函数硬限幅激活函数learnp()感知器的学习函数感知器的学习函数train()神经网络训练函数神经网络训练函数sim()神经网

26、络仿真函数神经网络仿真函数mae()平均绝对误差性能函数平均绝对误差性能函数plotpv()在坐标图上绘出样本点在坐标图上绘出样本点plotpc()在已绘制的图上加分类线在已绘制的图上加分类线2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现pnewp()newp()功能:创建一个感知器神经网络的函数格式:net = newp(pr,s,tf,lf)说明:net为生成的感知机神经网络;pr为一个r2的矩阵,由r组输入向量中的最大值和最小值组成;s表示神经元的个数;tf表示感知器的激活函数,缺省值为硬限幅激活函数hardlim;lf表示网络的学习函

27、数,缺省值为learnp phardlim()hardlim()功能 硬限幅激活函数格式 a = hardlim(n) 说明 函数hardlim(n)在给定网络的输入矢量矩阵n时,返回该层的输出矢量矩阵a。当n中的元素大于等于零时,返回的值为l;否则为0。也就是说,如果网络的输入达到阈值,则硬限幅传输函数的输出为1;否则,为0。 plearnp()learnp()功能 感知机的权值和阈值学习函数 2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现ptrain()train()功能 神经网络训练函数格式 net,tr,y,e,pf,af = tra

28、in(net,p,t,pi,ai,vv,tv)说明 net为训练后的网络;tr为训练记录;y为网络输出矢量;e为误差矢量;pf为训练终止时的输入延迟状态;af为训练终止时的层延迟状态;net为训练前的网络;p为网络的输入向量矩阵;t表示网络的目标矩阵,缺省值为0;pi表示初始输入延时,缺省值为0;ai表示初始的层延时,缺省值为0; vv为验证矢量(可省略);tv为测试矢量(可省略)。网络训练函数是一种通用的学习函数,训练函数重复地把一组输入向量应用到一个网络上,每次都更新网络,直到达到了某种准则,停止准则可能是达到最大的学习步数、最小的误差梯度或误差目标等。2021-11-72.2.3 2.2

29、.3 单层感知器的单层感知器的matlabmatlab实现实现psim()sim()功能 对网络进行仿真格式 (1) y(1) y,pfpf,afaf,e e,perf = sim(netperf = sim(net,p p,pipi,aiai,t) t) (2) y(2) y,pfpf,afaf,e e,perf = sim(netperf = sim(net,q tsq ts,pipi,aiai,t) t) (3) y(3) y,pfpf,afaf,e e,perf = sim(netperf = sim(net,q q,pipi,aiai,t)t)说明 y为网络的输出;pf表示最终的输入

30、延时状态;af表示最终的层延时状态;e为实际输出与目标矢量之间的误差;perf为网络的性能值;net为要测试的网络对象;p为网络的输入向量矩阵;pi为初始的输入延时状态(可省略);ai为初始的层延时状态(可省略);t为目标矢量(可省略)。式(1)、(2)用于没有输入的网络,其中q为批处理数据的个数,ts为网络仿真的时间步数。2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现p mae() mae()功能 平均绝对误差性能函数格式 perf=mae(e,w,pp) 说明 perf表示平均绝对误差和, e为误差矩阵或向量(网络的目标向量与输出向量之差

31、), w为所有权值和偏值向量(可忽略), pp为性能参数(可忽略)。 2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现p plotpv() plotpv()功能 绘制样本点的函数格式 (1) plotpv(p,t) (2) plotpv(p,t,v)说明 p定义了n个2或3维的样本,是一个2n维或3n维的矩阵;t表示各样本点的类别,是一个n维的向量;v=x_min x_max y_min y_max,为一设置绘图坐标值范围的向量。利用plotpv()函数可在坐标图中绘出给定的样本点及其类别,不同的类别使用不同的符号。如果t只含一元矢量,则目标为

32、0的输入矢量在坐标图中用符号o表示: 目标为1的输入矢量在坐标图中用符号+表示。如果t含二元矢量,则输入矢量在坐标图中所采用的符号分别如下:0 0用o表示;0 1用+表示:1 0用*表示;1 1用表示。 2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现pplotpc()plotpc()功能 在存在的图上绘制出感知器的分类线函数格式 (1) plotpc(w,b) (2) plotpc(w,b,h)说明 硬特性神经元可将输入空间用一条直线(如果神经元有两个输入),或用一个平面(如果神经元有三个输入),或用一个超平面(如果神经元有三个以上输入)分成

33、两个区域。plotpc(w,b)对含权矩阵w和偏差矢量b的硬特性神经元的两个或三个输入画一个分类线。这一函数返回分类线的句柄以便以后调用。plotpc(w,b,h)包含从前的一次调用中返回的句柄。它在画新分类线之前,删除旧线。2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现p使用使用matlabmatlab实现神经网络的步骤如下:实现神经网络的步骤如下:第一步 根据应用创建一个神经网络;第二步 设定神经网络的训练参数,利用给定样本对创建的神经网络进行训练;第三步 输入测试数据,测试训练好的神经网络的性能。p例例2-12-1:见:见神经网络实用教

34、程神经网络实用教程第第2222页页 2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现p= -0.4 -0.5 0.6; 0.9 0 0.1; p= -0.4 -0.5 0.6; 0.9 0 0.1; % %给定训练样本数据给定训练样本数据t= 1 1 0; t= 1 1 0; % %给定样本数据所对应的类别,用给定样本数据所对应的类别,用1 1和和0 0来表示两种类别来表示两种类别% %创建一个有两个输入、样本数据的取值范围都在创建一个有两个输入、样本数据的取值范围都在-1-1,11之间,并且之间,并且% %网络只有一个神经元的感知器神经网络网

35、络只有一个神经元的感知器神经网络net=newp(-1 1;-1 1,1);net=newp(-1 1;-1 1,1);net.trainparam.epochs = 20; net.trainparam.epochs = 20; % %设置网络的最大训练次数为设置网络的最大训练次数为2020次次net=train(net,p,t); net=train(net,p,t); % %使用训练函数对创建的网络进行训练使用训练函数对创建的网络进行训练y=sim(net,p) y=sim(net,p) % %对训练后的网络进行仿真对训练后的网络进行仿真e1=mae(y-t) e1=mae(y-t) %

36、 %计算网络的平均绝对误差,表示网络错误分类计算网络的平均绝对误差,表示网络错误分类q=0.6 0.9 -0.1; -0.1 -0.5 0.5; q=0.6 0.9 -0.1; -0.1 -0.5 0.5; % %检测训练好的神经网络的性能检测训练好的神经网络的性能y1=sim(net,q) y1=sim(net,q) % %对网络进行仿真,仿真输出即为分类的结果对网络进行仿真,仿真输出即为分类的结果figure; figure; % %创建一个新的绘图窗口创建一个新的绘图窗口plotpv(q,y1); plotpv(q,y1); % %在坐标图中绘制测试数据在坐标图中绘制测试数据plotpc

37、(net.iw1,net.b1) plotpc(net.iw1,net.b1) % %在坐标图中绘制分类线在坐标图中绘制分类线2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现p例例2-12-1运行后在命令行窗口中得到的结果如下:运行后在命令行窗口中得到的结果如下: trainc, epoch 0/20 trainc, epoch 0/20% %使用使用trainctrainc作为神经网络的训练函数,第作为神经网络的训练函数,第0 0次训练,最次训练,最% %大训练次数为大训练次数为2020trainc, epoch 3/20trainc, ep

38、och 3/20% %达到目标误差要求,结束训练达到目标误差要求,结束训练trainc, performance goal met.trainc, performance goal met.y =y = 1 1 0 1 1 0e1 =e1 = 0 0y1 =y1 = 0 0 1 0 0 1 2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现p例例2-12-1训练误差曲线训练误差曲线 2021-11-72.2.3 2.2.3 单层感知器的单层感知器的matlabmatlab实现实现p例例2-12-1训练后的分类线训练后的分类线 2021-11-72

39、.2.4 2.2.4 多层感知机多层感知机 p单层感知器的缺点是只能解决线性可分的分类单层感知器的缺点是只能解决线性可分的分类模式问题模式问题p采用多层网络结构可以增强网络的分类能力,采用多层网络结构可以增强网络的分类能力,即在输入层与输出层之间增加一个隐含层,从即在输入层与输出层之间增加一个隐含层,从而构成多层感知器而构成多层感知器(multilayer perceprons (multilayer perceprons ,mlp)mlp)。p由输入层、隐含层由输入层、隐含层( (可以是一层或者多层可以是一层或者多层) )和输和输出层构成的神经网络称为多层前向神经网络。出层构成的神经网络称为

40、多层前向神经网络。 2021-11-72.2.4 2.2.4 多层感知机多层感知机 p多层感知器的拓扑结构多层感知器的拓扑结构 2021-11-72.2.4 2.2.4 多层感知机多层感知机p多层感知器的特点多层感知器的特点含有一层或多层隐单元,从输入模式中获得了更多有用的信息,使网络可以完成更复杂的任务。每个神经元的激活函数采用可微的函数sigmoidsigmoid函数函数多个突触使得网络更具连通性 具有独特的学习算法 bpbp算法算法 2021-11-7小结小结p单层感知器模型及工作原理单层感知器模型及工作原理p单层感知器的学习算法单层感知器的学习算法p单层感知器的单层感知器的matlab

41、matlab实现实现p单层感知器的应用示例单层感知器的应用示例p多层感知器概述多层感知器概述智能中国网提供学习支持智能中国网提供学习支持2.3 2.3 线性神经网络线性神经网络 2.3.1 线性神经元网络模型p线性神经元模型线性神经元模型它与感知器的主要不同之处在于其神经元有一个线性激活函数,这允许输出可以是任意值,而不仅仅只是像感知器中那样只能取0或1。2.3.1 线性神经元网络模型p线性神经元激活函数线性神经元激活函数2.3.1 线性神经元网络模型p线性神经元网络分类图示双输入双输入输出如下式所示输出如下式所示111212yw pw pb2.3.1 线性神经元网络模型p线性神经网络的结构线

42、性神经网络的结构 2.3.2 线性神经网络的学习算法pwidrow-hoffwidrow-hoff学习规则学习规则又称为最小均方误差lms(least mean square error)学习算法, 由widrow-hoff提出,属于有导师学习算法lms学习规则定义如下: 目标是通过调节权值,使是通过调节权值,使msemse从误差空间的某点开始,沿着从误差空间的某点开始,沿着msemse的斜面向下滑行的斜面向下滑行, ,最终使最终使msemse达到最小值。达到最小值。221111( )( )( )mmkkmsee kd ky kmmbernard widrowbernard widrow2.3

43、.2 线性神经网络的学习算法p算法实现步骤第一步第一步: :初始化初始化给各个连接赋一个较小的随机值第二步:输入一个样本,计算连接权值第二步:输入一个样本,计算连接权值的调整量的调整量 22ijijekeke kww 22ekeke kbb r11,2,ijiiijije ked kw p kbjsww2.3.2 线性神经网络的学习算法其中其中 表示第表示第 次循环中的第个输入向量。则有:次循环中的第个输入向量。则有:第三步:调整连接权值第三步:调整连接权值根据负梯度下降的原则,网络权值和阈值修正公式如下根据负梯度下降的原则,网络权值和阈值修正公式如下式中式中 为学习率为学习率, ,当其取较大

44、值时,可以加快网络的训练速当其取较大值时,可以加快网络的训练速度,但是如果其值太大,会导致网络稳定性的降低和训练误度,但是如果其值太大,会导致网络稳定性的降低和训练误差的增加。所以,为了保证网络进行稳定的训练,学习率的差的增加。所以,为了保证网络进行稳定的训练,学习率的值必须选择一个合适的值。值必须选择一个合适的值。 iije kp kw 1e kb k( )ip kt(1)( )2( )( )(1)( )2( )w kw ke kkb kb ke kp2.3.2 线性神经网络的学习算法第四步:计算均方误差第四步:计算均方误差第五步:判断误差是否为零或者是否第五步:判断误差是否为零或者是否达到

45、预先设定的要求。如果是,则结束达到预先设定的要求。如果是,则结束算法,否则输入下一个样本,返回第二算法,否则输入下一个样本,返回第二步进入下一轮求解过程步进入下一轮求解过程221111( )( )( )mmkkmsee kd ky kmm2.3.3 线性神经网络的matlab实现 pmatlabmatlab中线性神经网络相关的常用函数中线性神经网络相关的常用函数和基本功能和基本功能 函函 数数 名名功功 能能newlin()新建一个线性层新建一个线性层learnwh()widrow-hoff的学习函数的学习函数purelin()线性传输函数线性传输函数mse()最小均方误差性能函数最小均方误差

46、性能函数2.3.3 线性神经网络的matlab实现pmatlabmatlab中线性神经网络相关的常用函数和基本功能中线性神经网络相关的常用函数和基本功能newlin()功能功能 新建一个线性神经网络函数。新建一个线性神经网络函数。格式格式 (1) net = newlin (1) net = newlin (2) net = newlin(pr (2) net = newlin(pr,s s,idid,lr) lr) 说明说明 式式(1)(1)返回一个没有定义结构的空对象,并显示图形用户界返回一个没有定义结构的空对象,并显示图形用户界面函数面函数nntoolnntool的帮助文字;式的帮助文字

47、;式(2)(2)中中netnet为生成的线性神经网络;为生成的线性神经网络;prpr为网络输入向量中的最大值和最小值组成的矩阵为网络输入向量中的最大值和最小值组成的矩阵pminpmin,pmaxpmax;s s为输出向量的个数;为输出向量的个数;idid为输入延时向量(可省略);为输入延时向量(可省略);lrlr为学习速为学习速率(可省略),默认值为率(可省略),默认值为0.010.01。 learnwh( )功能功能 线性神经网络学习函数线性神经网络学习函数格式格式 (1) dw,ls = learnwh(w,p,z,n,a,t,e,gw,ga,d,lp,ls)(1) dw,ls = lea

48、rnwh(w,p,z,n,a,t,e,gw,ga,d,lp,ls) (2) db,ls = learnwh(b,ones(1,q),z,n,a,t,e,gw,ga,d,lp,ls) (2) db,ls = learnwh(b,ones(1,q),z,n,a,t,e,gw,ga,d,lp,ls) 2.3.3 线性神经网络的matlab实现pmatlabmatlab中线性神经网络相关的常用函数和基本功能中线性神经网络相关的常用函数和基本功能purelin()功能功能 纯线性传输函数纯线性传输函数格式格式 a = purelin(n)a = purelin(n)说明说明 函数函数purelin(n)

49、purelin(n)为返回网络输入向量为返回网络输入向量n n的输出矩阵的输出矩阵a a;神经元最简单的传输函数是简单地从神经元输入到输出的线神经元最简单的传输函数是简单地从神经元输入到输出的线性传输函数,输出仅仅被神经元所附加的偏差所修正,性传输函数,输出仅仅被神经元所附加的偏差所修正,newlinnewlin和和newlindnewlind函数建立的网络都可以用该函数做为传递函数建立的网络都可以用该函数做为传递函数。函数。mse()功能功能 均方误差性能函数均方误差性能函数格式格式 perf=mae(eperf=mae(e,w w,pp) pp) 说明说明 perfperf表示均方误差表示

50、均方误差,e,e为误差矩阵或向量为误差矩阵或向量( (网络的目标网络的目标向量与输出向量之差向量与输出向量之差),w),w为所有权值和偏值向量为所有权值和偏值向量( (可忽略可忽略) ), pppp为性能参数为性能参数( (可忽略可忽略) )。 2.3.3 线性神经网络的matlab实现p例例2-2 2-2 要求设计一个线性神经网络,寻找给定数据之间的线性关要求设计一个线性神经网络,寻找给定数据之间的线性关系。系。p=1.1 -1.3;t=0.6 1;% %创建一个只有一个输出,输入延时为创建一个只有一个输出,输入延时为0 0,学习速率为,学习速率为0.010.01的线性神经网络,的线性神经网

51、络,minmax(p)minmax(p)表示样表示样% %本数据的取值范围本数据的取值范围net=newlin(minmax(p),1,0,0.01);% %对创建的线性神经网络进行初始化,设置权值和阈值的初始值对创建的线性神经网络进行初始化,设置权值和阈值的初始值net=init(net);net.trainparam.epochs=500;% %设置网络训练后的目标误差为设置网络训练后的目标误差为0.00010.0001net.trainparam.goal=0.0001;net=train(net,p,t);y=sim(net,p)% %求解网络的均方误差值求解网络的均方误差值e=mse

52、(y-t) 2.3.3 线性神经网络的matlab实现p例例2-22-2的输出结果的输出结果% %使用使用trainbtrainb作为训练函数,最大训练次数为作为训练函数,最大训练次数为500500,开始训练时的均,开始训练时的均方误差值为方误差值为0.680.68,% %目标误差为目标误差为0.00010.0001 trainb, epoch 0/500, mse 0.68/0.0001.trainb, epoch 200/500, mse 0.000193748/0.0001.trainb, epoch 217/500, mse 9.87777e-005/0.0001.% %训练到训练到2

53、17217次时,达到目标误差要求,结束训练次时,达到目标误差要求,结束训练trainb, performance goal met.y = 0.5883 0.9922e = 9.8778e-005 2.3.3 线性神经网络的matlab实现p例例2-22-2的训练误差曲线的训练误差曲线 2.3.3 线性神经网络的matlab实现p原数据关系与线性神经网络逼近关系对比原数据关系与线性神经网络逼近关系对比注:两者仍存在误差,可以通过修改训练步数或精度来减少两者注:两者仍存在误差,可以通过修改训练步数或精度来减少两者的误差的误差小结小结p线性神经网络模型线性神经网络模型p线性神经网络激活函数线性神经

54、网络激活函数p神经网络学习算法神经网络学习算法p线性神经网络的线性神经网络的matlabmatlab实现实现p线性神经网络的局限性线性神经网络的局限性智能中国网提供学习支持智能中国网提供学习支持2.4 bp2.4 bp神经网络模型与学习算法神经网络模型与学习算法概述概述prumelhartrumelhart,mcclellandmcclelland于于19851985年提出了年提出了bpbp网络的误差反网络的误差反向后传向后传bp(back propagation)bp(back propagation)学习算法学习算法pbpbp算法基本原理算法基本原理利用输出后的误差来估计输出层的直接前导层

55、的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。 j. mcclelland david rumelhart 2.4.1 bp2.4.1 bp神经网络模型神经网络模型p三层三层bpbp网络网络1x2x1nx1y2y2ny1z2z3nz123n1t2tihwhjw- - -隐含层输出层输入层3nt2.4.1 bp2.4.1 bp神经网络模型神经网络模型p激活函数激活函数必须处处可导一般都使用一般都使用s s型函数型函数 p使用使用s s型激活函数时型激活函数时bpbp网络输入与输出关网络输入与输出关系系输入输出1122.nnnetx wx wx w

56、1f()1enetynet2.4.1 bp2.4.1 bp神经网络模型神经网络模型输出的导数211f ()(1)1e(1e)-netnetnetyy根据根据s s型激活函数的图形可知型激活函数的图形可知, ,对神经网络进行训练,应该将对神经网络进行训练,应该将netnet的值尽的值尽量控制在收敛比较快的范围内量控制在收敛比较快的范围内 2.4.2 bp2.4.2 bp网络的标准学习算法网络的标准学习算法p学习的过程:学习的过程:神经网络在外界输入样本的刺激下不断改变网络的连接权值,以使网络的输出不断地接近期望的输出。p学习的本质:学习的本质:对各连接权值的动态调整p学习规则:学习规则:权值调整

57、规则,即在学习过程中网络中各神经元的连接权变化所依据的一定的调整规则。2.4.2 bp2.4.2 bp网络的标准学习算法网络的标准学习算法- -算法思想算法思想p学习的类型:有导师学习学习的类型:有导师学习p核心思想:核心思想: 将输出误差以某种形式通过隐层向输入层逐层反传p学习的过程:学习的过程:信号的正向传播 误差的反向传播将误差分摊给各层的所有将误差分摊给各层的所有单元各层单元的误单元各层单元的误差信号差信号修正各单元权修正各单元权值值2.4.2 bp2.4.2 bp网络的标准学习算法网络的标准学习算法- -学习过程学习过程p正向传播:正向传播: 输入样本输入层各隐层输出层p判断是否转入

58、反向传播阶段:判断是否转入反向传播阶段: 若输出层的实际输出与期望的输出(教师信号)不符p误差反传误差反传 误差以某种形式在各层表示修正各层单元的权值p网络输出的误差减少到可接受的程度网络输出的误差减少到可接受的程度进行到预先设定的学习次数为止进行到预先设定的学习次数为止2.4.2 bp2.4.2 bp网络的标准学习算法网络的标准学习算法 p网络结构网络结构输入层有n个神经元,隐含层有p个神经元, 输出层有q个神经元p变量定义变量定义输入向量;隐含层输入向量;隐含层输出向量;输出层输入向量;输出层输出向量;期望输出向量; 12,nxxxx12,phihihihi12,pho hohoho12,

59、qyiyiyiyi12,qyoyoyoyo12,qdddod2.4.2 bp2.4.2 bp网络的标准学习算法网络的标准学习算法输入层与中间层的连接权值:隐含层与输出层的连接权值:隐含层各神经元的阈值:输出层各神经元的阈值:样本数据个数:激活函数: 误差函数:ihwf( ) howhb1,2,kmob211( )( )2qoooedkyo k2.4.2 bp2.4.2 bp网络的标准学习算法网络的标准学习算法p第一步,网络初始化第一步,网络初始化 给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值 和最大学习次数m。p第二步第二步, ,随机选取第随机选取第 个输入

60、样本及对应个输入样本及对应期望输出期望输出 k12( )( ),( ),( )nkx kx kx kx12( )( ),( ),( )qkd kdkdkod2.4.2 bp2.4.2 bp网络的标准学习算法网络的标准学习算法p第三步,计算隐含层各神经元的输入和第三步,计算隐含层各神经元的输入和输出输出1( )( )1,2,nhihihihikw x kbhp( )f( )1,2,hhho khi khp1( )( )1,2,pohohohyi kw ho kboq( )f( )1,2,ooyo kyi koq2.4.2 bp2.4.2 bp网络的标准学习算法网络的标准学习算法p第四步,利用网络

温馨提示

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

评论

0/150

提交评论