数学建模培训--人工神经网络(2)_第1页
数学建模培训--人工神经网络(2)_第2页
数学建模培训--人工神经网络(2)_第3页
数学建模培训--人工神经网络(2)_第4页
数学建模培训--人工神经网络(2)_第5页
免费预览已结束,剩余27页可下载查看

下载本文档

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

文档简介

常用的人工神经网络案例常用的人工神经网络案例 1 感知器网络感知器网络 MatLab 上机实验上机实验 例例 1 1 用 newp 函数设计一个单输入和一个神经元的感知器神经网络 输入的最 小值和最大值为 0 2 net newp 0 2 1 可以用下面语句来观察生成了一个什么样的神经网络 inputweights net inputWeights 1 1 inputweights delays 0 initFcn initzero learn 1 learnFcn learnp learnParam size 1 1 userdata 1x1 struct weightFcn dotprod weightParam 1x1 struct 从中可以看到 缺省的学习函数为 learnp 网络输入给 hardlim 传递函数的量为 数量积 dotprod 即输入量和权值矩阵的乘积 然后再加上阈值 缺省的初始化 函数为 initzero 即权值的初始值置为 0 同样地 biases net biases 1 1 biases initFcn initzero learn 1 learnFcn learnp learnParam size 1 userdata 1x1 struct 例例 1 2 设计一个输入为二维向量的感知器网络 其边界值已定 net newp 2 2 2 2 1 和上面的例子一样 权值和阈值的初始值为 0 如果不想预置为 0 则必须 单独生成 例如 两个权值和阈值分别为 1 1 和 1 应用如下语句 net IW 1 1 1 1 net b 1 1 1 应用下面语句验证一下 net IW 1 1 ans 1 1 net b 1 1 ans 1 下面来看这个感知器网络对两个输入信号的输出如何 两个信号分别位于 感知器两个边界 第一个输入信号 P1 1 1 a1 sim net P1 a1 1 第二个输入信号 P2 1 1 a2 sim net P2 a2 0 由此看出 输出是正确的 感知器为输入信号进行了正确的分类 若将两个输入信号组成一个数列 则输出量也为一个数列 P3 1 1 1 1 a3 sim net P3 a3 1 0 例例 1 3 首先有 newp 函数生成一个神经网络 net newp 2 2 2 2 1 其权值为 wts net IW 1 1 wts 0 0 其阈值为 bias net b 1 1 bias 0 改变权值和阈值 net IW 1 1 3 4 net b 1 1 5 检查权值和阈值 确实已经改变了 wts net IW 1 1 wts 3 4 bias net b 1 1 bias 5 然后应用 init 来复原权值和阈值 net init net wts net IW 1 1 wts 0 0 bias net b 1 1 bias 0 由此可见 应用 init 可以复原感知器初始值 例例 1 4 应用 init 改变网络输入的权值和阈值为随机数 net inputweights 1 1 initFcn rands net biases 1 1 initFcn rands net init net 下面验证一下权值和阈值 wts net IW 1 1 wts 0 8116 0 7460 bias net b 1 1 bias 0 6294 例例 1 5 假设一个二维向量输入的感知器神经网络 其输入和期望值样本为 11 2 0 2 pt 22 1 1 2 pt 33 2 0 2 pt 44 1 1 1 pt 首先 生成一个感知器网络 然后利用 train 函数进行训练 net newp 2 2 2 2 1 net trainParam epochs 1 设置最大迭代次数 p 2 1 2 1 2 2 2 1 样本 t 0 1 0 1 导师信号 net train net p t w net IW 1 1 w 3 1 b net b 1 1 b 0 对输入向量进行仿真验证 sim net p ans 0 0 1 1 可见 网络仿真结果没有达到期望值 通过调整训练最大次数可以看其结 果 net trainParam epochs 20 net train net p t sim net p ans 0 1 0 1 因此训练是成功的 训练规则具有一定的收敛性 并且能够达到精度 例例 1 6 设计一个二输入感知器神经网络 将五个输入向量分为两类 P 0 5 0 5 0 5 0 1 0 5 0 5 0 5 1 0 T 1 1 0 0 首先 应用 newp 构造一个神经元感知器神经网络 然后利用 plotpv 画出 输入向量图 与期望值 1 对应的输入向量用 表示 与期望值 0 对应的输入 向量用 o 表示 P 0 5 0 5 0 5 0 1 0 5 0 5 0 5 1 0 T 1 1 0 0 net newp 1 1 1 1 1 plotpv P T p 0 7 1 2 net train net P T a sim net p a 0 plotpv p a hold on plotpv P T plotpc net IW 1 1 net b 1 1 hold off 由此可见 感知器网络能够做到对输入向量进行正确分类 同时验证了网 络的可行性 例例 1 7 含有奇异样本的输入向量和期望输出如下 P 0 5 0 5 0 3 0 1 40 0 5 0 5 0 5 1 50 T 1 1 0 0 1 首先 应用 newp 构造一个神经元感知器神经网络 然后利用 plotpv 画出 输入向量图 net newp 40 0 5 0 5 50 1 plotpv P T net train net P T hold on plotpc net IW 1 1 net b 1 1 hold off 为了使图形清晰 我们修改坐标值放大部分图形 axis 2 2 2 2 由此可见 网络对于输入向量可以做到正确分类 缺点就是样本存在奇异 性的情况下训练时间大大增加了 P 0 5 0 5 0 3 0 1 40 0 5 0 5 0 5 1 50 T 1 1 0 0 1 net newp 40 0 5 0 5 50 1 net inputWeights 1 1 learnFcn learnpn net biases 1 1 learnFcn learnpn net train net P T plotpv P T hold on plotpc net IW 1 1 net b 1 1 hold off axis 2 2 2 2 例例 1 8 单层感知器的一个致命弱点就是输入向量必须是线性可分的 如果输入向 量线性可分 感知器可以给出正确的分类结果 而对于线性不可分的输入向量 感知器就不能对输入向量进行正确分类 构造五组输入样本 P T 是期望输出 P 0 5 0 5 0 3 0 1 0 8 0 5 0 5 0 5 1 0 0 0 T 1 1 0 0 0 plotpv P T net newp minmax P 1 net train net P T hold on plotpc net IW 1 1 net b 1 1 hold off 不能对其分类 此结果恰恰证明了前面所述的结论 2 线性神经网络线性神经网络 MatLab 上机实验上机实验 例例 2 1 假设输入和期望输出为 P 1 2 3 T 2 0 4 2 5 9 设计网络 net newlind P T 通过对输入量进行仿真 O sim net P O 2 0833 4 0333 5 9833 可见 网络的输出已经非常接近期望的输出值 例例 2 2 假设输入和期望输出为 P 2 1 2 1 2 2 2 1 T 0 1 0 1 设计网络 net newlin minmax P 1 训练网络 net trainParam goal 0 1 net train net P T net IW 1 1 ans 0 0615 0 2194 net b 1 1 ans 0 5899 网路仿真 O sim net P O 0 0282 0 9672 0 2741 0 4320 err T O err 0 0282 0 0328 0 2741 0 5680 mse err ans 0 0999 例例 2 3 为了测定刀具的磨损速度 做这样的实验 经过一定时间 如每隔一小时 测量一次 刀具的厚度 得到一组实验数据如下 时间01234567 刀具厚度27 026 826 526 326 125 725 324 8 试根据上面的实验数据建立一个大体合适的神经网络 解 t 0 1 2 3 4 5 6 7 y 27 0 26 8 26 5 26 3 26 1 25 7 25 3 24 8 plot t y net newlind t y 根据t和y设计一个具有最小均方误差的线性神经网络 O sim net t 用输入t来仿真该网络 plot t O t y e y O 期望输出 实际输出 mse mse y O 网络的均方误差值 w net iw 1 1 权值 b net b 1 1 阈值 时间01234567 期望输出27 026 826 526 326 125 725 324 8 实际输出 27 1326 8226 5226 2125 9125 6125 3025 00 偏差 0 13 0 02 0 020 090 190 09 0 00 0 20 网络权值 0 3036 网络阈值 27 1250 网络均方误差 0 0135 所拟合的直线 y 0 3036 t 27 1250 例例 2 4 已知一输入信号 T sin time pi 其中 time 0 0 1 5 构建一个神经网络 利用该 组信号的 5 个过去值预测信号的将来值 解 clc 清空命令窗口 clear 清空内存 time 0 0 1 5 T sin time pi Q length T X zeros 5 Q X 中存储信号 T 的前 5 次值 作为网络输入 X 1 6 Q T 1 1 Q 5 X 2 5 Q T 1 1 Q 4 X 3 4 Q T 1 1 Q 3 X 4 3 Q T 1 1 Q 2 X 5 2 Q T 1 1 Q 1 plot time T 绘制信号 T 曲线 xlabel 时间 ylabel 目标信号 title 待预测信号 net newlind X T O sim net X figure plot time T time O r xlabel 时间 ylabel 输出 目标 title 输出信号和目标信号 e T O mse mse T O w net iw 1 1 b net b 1 1 figure plot time e 网络权值 0 0193 0 0161 0 0021 0 9808 1 8808 网络阈值 0 0066 网络均方误差 0 0018 例例 2 5 以下是上证指数 2009 年 2 月 2 日到 3 月 27 日的收盘价格 构建一个神经网络 利用该 组信号的 6 个过去值预测信号的将来值 日期价格日期价格 2009 02 022011 6822009 03 022093 452 2009 02 032060 8122009 03 032071 432 2009 02 042107 7512009 03 042198 112 2009 02 052098 0212009 03 052221 082 2009 02 062181 2412009 03 062193 012 2009 02 092224 7112009 03 092118 752 2009 02 102265 1612009 03 102158 572 2009 02 112260 8222009 03 112139 021 2009 02 122248 0922009 03 122133 881 2009 02 132320 7922009 03 132128 851 2009 02 162389 3922009 03 162153 291 2009 02 172319 4422009 03 172218 331 2009 02 182209 8622009 03 182223 731 2009 02 192227 1322009 03 192265 761 2009 02 202261 4822009 03 202281 091 2009 02 232305 7822009 03 232325 481 2009 02 242200 6522009 03 242338 421 2009 02 252206 5722009 03 252291 551 2009 02 262121 2522009 03 262361 701 2009 02 272082 8522009 03 272374 44 解 clear clc D 2011 682 2060 812 2107 751 2098 021 2181 241 2224 711 2265 161 2260 822 2248 092 2320 792 2389 392 2319 442 2209 862 2227 132 2261 482 2305 782 2200 652 2206 572 2121 252 2082 852 2093 452 2071 432 2198 112 2221 082 2193 012 2118 752 2158 572 2139 021 2133 881 2128 851 2153 291 2218 331 2223 731 2265 761 2281 091 2325 481 2338 421 2291 551 2361 701 2374 44 Q length D count 1 1 Q X zeros 6 0 X 1 2 Q D 1 1 Q 1 X 2 3 Q D 1 1 Q 2 X 3 4 Q D 1 1 Q 3 X 4 5 Q D 1 1 Q 4 X 5 6 Q D 1 1 Q 5 X 6 7 Q D 1 1 Q 6 plot count D xlabel 输入 ylabel 期望输出 net newlind X D O sim net X figure plot count O r xlabel 输入 ylabel 实际输出 三 三 BP 神经网络神经网络 BP 网络的训练函数 训练方法训练函数 梯度下降法traingd 有动量的梯度下降法traingdm 自适应 lr 梯度下降法traingda 自适应 lr 动量梯度下降法traingdx 弹性梯度下降法trainrp Fletcher Reeves 共轭梯度法traincgf Ploak Ribiere 共轭梯度法traincgp Powell Beale 共轭梯度法traincgb 量化共轭梯度法trainscg 拟牛顿算法trainbfg 一步正割算法trainoss Levenberg Marquardttrainlm BP 网络训练参数 训练参数参数介绍训练函数 net trainParam epochs 最大训练次数 缺省为 10 traingd traingdm traingd a traingdx trainrp train cgf traincgp traincgb tr ainscg trainbfg trainoss trainlm net trainParam goal 训练要求精度 缺省为 0 traingd traingdm traingd a traingdx trainrp train cgf traincgp traincgb tr ainscg trainbfg trainoss trainlm net trainParam lr 学习率 缺省为 0 01 traingd traingdm traingd a traingdx trainrp train cgf traincgp traincgb tr ainscg trainbfg trainoss trainlm net trainParam max fail 最大失败次数 缺省为 5 traingd traingdm traingd a traingdx trainrp train cgf traincgp traincgb tr ainscg trainbfg trainoss trainlm net trainParam min grad 最小梯度要求 缺省为 1e 10 traingd traingdm traingd a traingdx trainrp train cgf traincgp traincgb tr ainscg trainbfg trainoss trainlm net trainParam show 显示训练迭代过程 NaN 表 示不显示 缺省为 25 traingd traingdm traingd a traingdx trainrp train cgf traincgp traincgb tr ainscg trainbfg trainoss trainlm net trainParam time 最大训练时间 缺省为 inf traingd traingdm traingd a traingdx trainrp train cgf traincgp traincgb tr ainscg trainbfg trainoss trainlm net trainParam mc 动量因子 缺省 0 9 traingdm traingdx net trainParam lr inc 学习率 lr 增长比 缺省为 1 05 traingda traingdx net trainParam lr dec 学习率 lr 下降比 缺省为 0 7 traingda traingdx net trainParam max perf inc 表现函数增加最大比 缺省 为 1 04 traingda traingdx net trainParam delt inc 权值变化增加量 缺省为 1 2 trainrp net trainParam delt dec 权值变化减小量 缺省为 0 5 trainrp net trainParam delt0 初始权值变化 缺省为 0 07 trainrp net trainParam deltamax 权值变化最大值 缺省为 50 0 trainrp net trainParam searchFcn 一维线性搜索方法 缺省为 srchcha traincgf traincgp traincg b trainbfg trainoss net trainParam sigma 因为二次求导对权值调整的 影响参数 缺省值 5 0e 5 trainscg net trainParam lambda Hessian 矩阵不确定性调节 参数 缺省为 5 0e 7 trainscg net trainParam men reduc 控制计算机内存 速度的参 量 内存较大设为 1 否则 设为 2 缺省为 1 trainlm net trainParam mu 的初始值 缺省为 0 001 trainlm net trainParam mu dec 的减小率 缺省为 0 1 trainlm net trainParam mu inc 的增长率 缺省为 10 trainlm net trainParam mu max 的最大值 缺省为 1e10 trainlm 例例 3 1 clear clc P 1 1 2 2 4 0 5 0 5 7 T 1 1 1 1 1 net newff minmax P 5 1 tansig purelin traingd net trainParam show 50 net trainParam lr 0 05 net trainParam epochs 300 net trainParam goal 1e 5 net train net P T V net IW 1 1 输入层到中间层的权值 b1 net b 1 1 中间层的阈值 W net lw 2 1 中间层到输出层的权值 b2 net b 2 1 输出层的阈值 O sim net P 例例 3 2 利用三层 BP 神经网络来完成非线性函数的逼近任务 其中隐层神经元个数为五个 样本数据如下 输入 X输出 D输入 X输出 D输入 X输出 D 1 0000 0 9602 0 30000 13360 40000 3072 0 9000 0 5770 0 2000 0 20130 50000 3960 0 8000 0 0729 0 1000 0 43440 60000 3449 0 70000 37710 0 50000 70000 1816 0 60000 64050 1000 0 39300 8000 0 3120 0 50000 66000 2000 0 16470 9000 0 2189 0 40000 46090 3000 0 09881 0000 0 3201 看到期望输出的范围是 所以利用双极性 Sigmoid 函数作为转移函数 1 1 程序如下 clear clc X 1 0 1 1 D 0 9602 0 5770 0 0729 0 3771 0 6405 0 6600 0 4609 0 1336 0 2013 0 4344 0 5000 0 3930 0 1647 0988 0 3072 0 3960 0 3449 0 1816 0 312 0 2189 0 3201 figure plot X D 绘制原始数据分布图 net newff 1 1 5 1 tansig tansig net trainParam epochs 100 训练的最大次数 net trainParam goal 0 005 全局最小误差 net train net X D O sim net X figure plot X D X O 绘制训练后得到的结果 V net IW 1 1 输入层到中间层权值 b1 net b 1 1 中间层各神经元阈值 W net LW 2 1 中间层到输出层权值 b2 net b 2 1 输出层各神经元阈值 例例 3 3 利用三层 BP 神经网络来完成非线性函数的逼近任务 其中隐层神经元个数为五个 样本数据如下 输入 X输出 D输入 X输出 D输入 X输出 D 004482 115393 2262104 3371 看到期望输出的范围超出 所以输出层神经元利用线性函数作为转移函数 1 1 程序如下 clear clc X 0 1 2 3 4 5 6 7 8 9 10 D 0 1 2 3 4 3 2 1 2 3 4 figure plot X D 绘制原始数据分布图 net newff 0 10 5 1 tansig purelin net trainParam epochs 100 net trainParam goal 0 005 net train net X D O sim net X figure plot X D X O 绘制训练后得到的结果 012345678910 0 5 0 0 5 1 1 5 2 2 5 3 3 5 4 V net IW 1 1 输入层到中间层权值 b1 net b 1 1 中间层各神经元阈值 W net LW 2 1 中间层到输出层权值 B2 net b 2 1 输出层各神经元阈值 问题问题 以下是上证指数 2009 年 2 月 2 日到 3 月 27 日的收盘价格 构建一个三层 BP 神经网络 利用该组信号的 6 个过去值预测信号的将来值 日期价格日期价格 2009 02 022011 6822009 03 022093 452 2009 02 032060 8122009 03 032071 432 2009 02 042107 7512009 03 042198 112 2009 02 052098 0212009 03 052221 082 2009 02 062181 2412009 03 062193 012 2009 02 092224 7112009 03 092118 752 2009 02 102265 1612009 03 102158 572 2009 02 112260 8222009 03 112139 021 2009 02 122248 0922009 03 122133 881 2009 02 132320 7922009 03 132128 851 2009 02 162389 3922009 03 162153 291 2009 02 172319 4422009 03 172218 331 2009 02 182209 8622009 03 182223 731 2009 02 192227 1322009 03 192265 761 2009 02 202261 4822009 03 202281 091 2009 02 232305 7822009 03 232325 481 2009 02 242200 6522009 03 242338 421 2009 02 252206 5722009 03 252291 551 2009 02 262121 2522009 03 262361 701 2009 02 272082 8522009 03 272374 44 四 自组织竞争网络四 自组织竞争网络 例子例子 4 1 clear clc P 0 9285 0 6131 0 8340 0 5159 0 8378 0 6061 0 8924 0 1694 1 0035 0 6021 0 9060 0 4922 0 7868 0 6781 0 8498 0 1563 0 9909 0 6714 0 9508 0 4555 0 7412 0 5626 0 8816 0 1872 0 8416 0 5563 0 9167 0 4860 0 8404 0 6145 0 9218 0 2310 0 9715 0 6434 0 8933 0 4849 0 8025 0 5417 0 9277 0 2484 0 9813 0 6539 0 9019 0 4061 0 8755 0 6349 0 8900 0 1984 0 9892 0 5658 0 8319 0 5058 0 8378 0 6165 0 8745 0 1170 1 0238 0 5460 0 8349 0 4434 0 8278 0 5570 0 9087 0 1103 0 9507 0 6471 0 8418 0 4709 0 8783 0 5508 0 9053 0 2012 0 9228 0 5945 0 8486 0 4505 0 8457 0 6079 0 9178 0 1459 0 1479 0 5004 0 8216 0 0166 0 4534 0 8282 0 8474 0 4114 0 2341 0 4444 0 6953 0 0997 0 4876 0 7123 0 7668 0 4402 0 2667 0 5194 0 7020 0 0107 0 4576 0 8627 0 7646 0 3596 0 2282 0 5167 0 8467 0 0137 0 3942 0 7895 0 7223 0 3120 0 2759 0 5149 0 7960 0 0057 0 4299 0 7802 0 7539 0 3882 0 2711 0 4364 0 7740 0 0186 0 4381 0 7963 0 7102 0 3582 0 2596 0 4727 0 6520 0 0074 0 4564 0 7417 0 7195 0 3529 0 2339 0 4839 0 6946 0 0662 0 4775 0 7689 0 6775 0 4523 0 1989 0 4976 0 8291 0 0924 0 4105 0 7883 0 6960 0 4801 0 1888 0 5191 0 7020 0 0152 0 4149 0 7702 0 8150 0 3383 figure plot P 1 P 2 r 初始数据分布图 net newc minmax P 6 初始化一个自组织竞争网络 输出层有两个神经元 聚合成 6 类 W net IW 1 未训练之前的网络权值 hold on circles plot W 1 W 2 ob 初始权值位于向量空间重心 net train net P net trainParam epochs 700 W net IW 1 delete circles plot W 1 W 2 ob a sim net P ac vec2ind a b 0 0 2 bc sim net b 问题问题 从 12 个不同地区测得了某树种的平均发芽率与发芽势 数据见下表 对这些数 1 x 2 x 据进行聚类 地区号123456789 发芽率0 70700 60000 69300 71700 68800 53300 87700 51300 8150 发芽势0 38500 43300 50500 34300 60500 38000 71300 35300 6750 地区号101112 发芽率0 63300 74000 7770 发芽势0 46500 58000 7230 附录附录 A 神经网络结构神经网络结构 net network net Neural Network object architecture 结构属性 numInputs 0 输入向量数目 numLayers 0 网络层数 biasConnect 阈值连接属性 inputConnect 输入连接属性 layerConnect 层连接属性 outputConnect 输出连接属性 numOutputs 0 read only 输出向量数目 numInputDelays 0 read only 输入延迟数目 numLayerDelays 0 read only 层延迟数目 subobject structures 子对象属性 inputs 0 x1 cell of inputs 输入向量 layers 0 x1 cell of layers 网络层 outputs 1x0 cell containing no outputs 输出向量 biases 0 x1 cell containing no biases 阈值向量 inputWeights 0 x0 cell containing no input weights 输入权值 layerWeights 0 x0 cell containing no layer weights 层权值 functions 网络函数 adaptFcn none 自适应训练函数 divideFcn none gradientFcn none 梯度函数 initFcn none 初始化函数 performFcn none 性能函数 plotFcns trainFcn none 训练函数 parameters adaptParam none divideParam none gradientParam none initParam none performParam none trainParam none weight and bias values 权值和阈值属性 IW 0 x0 cell containing no input weight matrices 输入权值矩阵 LW 0 x0 cell containing no layer weight matrices 层权值矩阵 b 0 x1 cell containing no bias vectors 阈值向量 other name userdata user information 附录附录 B 网络创建函数网络创建函数 函数名称函数解释 network创建一个自定义神经网络 newc创建一个竞争层 new

温馨提示

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

评论

0/150

提交评论