看了之前论坛里提供的一个程序:

%--------------两个隐层的BP算法-------------%

clear all;

SamNum=100;%样本数

TestSamNum=100;%测试样本

HiddenUnit1Num=10;%隐层1结点数

HiddenUnit2Num=10;%隐层2节点数

InDim=1;%样本输入维数

OutDim=1;%样本输出维数

%根据目标函数获得样本输入输出

SamIn=8*rand(1,SamNum)-4;%产生样本向量

SamOut=1.1*(1-SamIn+2*SamIn.^2).*exp(-SamIn.^2/2);%目标输出

TestSamIn=-4:0.08:4;%测试数据

TestSamOut=1.1*(1-TestSamIn+2*TestSamIn.^2).*exp(-TestSamIn.^2/2);%测试数据目标输出

MaxEpochs=20000;%最大训练次数

lr=0.003;%学习率

E0=0.05;%目标误差

W1=0.2*rand(HiddenUnit1Num,InDim)-0.1;

B1=0.2*rand(HiddenUnit1Num,1)-0.1;

W2=0.2*rand(HiddenUnit2Num,HiddenUnit1Num)-0.1;

B2=0.2*rand(HiddenUnit2Num,1)-0.1;

W3=0.2*rand(OutDim,HiddenUnit2Num)-0.1;

B3=0.2*rand(OutDim,1)-0.1;

%产生扩展向量,及扩展样本输入%

W1Ex=[W1 B1];

W2Ex=[W2 B2];

W3Ex=[W3 B3];

