数学建模社区-数学中国

标题: 求高人指点神经网络程序 [打印本页]

作者: arial    时间: 2012-7-6 17:15
标题: 求高人指点神经网络程序
程序如下,求教:这里的B10=cat(2,B1,B1);是什么作用,矩阵的维数怎么变成了S1*Q了?我查了一下,B10=cat(2,B1,B1);的话,维数应该是S1*R*2了啊?求教高手指点2 t& \7 W0 a# U7 r- k8 I, I
6 m3 q( Y2 z8 [1 u5 S& {+ O
clear
1 a: R0 E/ R6 fclc% w0 M( N6 I% E) X
%eg1_2 三层神经网络输出( Z; Q8 O7 C* j5 t' ?" i9 M
P=[0.1,0.5;0.3,-0.2];%已知输入矢量数据4 V3 `/ n" g( c, T, c: R
[R,Q]=size(P);       %已知各层节点数
# ]- T, S% M. W# q! W) c; g/ tS1=2;S2=3;S3=5;      %求出输入矢量的行和列
, c# J9 s& k- G- [+ m[W1,B1]=rands(S1,R); %给第一隐含层权值赋(-1,1)之间的随机值$ p7 Y& w6 f/ Q" o0 D, {/ Z
[W2,B2]=rands(S2,S1);%给第二隐含层权值赋(-1,1)之间的随机数  V! Z: @* M. L8 C. f2 G2 T
[W3,B3]=rands(S3,S2);%给输出层权值赋(-1,1)之间的随机值+ ?4 z9 X: V/ Y6 ]: d
B10=cat(2,B1,B1);  %通过B10=[B1,B1]将S1*1的B1矩阵合成为一个S1*Q的矩阵以便进行下面的加法运算! l0 R: a* P* n+ f& q
A1=hardlims(W1*P+B10);%计算第一层输出表达式
5 j. j) [% e" q' M- jB20=cat(2,B2,B2);     %用两个S2*1的B2矩阵组成一个S2*Q矩阵; I* f$ j0 I  u! c: u, X7 }
A2=logsig(W2*A1+B20); %计算第二层输出  p! ~+ Z' |+ U# k' a+ T7 ^% ?
B30=cat(2,B3,B3);     %用两个S3*1的B3矩阵组成一个S3*Q矩阵: T* c; O# @# ~  O/ K
A3=purelin(W3*A2+B30) %计算第三层输出
# |* x6 f0 p; Q  [* s. h
作者: 八千里路    时间: 2012-7-6 17:25
太雷人了,都加油啊
作者: 影~绿    时间: 2012-7-6 21:54
cat(2,B3,B3);    相当于[B3 B3];
作者: arial    时间: 2012-7-7 08:24
影~绿 发表于 2012-7-6 21:54
, c5 X( ]- f" ^, @1 Ycat(2,B3,B3);    相当于;
' K; @& m& Q' t: j
是啊,那在神经网络里面维数就不对了啊,列维数就变成了2R了,但我们要的是Q应该。在这个里面,需要的R=2,Q=2的,2R!=Q啊。
作者: arial    时间: 2012-7-10 09:55
在等待!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5