具有三层或三层以上的阶层型神经网络。简单的至少有三层,输入曾、输出层、隐含层(中间层)。其学习的过程是一种有监督式机器学习,首先需要对每一种输入模式设定一个期望输出值,对网络输入实际的学习记忆模式,并由输入层经过中间层向输出层传播(“模式顺传播”),而实际输出与期望输出的差即是误差。按照误差平方最小的规则,由输出层往中间层逐层修正连接权值,其过程为(“误差逆传播”)。随着“模式顺传播”和“误差逆传播”过程的交替反复进行,神经网络的实际输出逐渐向个字对应的期望输出逼近,对输入模式的响应正确率也不断地上升。在此过程中,反复确定下来各层之间的连接权值之后就可以过做了。
BP神经网络通常采用梯度法修正权值,并要求输出函数可微分,通常采用S型函数(也叫Sigmoid型函数)作为输出函数,比如对数S型函数:
y=f(x)=1/(1+e^-x)
S型函数作为输出函数是由于其具有非线性,单调性,无限次可微性等特点。
步骤:
1、分别确定输入层节点数、输出层节点数、隐含层层数以及节点数、初始化权重、期望误差、学习率、最大学习次数、初始化迭代次数、学习实例序号初始值;
2、取第k个学习实例(X,Y)进行正向传播,得出各个节点的输入值以及输出值,计算出输出层各个节点的输出误差;
3、对于N个节点,假如输出层每个节点的误差值都<=期望误差,或者是迭代次数达到最大迭代次数,那么学习结束。
4、进行误差反向计算,根据公式得出每次权重调整量,根据权值调整公式进行权值调整;
5、进行下一轮迭代,计算下一个实例,如果实例全部计算完成,那么重新头开始计算实例,转到步骤2继续迭代。