[Q,n]=size(pp);[Q,p]=size(tt); wih=2*rand(n+1,q)-1;whj=2*rand(q+1,p)-1; wih=0.5*wih;whj=0.5*whj; deltawih=zeros(n+1,q);deltawhj=zeros(q+1,p); deltawihold=zeros(n+1,q);deltawhjold=zeros(q+1,p); si=[ones(Q,1),pp]; D=tt; sh=[1,zeros(1,q)];sy=zeros(1,p); deltao=zeros(1,p);deltah=zeros(1,q+1); sumerror=2*tol;time=0;error=[];在matlab中的意思
时间: 2023-09-07 10:13:34 浏览: 84
这段代码主要用于初始化神经网络的权重矩阵和一些相关的变量,其中:
- [Q,n]=size(pp):获取输入数据矩阵pp的行数Q和列数n,即训练数据的样本数和输入特征数;
- [Q,p]=size(tt):获取输出数据矩阵tt的行数Q和列数p,即训练数据的样本数和输出特征数;
- wih=2*rand(n+1,q)-1:初始化输入层到隐层之间的权重矩阵wih,采用[-1,1]之间的随机值初始化;
- whj=2*rand(q+1,p)-1:初始化隐层到输出层之间的权重矩阵whj,采用[-1,1]之间的随机值初始化;
- wih=0.5*wih;whj=0.5*whj;:将权重矩阵缩小0.5倍,以加快收敛速度;
- deltawih=zeros(n+1,q);deltawhj=zeros(q+1,p); deltawihold=zeros(n+1,q);deltawhjold=zeros(q+1,p);:初始化权重矩阵的增量变量,用于动量法更新权重矩阵;
- si=[ones(Q,1),pp]:构造新的输入数据矩阵si,将每个输入向量的第一维设为1,用于计算偏置项的权重;
- D=tt;:将输出数据矩阵赋值给D;
- sh=[1,zeros(1,q)]:初始化隐层状态向量sh,将第一维设为1,用于计算偏置项的权重;
- sy=zeros(1,p):初始化输出状态向量sy;
- deltao=zeros(1,p);deltah=zeros(1,q+1);:初始化输出层和隐层的误差向量;
- sumerror=2*tol;time=0;error=[];:初始化误差值的相关变量。其中,sumerror用于表示总误差,tol是误差容限,time是迭代次数,error用于记录每次迭代的误差值。
阅读全文