arial 发表于 2012-7-6 17:15

求高人指点神经网络程序

程序如下,求教:这里的B10=cat(2,B1,B1);是什么作用,矩阵的维数怎么变成了S1*Q了?我查了一下,B10=cat(2,B1,B1);的话,维数应该是S1*R*2了啊?求教高手指点

clear
clc
%eg1_2 三层神经网络输出
P=;%已知输入矢量数据
=size(P);       %已知各层节点数
S1=2;S2=3;S3=5;      %求出输入矢量的行和列
=rands(S1,R); %给第一隐含层权值赋(-1,1)之间的随机值
=rands(S2,S1);%给第二隐含层权值赋(-1,1)之间的随机数
=rands(S3,S2);%给输出层权值赋(-1,1)之间的随机值
B10=cat(2,B1,B1);  %通过B10=将S1*1的B1矩阵合成为一个S1*Q的矩阵以便进行下面的加法运算
A1=hardlims(W1*P+B10);%计算第一层输出表达式
B20=cat(2,B2,B2);     %用两个S2*1的B2矩阵组成一个S2*Q矩阵
A2=logsig(W2*A1+B20); %计算第二层输出
B30=cat(2,B3,B3);     %用两个S3*1的B3矩阵组成一个S3*Q矩阵
A3=purelin(W3*A2+B30) %计算第三层输出

八千里路 发表于 2012-7-6 17:25

太雷人了,都加油啊

影~绿 发表于 2012-7-6 21:54

cat(2,B3,B3);    相当于;

arial 发表于 2012-7-7 08:24

影~绿 发表于 2012-7-6 21:54 static/image/common/back.gif
cat(2,B3,B3);    相当于;

是啊,那在神经网络里面维数就不对了啊,列维数就变成了2R了,但我们要的是Q应该。在这个里面,需要的R=2,Q=2的,2R!=Q啊。

arial 发表于 2012-7-10 09:55

在等待!{:3_60:}
页: [1]
查看完整版本: 求高人指点神经网络程序