SamInEx=[SamIn' ones(SamNum,1)]';

Dw1Ex=zeros(HiddenUnit1Num,InDim+1);

Dw2Ex=zeros(HiddenUnit2Num,HiddenUnit1Num+1);

Delta2Store=zeros(HiddenUnit2Num,SamNum);

for i=1:MaxEpochs

%正向传播时第一隐层,第二隐层,及网络输出值%

u=W1Ex*SamInEx;

Hidden1Out=1./(1+exp(-u));

Hidden1OutEx=[Hidden1Out' ones(SamNum,1)]';

u=W2Ex*Hidden1OutEx;

Hidden2Out=1./(1+exp(-u));

Hidden2OutEx=[Hidden2Out' ones(SamNum,1)]';

NetworkOut=W3Ex*Hidden2OutEx;   %网络输出值

%停止学习判断条件

Error=SamOut-NetworkOut;%是一个1*100的向量

SSE=sum(Error.^2);%所有样本产生的误差之和

if SSE

%计算反向传播误差

Delta3=Error;%是一个横向量,包含100个样本的误差

Dw3Ex=Delta3*Hidden2OutEx';

for n=1:SamNum %对每一个样本分别计算

Delta2=(W3'*Delta3(n)).*Hidden2Out(:,n).*(1-Hidden2Out(:,n));

Delta2Store(:,n)=Delta2;

Dw2Ex=Dw2Ex+Delta2*Hidden1OutEx(:,n)';

end

for m=1:SamNum%对每一个样本分别计算

Delta1=((Delta2Store(:,m)'*W2)').*Hidden1Out(:,m).*(1-Hidden1Out(:,m));

Dw1Ex=Dw1Ex+Delta1*(SamInEx(:,m))';

end

%更新权值

W1Ex=W1Ex+lr*Dw1Ex;

W2Ex=W2Ex+lr*Dw2Ex;

W3Ex=W3Ex+lr*Dw3Ex;

W2=W2Ex(:,1:HiddenUnit1Num);

W3=W3Ex(:,1:HiddenUnit2Num);

Delta2Store=zeros(HiddenUnit2Num,SamNum);

Dw1Ex=zeros(HiddenUnit1Num,InDim+1);

Dw2Ex=zeros(HiddenUnit2Num,HiddenUnit1Num+1);

end

v=size(TestSamIn);

TestSamInEx=[TestSamIn' ones(v(2),1)]';

u=W1Ex*TestSamInEx;

Hidden1Out=1./(1+exp(-u));

Hidden1OutEx=[Hidden1Out' ones(v(2),1)]';

u=W2Ex*Hidden1OutEx;

Hidden2Out=1./(1+exp(-u));

Hidden2OutEx=[Hidden2Out' ones(v(2),1)]';

TestNetworkOut=W3Ex*Hidden2OutEx;   %网络输出值

plot(TestSamIn,TestNetworkOut,TestSamIn,TestSamOut);

请问双隐层的神经网络有没有直接的创建函数和训练函数,就像单隐层那样,这个程序看不大懂啊

[本帖最后由 mooni 于 2009-5-26 21:31 编辑]

matlab中隐含层缺省函数,Matlab双隐层的BP神经网络该如何创建相关推荐

  1. 怎样在matlab中写技术,rect矩形函数 matlab中怎样编写矩形函数

    矩形函数的定义: 矩形函数 rect(t); 如果绝对值 |t| > 0.5 rect(t) = 0; 如果绝对值 |t| = 0.5 rect(t) = 0.5; 如果绝对值 |t| < ...

  2. matlab中霍夫线检测函数,matlab 霍夫检测

    %霍夫检测 BW=imread('lexp_1_2.bmp'); BW=rgb2gray(BW); thresh=[0.01,0.17]; sigma=2;%定义高斯参数 f = edge(doubl ...

  3. matlab中load seamout,matlab中的save与load函数

    matlab中的save与load函数 用save函数,可以将工作空间的变量保存成txt文件或mat文件等. 比如: save peng.mat p j 就是将工作空间中的p和j变量保存在peng.m ...

  4. 邹检验 matlab,科学网—Matlab中一个很有用的函数:regionprops - 邹兴文的博文

    Matlab中一个很有用的函数:regionprops 已有 6712 次阅读 2010-1-30 22:52 |个人分类:开发经验|系统分类:科研笔记| 有用的函数, regionprops Mat ...

  5. 函数调用matlab,Matlab中一个函数调用另外一个函数的操作方法

    这篇文章为各位带来的内容是Matlab中一个函数调用另外一个函数相关的,对此感兴趣的用户可以去下文看看Matlab中一个函数调用另外一个函数的操作教程. Matlab中一个函数调用另外一个函数的操作方 ...

  6. matlab怎么调用主函数,Matlab中一个函数调用另外一个函数的操作步骤

    原创Matlab中一个函数调用另外一个函数的操作步骤 编辑:小安 来源:PC下载网时间:2019-11-18 13:27:35 最近很多伙伴才刚刚安装入手Matlab这款软件,而本节就重点介绍了关于M ...

  7. Matlab中用于数据预测spline()函数的使用

    Matlab中用于数据预测spline()函数的使用 ​ 再matlab中spline函数是利用三次方样条数据插值 语法 s = spline(x,y,xq) pp = spline(x,y) s = ...

  8. Matlab中产生正态分布随机数的函数normrnd-----用来产生高斯随机矩阵

     Matlab中产生正态分布随机数的函数normrnd-----用来产生高斯随机矩阵 功能:生成服从正态分布的随机数 语法: R=normrnd(MU,SIGMA) R=normrnd(MU,SI ...

  9. Matlab中print, fprint, fscanf, disp函数的用法

    最近一直在用python,导致学习的一些函数就有点混淆,趁着这会儿看代码,就再回顾下Matlab中print, fprint, fscanf, disp函数的用法 一.print() 函数可以把函数图 ...

最新文章

  1. 简易boundbox碰撞检测
  2. vivo X21低调奢华 彭于晏携手黑金版来袭
  3. Windows 10 归档、对于一些问题的解决与软件推荐
  4. android错误详细教程四
  5. LeetCode学习记录(10)
  6. C# 判断时间是否在 某一时间段内,判断时间是否是今天,获取今年第一天、最后一天,数字字符串转换为日期
  7. 计算机应用基础搜题答案,大一计算机应用基础试题及答案
  8. 51单片机汇编密码锁(可修改密码,课程设计,含论文)!(大三上)
  9. N76E003 串口接收字符串,完整输出
  10. 2022危险化学品经营单位安全管理人员考试题库模拟考试平台操作
  11. 酷狗音乐应用在计算机里怎么拖出来,电脑如何使用酷狗音乐剪辑音乐|电脑使用酷狗音乐剪辑音乐的方法...
  12. 计算机网络第七版(谢希仁) 第一章 概述 1-10,1-17作业答案
  13. 三菱fx2n做从站的modbus通讯_三菱PLC编程实例分享
  14. 教你羊肉炒菠菜的做法
  15. python文件读写、字典、习题、模块包库、pycharm、面向对象
  16. 三生三世十里桃花用计算机怎么弄,三生三世十里桃花灵宠系统怎么玩?三生三世十里桃花灵宠系统详解...
  17. python实现图片拼接长图_python实现图像拼接
  18. (首发)SixTool多功能代挂助手
  19. 软工实践 - 第六次作业
  20. 怎么制作升温曲线图_PCBA制造过程中几种典型的温度曲线

热门文章

  1. Python-文件和数据格式化
  2. 【骨架屏】【vue】如何在webpack+vue+vue-cli下搭建多模块/单模块多路由骨架屏
  3. 在 mingw32 上编译 libvpx 1.7.0 时的注意事项
  4. js中函数传递参数,究竟是值传递还是引用传递?
  5. Windows 2003下的Http 500错误
  6. Java从零开始学四十五(Socket编程基础)
  7. 迷茫与飞跃:9月开始,明确了研究方向,功力提升明显,成绩比较显著
  8. 代码编辑神器VIM(附我写acm程序时的配置)(转)
  9. 附庸风雅(2006-10-20 13:39:32)(新浪)
  10. goland 创建工程(go mod)singo