




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于BP网络数据分类设计 1 目录 前馈神经网络简介BP网络简介BP神经网络的工作原理BP网络的特点BP网络的建立及执行BP网络应用于模式分类BP网络的其他学习算法的应用结论 2 一 前馈神经网络简介 对于很多应用 一个确定的网络计算与确定的时间行为一样重要 网络架构允许中间单元的循环结构计算依靠神经元内部激活的输出值 即使输入不变化 输出也可能不同 直到网络内的计算达到稳定状态 单元之间不仅有单方向连接的网络 而且有反方向的网络 这些相反方向的网络称为前馈网络 3 一 前馈神经网络简介 前馈神经网络包括感知器网络和BP神经网络 感知器网络是最简单的前馈网络 主要用于模式分类 也可用在基于模式分类的学习控制和多模态控制中 感知器网络中神经元的变换函数采用的是符号函数 即输出为二值量1或 1 它主要用于模式分类 BP神经网络的神经元变换函数采用S形函数时 系统的输出量将为0 1之间的连续量 它可实现从输入到输出的任意非线性映 4 二 BP神经网络简介 BP神经网络即反向传播网络 这是由于该算法连接权的调整采用的是反向传播 BackPropagation 在人工神经网络的实际应用中 BP网络广泛应用于函数逼近 模式识别 分类 数据压缩等 80 90 的人工神经网络模型是采用BP网络或它的变化形式 它也是前馈网络的核心部分 体现了人工神经网络最精华的部分 5 三 BP神经网络的工作原理 6 三 BP神经网络的工作原理 BP神经元与其他神经元类似 不同的是BP神经元的传输函数为非线性函数 最常用的函数是和函数 有的输出层也采用线性函数 其输出为BP网络一般为多层神经网络 由BP神经网络构成的二层网络如图1 2所示 7 三 BP神经网络的工作原理 8 三 BP神经网络的工作原理 BP网络的信息从输入层流向输出层 因此是一种多层前馈神经网络 如果多层BP网络的输出层采用S形传输函数 如 其输出值将会限制在一个较小的范围内 0 1 而采用线性传输函数则可以取任意值 在确定了BP网络的结构后 要通过输入和输出样本集对网络进行训练 以及对网络的阈值和权值进行学习和修正 以使网络实现给定的输入输出映射关系 9 三 BP神经网络的工作原理 BP网络的学习过程包含两个过程 即正向传播和反向传播 1 正向传播 输入已知学习样本 通过设置的网络结构和前一次迭代的权值和阈值 从网络的第一层向后计算各神经元输出 2 反向传播 反向传播时 对权值和阈值进行修改 从最后一层向前计算各权值和阈值对总误差的影响 梯度 据此对各权值和阈值进行修改 以上两个过程反复交替 直到达到收敛为止 10 三 BP神经网络的工作原理 由于误差逐层往回传递 以修正层与层间的权值和阈值 所以称该算法为误差反向传播 backpropagation 算法 这种误差反传学习算法可以推广到有若干个中间层的多层网络 因此该多层网络常称之为BP网络 标准的BP算法 其权值的修正是沿着误差性能函数梯度的反方向进行的 11 四 BP网络的特点 1 BP网络具有以下主要优点 只有有足够多的隐含层结点和隐含层 BP网络可以逼近任意的非线性映射关系BP网络的学习算法属于局部逼近的方法 因此它具有较好的泛化能力2 BP网络的主要缺点如下 收敛速度慢容易陷入局部极值点难以确定隐含层和隐含层结点的个数 12 五 BP网络的建立及执行 1 建立BP网络首先需要选择网络的层数和每层的结点数 网络输入层和输出层的结点个数与输入变量个数及输出变量个数对应 隐含层结点的选择应遵循以下原则 尽量选取较少的隐含层结点 使网络尽量简单 一种方法是先设置较少结点 对网络进行训练 并测试网络的逼近能力 然后逐渐增加结点数 直到测试的误差不再有明显的较小为止 另一种方法是先设置较多的结点 再对网络进行训练 从而得到一个适合规模的网络结构 一般采用单隐层的BP网络就可以实现较好的训练效果 13 五 BP网络的建立及执行 2 确定网络的初始权值BP网络的各层初始权值一般选取一组较小的非零随机数 为了避免出现局部极值问题 可选取多组初始权值 最后选用最好的一种 3 产生训练样本建立样本数据之前 首先要收集大量的原始数据 并在大量的原始数据中确定出最主要的输入模式 分析数据的相关性 选择其中最主要的输入模式 并确保所选择的输入模式互不相同 在确定了最重要的输入模式后 需要进行尺度变换和预处理 使得经变换后的数据对神经网络更容易学习和训练 确定样本大小 样本大小取决于许多因素 如网络的大小 网络测试的需要和输入 输出的分布等 其中 网络的大小是最关键的因素 通常较大的网络需要较多的训练数据 经验规则 训练模式应是连接权总数的3 5倍 14 五 BP网络的建立及执行 4 训练网络通常训练一个网络需要多次 但并非训练的次数越多 越能得到正确的输入 输出的映射关系 由于所收集的数据都是包含噪声的 训练的次数过多 网络将包含噪声的数据都记录下来 5 测试网络在测试时需要保持连接权系数不改变 用确定的数据作为网络的输入 正向运行该网络 检验输出的均方误差 6 判断网络在实际确定BP网络时 通常应将训练和测试交替进行 即每训练一次 同时用测试数据测试一遍网络 画出均方误差随训练次数的变化曲线 15 六 BP网络应用于模式分类 1 网络创建及重要代码介绍 1 网络的构建 首先需要构造一个网络构架 函数newff 就是构建神经网的 下面具体介绍参数的选择 网络层数 选用两层BP网络即可 输入层节点数m 其节点数取决于矢量的维数 输出层节点数n 输出层的节点数取决于两个方面 输出数据类型和表示该类型所需数据大小 当BP网络用于模式分类时 则输出层的节点数可根据待分类模式数来确定 隐含层结点数 对于用于模式识别 分类的BP网络 隐层节点数可以参照以下公式进行设计 其中 m为输入层结点数 n为输出层结点数 a为1 10之间的常数 16 六 BP网络应用于模式分类 传输函数 BP网络中的传输函数通常采用S 形函数 在某些特定情况下还可能采用纯线性 函数 训练函数 BP神经网络的训练函数有等 每种训练函数各有特点 但是没有一种函数能适应所有情况下的训练过程 代码如下 net newff minmax p 12 4 tansig logsig trainlm 2 网络的初始化 网络的输入向量 网络的目标向量 网络初始化程序 net init net 17 六 BP网络应用于模式分类 3 训练参数初始化 代码如下 max epoch x 最大训练次数xerr goal E 期望误差 4 网络训练 net train net p t 5 网络仿真 y sim net p test 6 结果对比 18 六 BP网络应用于模式分类 2 完整代码本例采用BP网络对酒瓶颜色进行分类 其中 前29组数据已确定类别 后30组数据待确定类别 BP网络的输入和输出层的神经元数目由输入和输出向量的维数确定 输入向量由A B C这三列决定 所以输入层的神经元数目为3 输出结果有4种模式 1 2 3 4代表4种输出 因此输出层的神经元个数为4 模式识别程序如下 构建训练样本中的输入向量pp 1739 94373 31756 77864 45222 85877 881803 582352 12401 3363 341571 17104 8499 852297 282092 621418 791845 592205 362949 161692 621680 672802 88172 782063 541449 581651 52341 59291 02237 63 1675 153087 0516521647 313059 542031 661583 122557 043259 943477 951731 043389 833305 753340 143177 211775 891918 813243 743244 441867 51575 783017 113084 493199 761641 581713 283076 623095 683077 78 2395 962429 471514 982665 92002 333071 182163 051411 532150 982462 861735 332421 832196 22535 62584 322772 92226 491202 69662 422108 971725 11984 982328 651257 213405 121570 382438 632088 952251 96 19 六 BP网络应用于模式分类 构建训练样本中的目标向量tt 01001000110110000000001000111 10100010001000001001100001000 00000001000001100110010100000 00010100000000010000000010000 创建一个BP网络 隐含层有12个神经元 传递函数为tansig 中间层有4个神经元 传递函数为logsig 训练函数为trainlmnet newff minmax p 12 4 tansig logsig trainlm 训练次数默认为100net trainParam epochs 500 训练的目标默认为0net trainParam goal 0 01 神经网络训练net train net p t 测试样本进行分类p test 1702 81877 93867 811831 49460 692374 982271 891783 64198 831494 631597 031598 931243 132336 313542144 47426 311507 13343 072201 942232 431580 11962 41495 181125 1724 221269 071802 071817 361860 45 20 六 BP网络应用于模式分类 1639 791860 962334 681713 113274 773346 983482 971597 993250 452072 591921 521921 081814 072640 263300 122501 623105 291556 893271 723196 223077 871752 071594 971957 441594 393447 311910 721725 811927 41782 88 2068 741975 32535 11604 682172 99975 31946 72261 312445 082550 512126 761623 333441 071599 632373 61591 512057 81954 512036 94935 531298 872463 041835 953498 022937 732145 012701 971966 352328 791875 83 y sim net p test 运行上述程序代码后 可以得到网络的训练结果 TRAINLM calcjx Epoch0 500 MSE0 303441 0 01 Gradient173 123 1e 010TRAINLM calcjx Epoch25 500 MSE0 0862919 0 01 Gradient0 0209707 1e 010TRAINLM calcjx Epoch460 500 MSE0 00159 0 01 Gradient0 226 1e 07TRAINLM Performancegoalmet 21 六 BP网络应用于模式分类 如图1为神经网络训练模块 在这里可以查看训练结果 训练状态等 可见网络经过460次训练后即可达到误差要求 结果如图2所示 从图中可以看出网络具有非常好的学习性能 网络输出与目标输出的误差已经达到了预先的要求 图1神经网络训练图 图2训练曲线图 22 六 BP网络应用于模式分类 对预测样本值的仿真输出结果如下 y 1至18列0 01440 01440 48280 01440 97880 03530 03530 01440 97880 08770 01440 02390 05250 03530 97880 03530 97880 01440 98570 98570 36370 98570 01870 03000 03000 98570 01870 95280 98570 89610 10560 03000 01870 03000 01870 98570 00570 00570 00200 00570 02210 96930 96930 00570 02210 00060 00570 08220 00010 96930 02210 96930 02210 00570 02640 02640 02330 02640 05650 00500 00500 02640 05650 04530 02640 00990 88300 00500 05650 00500 05650 026419至30列0 97870 03530 03530 01440 01440 05250 05250 97880 05680 01440 01440 01440 01870 03000 03000 98570 98570 10560 10560 01870 12080 98570 98570 98570 02210 96930 96930 00570 00570 00010 00010 02210 00010 00570 00570 00570 05650 00500 00500 02640 02640 88300 88300 05650 86430 02640 02640 0264 23 七 BP网络的其他学习算法的应用 在应用其他学习方法训练BP网络之前 先将样本数据 bp train sample data dat 目标数据 bp train target data dat 及待分类数据 bp simulate data dat 存放到数据文件 各文件内容及格式如图所示 24 1 采用梯度法进行学习前向神经网络BP算法采用最速下降寻优算法 即梯度法 假设有N对学习样本 采取批处理学习方法 目标函数 其中 分别为第K对样本的期望输出和实际输出向量 E反映网络输出与样本的总体误差 学习过程就是通过修改各神经元之间的权值 使得目标函数E的值最小 权值按下列公式修正 其中 为学习速率 七 BP网络的其他学习算法的应用 25 七 BP网络的其他学习算法的应用 应用traingd函数训练 应调整全值和阈值沿着表现函数的负梯度方向 如果应用梯度下降法训练函数 需要在训练之前将网络构成函数的相应参数trainFcn设置为traingd 与函数traingd有关的训练参数有 epochs goal lr max fail min grad show time 如果不设置就表示应用内定缺省值 net trainParam epochs最大训练次数 缺省为10 net trainParam goal训练要求精度 缺省为0 net trainParam lr学习率 缺省为0 01 net trainParam max fail最大失败次数 缺省为5 net trainParam min grad最小梯度要求 缺省为1e 10 net trainParam show显示训练迭代过程 NaN表示不显示 缺省为25 net trainParam time最大训练时间 缺省为inf 训练过程中 只要满足下面四个条件之一 训练就会停止 超过最大迭代次数epochs 表现函数值小于误差指标goal 梯度值小于要求精度mingrad 训练所用时间超过时间限制time 最大失败次数超过次数限制max fail 26 七 BP网络的其他学习算法的应用 完整程序代码 functionf bpfun NeuralNetwork buildtrainandsimulate bpfun m 输入矩阵的范围 数据源 P 203000 14003500 5003500 创建网络net newff P 1241 tansig tansig purelin traingd 初始化神经网络net init net 设置训练的参数 停止方式按键 pause 两次显示之间的训练步数默认为25net trainParam show 50 lr不能选择太大 太大了会造成算法不收敛 太小了会使训练时间太长 一般选择0 01 0 1之间 27 七 BP网络的其他学习算法的应用 训练速度net trainParam lr 0 05 训练次数默认为100net trainParam epochs 3000 训练时间默认为inf 表示训练时间不限net trainParam time 6000 训练的目标默认为0net trainParam goal 0 001 建立源数据的矩阵SourceDataConvert importdata bp train sample data dat SourceData SourceDataConvert TargetConvert importdata bp train target data dat Target TargetConvert 神经网络训练net train net SourceData Target 显示训练后的各层权重mat1 cell2mat net IW 1 1 28 七 BP网络的其他学习算法的应用 mat2 cell2mat net LW 2 1 mat3 cell2mat net LW 3 2 读取仿真文件数据simulate data convert importdata bp simulate data dat simulate data simulate data convert result sim net simulate data 多次运行上述程序 可以得到满足误差要求的网络的训练结果 TTRAINLM calcjx Epoch0 3000 Time0 0 MSE14 4178 0 001 Gradient10741 9 1e 010TRAINLM calcjx Epoch40 3000 Time0 0 MSE0 000438 0 001 Gradient0 196 1e 07TRAINLM Performancegoalmet 29 七 BP网络的其他学习算法的应用 如图3为神经网络训练模块 在这里可以查看训练结果 训练状态等 训练后即可达到误差要求 结果如图4所示 图3神经网络训练模块 图4训练曲线图 30 七 BP网络的其他学习算法的应用 对预测样本值的仿真输出结果如下 result 1至9列3 00160 99693 00113 98471 94601 94603 00163 987310至18列0 99733 00162 99820 99692 02453 98731 94603 98503 001619至27列3 88441 94602 02452 58843 00160 99690 99693 98160 996928至30列3 00163 00163 00163 0015 31 七 BP网络的其他学习算法的应用 2 采用带动量最速下降法进行学习带动量最速下降法在非二次型较强的区域能使目标函数收敛较快 BP算法的最速下降方向即目标函数E在权值空间上的负梯度方向 在无约束优化目标函数E时 相邻的两个搜索方向正交 因此 当权值接近于极值区域时 每次迭代移动的步长很小 呈现出 锯齿 现象 严重影响了收敛速率 有时甚至不能收敛而在局部极值区域振荡 为此 提出了各种加速学习速率的优化算法 其中加动量项的算法为当前广为应用的方法 其权值修正公式 为动量系数 32 七 BP网络的其他学习算法的应用 完整程序代码 functionf bpfun NeuralNetwork buildtrainandsimulate bpfun m 输入矩阵的范围 数据源 P 203000 14003500 5003500 创建网络net newff P 1241 tansig tansig purelin traingdx 初始化神经网络net init net 设置训练的参数 停止方式按键 pause 两次显示之间的训练步数默认为25net trainParam show 50 lr不能选择太大 太大了会造成算法不收敛 太小了会使训练时间太长 33 七 BP网络的其他学习算法的应用 一般选择0 01 0 1之间 训练速度net trainParam lr 0 05 速度增长系数net trainParam lr inc 1 2 速度下调系数net trainParam lr dec 0 8 添加动量因子net trainParam mc 0 9 训练次数默认为100net trainParam epochs 3000 训练时间默认为inf 表示训练时间不限net trainParam time 6000 训练的目标默认为0net trainParam goal 0 001 建立源数据的矩阵SourceDataConvert importdata bp train sample data dat SourceData SourceDataConvert TargetConvert importdata bp train target data dat 34 七 BP网络的其他学习算法的应用 Target TargetConvert 神经网络训练net train net SourceData Target 显示训练后的各层权重mat1 cell2mat net IW 1 1 mat2 cell2mat net LW 2 1 mat3 cell2mat net LW 3 2 读取仿真文件数据simulate data convert importdata bp simulate data dat simulate data simulate data convert result sim net simulate data 多次运行上述程序 可以得到满足误差要求的网络的训练结果 TRAINLM calcjx Epoch0 3000 Time0 0 MSE14 0262 0 001 Gradient7315 37 1e 010TRAINLM calcjx Epoch335 3000 Time0 0 MSE0 000442 0 001 Gradient1 19 1e 7TRAINLM Performancegoalmet 35 七 BP网络的其他学习算法的应用 神经网络训练工具如图5所示 训练后即可达到误差要求 结果如图6所示 图5神经网络训练工具箱 图6训练曲线图 36 七 BP网络的其他学习算法的应用 对预测样本值的仿真输出结果如下 result 1至9列3 02962 93091 52202 92563 98761 98891 99043 03153 989710至18列1 39823 02742 55011 00092 05623 98432 03763 99173 073319至27列3 99152 00452 02121 86792 92850 97161 00374 00131 488028至31列2 97802 98352 93793 0032 37 七 BP网络的其他学习算法的应用 3 采用共轭梯度法进行学习共轭梯度法是重要的无约束最优化方法 它利用一维搜索所得到的极小点处的最速下降方向生成共轭方向 并据此搜索目标函数极值 共轭梯度法的计算步骤和梯度法的计算步骤差别不大 主要差别在搜索方向的不同 即每一步的方向不再是梯度方向 而是一种共轭的方向 由原来的负梯度方向加上一个修正项 前一点的梯度乘以适当的系数 得到共轭方向 设梯度向量为g 共轭向量为P 则第k次的共轭方向为其中 为标量 其大小必须保证和为共轭方向 38 七 BP网络的其他学习算法的应用 可以说共轭梯度法综合利用过去的梯度和现在某点的梯度信息 用其线性组合来构造更好的搜索方向 这样权值的修正公式 共轭梯度法在二次型较强的区域能使目标函数收敛较快 而一般目标函数在极小点附近的形态近似于二次函数 故共轭梯度法在极小点附近有较好的收敛性 39 七 BP网络的其他学习算法的应用 完整程序代码 functionf bpfun NeuralNetwork buildtrainandsimulate bpfun m 输入矩阵的范围 数据源 P 203000 14003500 5003500 创建网络net newff P 1241 tansig tansig purelin traincgb 初始化神经网络net init net 设置训练的参数 停止方式按键 pause 两次显示之间的训练步数默认为25net trainParam show 50 lr不能选择太大 太大了会造成算法不收敛 太小了会使训练时间太长 一般选择0 01 0 1之间 训练速度 40 七 BP网络的其他学习算法的应用 net trainParam lr 0 05 训练次数默认为100net trainParam epochs 3000 训练时间默认为inf 表示训练时间不限net trainParam time 6000 训练的目标默认为0net trainParam goal 0 001 建立源数据的矩阵Source
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025国家公务员试题及答案
- 刮刮乐课件试玩
- 2026届南宁市重点中学化学高二第一学期期末统考模拟试题含答案
- 《中华人民共和国药品管理法》培训试卷及答案
- 创建节约型机关知识培训课件
- 新能源二级维护课件
- 2025年文物保护与修复考试试题及答案
- 2025年文化战争与社会心态能力评估试卷及答案
- 2025年文化遗产保护与传承政策研究考核试卷及答案
- 2025年文化市场管理师文化产业试题及答案
- 2025年中小学心理健康教育教师考试试题及答案
- 教师写作培训课件
- 中国无人机智能巡检系统行业市场前景预测及投资价值评估分析报告
- 十五五林业建设总结和十五五林业发展规划思路-0-图文
- 财务分析入门从零开始学
- 2025年航拍无人机驾驶员(五级)职业技能鉴定理论考试题库(含答案)
- 秋冬常见传染病预防知识
- 事业单位人事管理制度改革与发展
- 生父母或监护人同意送养的书面意见
- 钱大妈合同协议书
- 育苗基地转让合同协议
评论
0/150
提交评论