matlab中隐含层缺省函数,Matlab双隐层的BP神经网络该如何创建
看了之前论坛里提供的一个程序:
%--------------两个隐层的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神经网络该如何创建相关推荐
- 怎样在matlab中写技术,rect矩形函数 matlab中怎样编写矩形函数
矩形函数的定义: 矩形函数 rect(t); 如果绝对值 |t| > 0.5 rect(t) = 0; 如果绝对值 |t| = 0.5 rect(t) = 0.5; 如果绝对值 |t| < ...
- matlab中霍夫线检测函数,matlab 霍夫检测
%霍夫检测 BW=imread('lexp_1_2.bmp'); BW=rgb2gray(BW); thresh=[0.01,0.17]; sigma=2;%定义高斯参数 f = edge(doubl ...
- matlab中load seamout,matlab中的save与load函数
matlab中的save与load函数 用save函数,可以将工作空间的变量保存成txt文件或mat文件等. 比如: save peng.mat p j 就是将工作空间中的p和j变量保存在peng.m ...
- 邹检验 matlab,科学网—Matlab中一个很有用的函数:regionprops - 邹兴文的博文
Matlab中一个很有用的函数:regionprops 已有 6712 次阅读 2010-1-30 22:52 |个人分类:开发经验|系统分类:科研笔记| 有用的函数, regionprops Mat ...
- 函数调用matlab,Matlab中一个函数调用另外一个函数的操作方法
这篇文章为各位带来的内容是Matlab中一个函数调用另外一个函数相关的,对此感兴趣的用户可以去下文看看Matlab中一个函数调用另外一个函数的操作教程. Matlab中一个函数调用另外一个函数的操作方 ...
- matlab怎么调用主函数,Matlab中一个函数调用另外一个函数的操作步骤
原创Matlab中一个函数调用另外一个函数的操作步骤 编辑:小安 来源:PC下载网时间:2019-11-18 13:27:35 最近很多伙伴才刚刚安装入手Matlab这款软件,而本节就重点介绍了关于M ...
- Matlab中用于数据预测spline()函数的使用
Matlab中用于数据预测spline()函数的使用 再matlab中spline函数是利用三次方样条数据插值 语法 s = spline(x,y,xq) pp = spline(x,y) s = ...
- Matlab中产生正态分布随机数的函数normrnd-----用来产生高斯随机矩阵
Matlab中产生正态分布随机数的函数normrnd-----用来产生高斯随机矩阵 功能:生成服从正态分布的随机数 语法: R=normrnd(MU,SIGMA) R=normrnd(MU,SI ...
- Matlab中print, fprint, fscanf, disp函数的用法
最近一直在用python,导致学习的一些函数就有点混淆,趁着这会儿看代码,就再回顾下Matlab中print, fprint, fscanf, disp函数的用法 一.print() 函数可以把函数图 ...
最新文章
- 简易boundbox碰撞检测
- vivo X21低调奢华 彭于晏携手黑金版来袭
- Windows 10 归档、对于一些问题的解决与软件推荐
- android错误详细教程四
- LeetCode学习记录(10)
- C# 判断时间是否在 某一时间段内,判断时间是否是今天,获取今年第一天、最后一天,数字字符串转换为日期
- 计算机应用基础搜题答案,大一计算机应用基础试题及答案
- 51单片机汇编密码锁(可修改密码,课程设计,含论文)!(大三上)
- N76E003 串口接收字符串,完整输出
- 2022危险化学品经营单位安全管理人员考试题库模拟考试平台操作
- 酷狗音乐应用在计算机里怎么拖出来,电脑如何使用酷狗音乐剪辑音乐|电脑使用酷狗音乐剪辑音乐的方法...
- 计算机网络第七版(谢希仁) 第一章 概述 1-10,1-17作业答案
- 三菱fx2n做从站的modbus通讯_三菱PLC编程实例分享
- 教你羊肉炒菠菜的做法
- python文件读写、字典、习题、模块包库、pycharm、面向对象
- 三生三世十里桃花用计算机怎么弄,三生三世十里桃花灵宠系统怎么玩?三生三世十里桃花灵宠系统详解...
- python实现图片拼接长图_python实现图像拼接
- (首发)SixTool多功能代挂助手
- 软工实践 - 第六次作业
- 怎么制作升温曲线图_PCBA制造过程中几种典型的温度曲线
热门文章
- Python-文件和数据格式化
- 【骨架屏】【vue】如何在webpack+vue+vue-cli下搭建多模块/单模块多路由骨架屏
- 在 mingw32 上编译 libvpx 1.7.0 时的注意事项
- js中函数传递参数,究竟是值传递还是引用传递?
- Windows 2003下的Http 500错误
- Java从零开始学四十五(Socket编程基础)
- 迷茫与飞跃:9月开始,明确了研究方向,功力提升明显,成绩比较显著
- 代码编辑神器VIM(附我写acm程序时的配置)(转)
- 附庸风雅(2006-10-20 13:39:32)(新浪)
- goland 创建工程(go mod)singo