基于matlab的bp神经网络应用毕业论文(编辑修改稿)内容摘要:
以至超过设计者原有的知识水平。 基于 MATLAB 的 BP 神经网络应用 9 BP神经网络的主要功能 目前,在人 工神经网络的实际应用中。 绝大部分的神经网络模型都采用 BP 神经网络及其变化形式。 它也是前向网络的核心部分,体现了人工神经网络的精华。 BP 网络主要用于以下 四方面 [3]。 ( 1) 函数逼近:用输入向量和相应的输出向量训练一个网络以逼近一个函数。 ( 2) 模式识别:用一个待定的输出向量将它与输入向量联系起来。 ( 3) 分类:把输入向量所定义的合适方式进行分类。 ( 4) 数据压缩:减少输出向量维数以便传输或存储。 BP 网络的 优点 以及局限性 BP 神经网络最主要的优点是具有极强的非线性映射能力 [12]。 理论上 , 对于一个三层和三层以上的 BP网络 , 只要隐层神经元数目足够多 , 该网络就能以任意精度逼近一个非线性函数。 其次 , BP 神经网络具有对外界刺激和输入信息进行联想记忆的能力。 这是因为它采用了分布并行的信息处理方式 , 对信息的提取必须采用联想的方式 , 才能将相关神经元全部调动起来。 BP 神经网络通过预先存储信息和学习机制进行自适应训练 , 可以从不完整的信息和噪声干扰中恢复原始的完整信息。 这种能力使其在图像复原、语言处理、模式识别等方面具有重要应用。 再次 , BP 神经网络对外界输入样本有很强的识别与分类能力。 由于它具有强大的非线性处理能力 , 因此可以较好地进行 非线性分类 , 解决了神经网络发展史上的非线性分类难题。 另外 , BP 神经网络具有优化计算能力。 BP 神经网络本质上是一个非线性优化问题 , 它可以在已知的约束条件下 , 寻找一组参数组合 , 使该组合确定的目标函数达到最小。 不过 , 其优化计算存在局部极小问题 , 必须通过改进完善 [13]。 由于 BP 网络 训练中稳定性要求学习效率很小,所以梯度下降法使得训练很慢。 动量法因为学习率的提高通常比单纯的梯度下降法要快一些,但在实际应用中还是速度不够,这两种方法通常只应用于递增训练。 多层神经网络可以应用于线性系统和非线性系统中,对于任 意函数模拟逼近。 当然,感知器和线性神经网络能够解决这类网络问题。 但是,虽然理论上是可行的,但实际上 BP 网络并不一定总能有解。 对于非线性系统,选择合适的学习率是一个重要的问题。 在线性网络中 , 学习率过大会导致训练过程不稳定。 相反,学习率过小又会造成训练时间过长。 和线性网络不同,对于非线性多层网络很难选择很好的学习率。 对那些快速训练算法,缺省参数值基本上都是最有效的设置 [10]。 非线性网络的误差面比线性网络的误差面复杂得多,问题在于多层网络中非线性传递函数 有 多个局部最优解。 寻优的过程与初始点的选择关系很大,初 始点如果更靠近局部最优点,而不是全局最优点,就不会得到正确的结果,这也是多层网络无法得到最优解的一个原因。 为了解决这个问题,在实际训练过程中,应重复选取多个初始点进行训练,以保证训练结果的全局最优性 [11]。 网络隐层神经元的数目也对网络 有 一定的影响。 神经元数目太少会造成网络的不适性,而神经元数目太多又会引起网络的过适性。 基于 MATLAB 的 BP 神经网络应用 10 3 BP 神经网络 在 实例 中的应用 快速发展的 Matlab 软件为神经网络理论的实现提供了一种便利的仿真手段。 Matlab 神经网络工具箱的出现,更加拓宽了神经网络的应用空间。 神经网络工具箱将很多原本需要手动计算的工作交给计算机,一方面提高了工作效率,另一方面,还提高了计算的准确度和精度,减轻了工程人员的 负担。 神经网络工具箱是在 MATLAB 环境下开发出来的许多工具箱之一。 它以人工神经网络理论为基础,利用 MATLAB 编程语言构造出许多典型神经网络的框架和相关的函数。 这些工具箱函数主要为两大部分。 一部分函数特别针对某一种类型的神经网络的,如感知器的创建函数、 BP 网络的训练函数 等。 而另外一部分函数则是通用的,几乎可以用于所有类型的神经网络,如神经网络仿真函数、初始化函数和训练函数等 [15]。 这些函数的 MATLAB 实现,使得设计者对所选定网络进行计算过程,转变为对函数的调用和参数的选择,这样一来, 网络设计人员可以 根据自己的的需要去 调 用工具箱 中有关的设计和训练程序, 从烦琐的编程中解脱出来,集中精力解决其他问题,从而提高了工作效率。 基于 MATLAB 的 BP 神经网络工具箱函数 最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和 BP 网络等。 对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便 [16]。 Matlab R2020神经网络工具箱中包含了许多用于 BP 网络分析与设计的函数, BP 网络的常用函数如表 所示。 表 BP 网络的常用 函数 表 函数类型 函 数名称 函数用途 前向网络创建函数 newcf 创建级联前向网络 Newff 创建前向 BP 网络 传递函数 logsig S 型的对数函数 tansig S 型的正切函数 purelin 纯线性函数 学习函数 learngd 基于梯度下降法的学习函数 learngdm 梯度下降动量学习函数 性能函数 mse 均方误差函数 msereg 均方误差规范化函数 显示函数 plotperf 绘制网络的性能 plotes 绘制一个单独神经元的误差曲面 plotep 绘制权值和阈值在误差曲面上的位置 errsurf 计算单个神经元的误差曲面 BP 网络创建函数 1) newff 基于 MATLAB 的 BP 神经网络应用 11 该函数用于创建一个 BP 网络。 调用格式为: =newff =newff(PR,[S1 S2..SN1],{TF1 TF2..TFN1},BTF,BLF,PF) 其中, =newff。 用于在对话框中创建一个 BP 网络。 为创建的新 BP 神经网络; PR为网络输入 向量取值范围的矩阵; [S1 S2„ SNl]表示网络 隐含层和输出层神经元的个数; {TFl TF2„ TFN1}表示网络隐含层和输出层的传输函数,默认为 ‘ tansig’ ; BTF 表示网络的训练函数,默认为 ‘ trainlm’ ; BLF 表示网络的权值学习函数,默认为 ‘ learngdm’ ; PF表示性能数,默认为 ‘ mse’。 2) newcf 函数用于创建级联前向 BP 网络, newfftd 函数用于创建一个存在输入延迟的前向网络。 神经元上的传递函数 传递函数是 BP 网络的重要组成部分。 传递函数又称为激活函数,必须是连续可微的。 BP 网络经常采用 S 型的对数或 正切函数和线性函数。 1) logsig 该传递函数 为 S 型的对数函数。 调用格式为: A=logsig( N) info=logsig( code) 其中, N: Q 个 S 维 的输入列向量; A:函数返回值,位于区间( 0, 1)中; 2) tansig 该函数为双曲正切 S 型传递函数。 调用格式为: A=tansig( N) info=tansig( code) 其中, N: Q 个 S 维的输入列向量; A:函数返回值,位于区间 ( 1, 1)之间。 3) purelin 该函数为线性传递函数。 调用格式为: A=purelin( N) info=purelin( code) 基于 MATLAB 的 BP 神经网络应用 12 其中, N: Q 个 S 维的输入列向量; A:函数返回值, A=N。 BP 网络学习函数 1) learngd 该函数为梯度下降权值 /阈值学习函数,它通过神经元的输入和误差,以及权值和阈值的学习效率,来计算权值或阈值的变化率。 调用格式为: [dW,ls]=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS) [db,ls]=learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS) info=learngd(code) 2) learngdm 函数为梯度下降动量学习函数,它利用神经元的输入和误差、权值或阈值的学习速率和动量常数,来计算权值或阈值的变化率。 BP 网络训练函数 1) train 神经网络训练函数,调用其他训练函数,对网络进行训练。 该函数的调用格式为: [,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai) [,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai,VV,TV) 2) traingd 函数为梯度下降 BP 算法函数。 traingdm 函数为梯度下降动 量 BP 算法函数。 BP 网络 在 函数逼近中 的应用 问题的提出 BP 网络由很强的映射能力,主要用于模式识别分类、函数逼近、函数压缩等。 下面将通过实例来说明 BP 网络在函数逼近方面的应用。 要求设计一个 BP网络, 逼近以下函数: g(x)=1+sin(k*pi/4*x), 实现对 该 非线性函数的逼近。 其中,分别令 k=1, 2, 4进行仿真,通过调节参数(如隐藏层节点个数等)得出信号的频率与隐层节点之间,隐层节点与函数逼近能力之间的关系。 基于 BP神经网络逼近函数 步骤 1: 假设频率参数 k=1, 绘制 要逼近的非线性 函数的曲线。 函数的曲线如图 所示 基于 MATLAB 的 BP 神经网络应用 13 k=1。 p=[1:.05:8]。 t=1+sin(k*pi/4*p)。 plot( p, t, 39。 39。 ); title(39。 要逼近的非线性函数 39。 )。 xlabel(39。 时间 39。 )。 ylabel(39。 非线性函数 39。 )。 图 要逼近的 非线性函数曲线 步骤 2: 网络的建立 应用 newff()函数建立 BP 网络结构。 隐层神经元数目 n 可以改变,暂设为 n=3,输出层有一。基于matlab的bp神经网络应用毕业论文(编辑修改稿)
相关推荐
b)。 subplot(4,1,1)。 plot(y1)。 subplot(4,1,2)。 图 34 方波信号 图 0 50 100 15032101230 50 100 1503210123课程设计说明书 8 plot(y2)。 subplot(4,1,3)。 plot(y3)。 subplot(4,1,4)。 plot(y4)。 输出正弦叠加信号的波形 如图 35 所示 上图由上向下
联,误差平方小的滤波器不能保证没有窄而大的波纹出现,像吉布斯效应那样.第 2种方法直接控制通带波动和阻带衰减,最具针对性,是滤波器的最 优化设计方法.因此,采用 MATLAB 信号处理工具箱提供的函数,运用最优化等波纹设计法实现数字 FIR 滤波器的设计和仿真. 完整的最优化等波纹滤波器设计,除了切比雪夫等波纹逼近公式外,还要考虑: ( 1)滤波器采样点数 n 的确定; ( 2)
限长单位 冲激响应系统”,简称为 IIR 系统。 无限长单位冲激响应( IIR) 滤波器有以下几个特点 : ( 1) 系统的单位冲激响应 h(n)是无限长; ( 2) 系统函数 H(z)在有限 z 平面( 0|z| ); ( 3) 结构上存在着输出到输入的反馈,也就是结构上是递归型的。 IIR 滤波器 采用递归型结构,即结构上带有反馈环路。 同一种系统函数 H( z) 可以有多种不同的结构
() 简单的线性系统实例)2()1()()2()1()( nxnxnxnynyny ( ) 3)时变与时不变系统的仿真。 时不变系统实例:)2(24 )1(49 )(24 )2()1()( nxnxnxnynyny () 时变系统实例: )1()()( nxnnxny () 仿真并比较这两个系统。 2 线性时不变系统仿真 1)冲激响应的计算 用
为伪随机序列,并且可以代替白噪声用于需要随机信号的场合,例如测试系统性能。 更重要的是,它具有良好的相关特性,可以用于码分复用、多址接入、测距、密码、扩展频谱通信和分离多径信号等许多领域。 伪随机序列不止一种。 其中以 m 序列最为重要,并得到广泛应用。 本课题主要是用正交码做为“载波”,所以只对 伪随机码的介绍只到这里,不作太详细的介绍。 码组正交 设“ +1”和“ 1”表示 二进制码元
. 81ω /π幅度(H) 图 Chebyshev I型的 MATLAB仿真 同样,我们也可以设计出 Chebyshev II 型的 M 程序: Fs=1000。 Flp=300。 Fls=400。 Wp=2*Flp/Fs。 Ws=2*Fls/Fs。 Rp=1。 Rs=30。 [N,Wn]=cheb2ord(Wp,Ws,Rp,Rs)。 [b,a]=cheby2(N,Rs,Wn)。 [hw