1、从训练集中取出某一样本,把信息输入网络中。
2、通过各节点间的连接情况正向逐层处理后,得到神经网络的实际输出。
3、计算网络实际输出与期望输出的误差。
4、将误差逐层反向回传至之前各层,并按一定原则将误差信号加载到连接权值上,使整个神经网络的连接权值向误差减小的方向转化。
5、対训练集中每一个输入—输出样本对重复以上步骤,直到整个训练样本集的误差减小到符合要求为止。
具体如下:library(AMORE)
x1 <- round(runif(2000,1,2000)) #随机生成2000个数
x2 <- round(runif(2000,1,2000))
x11 <- scale(x1[1:1900])#数据标准化,并选取1900个组作为学习集
x12 <- scale(x2[1:1900])
x21 <- scale(x1[1901:2000]) #选取100组作为待测集
x22 <- scale(x2[1901:2000])
你在建立网络的时候不是用了net=newff(……)吗?这个net就是输出的结果。newff函数只是初始化一个神经网络,之后还得用train函数训练,训练好的net就是你要的网络。
newff函数的格式为:
net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:
PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;
Si:第i层神经元个数;
TFi:第i层的传递函数,默认函数为tansig函数;
BTF:训练函数,默认函数为trainlm函数;
BLF:权值/阀值学习函数,默认函数为learngdm函数;
PF:性能函数,默认函数为mse函数。