什么是BP神经网络?

Python012

什么是BP神经网络?,第1张

BP算法的基本思想是:学习过程由信号正向传播与误差的反向回传两个部分组成;正向传播时,输入样本从输入层传入,经各隐层依次逐层处理,传向输出层,若输出层输出与期望不符,则将误差作为调整信号逐层反向回传,对神经元之间的连接权矩阵做出处理,使误差减小。经反复学习,最终使误差减小到可接受的范围。具体步骤如下:

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函数。