数学建模社区-数学中国
标题:
求高人指点神经网络程序
[打印本页]
作者:
arial
时间:
2012-7-6 17:15
标题:
求高人指点神经网络程序
程序如下,求教:这里的B10=cat(2,B1,B1);是什么作用,矩阵的维数怎么变成了S1*Q了?我查了一下,B10=cat(2,B1,B1);的话,维数应该是S1*R*2了啊?求教高手指点
# h4 i0 J U1 b8 y
( k) J" X; V+ s7 Q7 \# s* @
clear
* P5 p/ C, C1 Y5 \
clc
6 {1 |- P6 W8 _8 W6 C! G8 b
%eg1_2 三层神经网络输出
6 Z( U' l$ ]6 _
P=[0.1,0.5;0.3,-0.2];%已知输入矢量数据
: x" k) o# J5 N) Z) n
[R,Q]=size(P); %已知各层节点数
! G: n/ O$ O0 H8 m3 |: y
S1=2;S2=3;S3=5; %求出输入矢量的行和列
' R& l# a1 R" L' f1 l) z+ f0 W
[W1,B1]=rands(S1,R); %给第一隐含层权值赋(-1,1)之间的随机值
( D1 Q2 i4 l, S' G# H" D0 n
[W2,B2]=rands(S2,S1);%给第二隐含层权值赋(-1,1)之间的随机数
2 ]% m1 E! e! n( |5 Z9 a
[W3,B3]=rands(S3,S2);%给输出层权值赋(-1,1)之间的随机值
. O8 j4 _- p0 [2 X: y" T7 N% d$ M& ]
B10=cat(2,B1,B1); %通过B10=[B1,B1]将S1*1的B1矩阵合成为一个S1*Q的矩阵以便进行下面的加法运算
6 B9 a3 Q4 O6 o# i
A1=hardlims(W1*P+B10);%计算第一层输出表达式
" W+ w1 R* l/ ]5 A9 b6 r) l( f
B20=cat(2,B2,B2); %用两个S2*1的B2矩阵组成一个S2*Q矩阵
4 @( X# u9 S* k4 z
A2=logsig(W2*A1+B20); %计算第二层输出
7 d# H6 g( G" N+ V+ J' _
B30=cat(2,B3,B3); %用两个S3*1的B3矩阵组成一个S3*Q矩阵
0 X! `* ?4 S$ i4 {) u! q1 b
A3=purelin(W3*A2+B30) %计算第三层输出
2 S, S5 i2 I2 \/ C5 |) L0 y
作者:
八千里路
时间:
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
: Z& u7 ?1 ]& q2 {
cat(2,B3,B3); 相当于;
4 R6 ^: o1 ]3 W5 p5 I! m* v
是啊,那在神经网络里面维数就不对了啊,列维数就变成了2R了,但我们要的是Q应该。在这个里面,需要的R=2,Q=2的,2R!=Q啊。
作者:
arial
时间:
2012-7-10 09:55
在等待!
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5