《MATLAB神经网络编程》 化学工业出版社 读书笔记
第四章 前向型神经网络 4.3 BP传播网络
本文是《MATLAB神经网络编程》书籍的阅读笔记,其中涉及的源码、公式、原理都来自此书,若有不理解之处请参阅原书
1,BP网络的创建函数。
(1)newcf 函数 功能:用来创建级联前向BP网络,调用格式:
net=newcf(P,T,[S1,S2……S(N-1)]{TF1,TF2..TFN},BTF,BLF,PF,IPF,OPF,DDF)
P,T为每组输入元素的最大值和最小值组成的R*2维矩阵;Si为第i层的长度,共计NI层;TFi为第i层的传递函数,默认为”tansig”;BTF为BP网络的训练函数,默认为”trainlm”;BLF为权值和阈值的BP学习算法,默认为”learngdm”;PF为网络的性能函数,默认为”mse”;IPF为行输入的处理单元矩阵,默认为”fixunknowns”、“removeconstantrows”、“mapinmax”;OPF为行输出的处理单元矩阵,默认为“removeconstantrows”或“mapminmax”DDF为函数的定义默认为”dividerand”。
参数TFi可以采用任意的可微传递函数,如tansig,logsig,purelin等;训练函数可以是任意的BP训练函数,如trainlm,trainbfg,trainrp和traingd等。注意BTF默认采用trainlm是因为该函数的速度很快,但是该函数的缺点是运行会消耗大量的内存;如果内存不足建议采用trainfg或者trainrp,虽然这两个函数速度慢,但是占用内存小。
(2)newff 函数 功能:用来创建BP网络,调用格式:
net=newff(P,T,[S1 S2……S(N-1)],{TF1,TF2..TFN},BTF,BLF,PF,IPF,OPF,DDF)
参数含义同上。
(3)newfftd 函数 功能:用来创建一个存在输入延迟的前向型网络,调用格式:
net=newfftd(P,T,ID,[S1 S2……S(N-1)],{TF1,TF2..TFN},BTF,BLF,PF,IPF,OPF,DDF)
参数含义同上。
2,神经元上的传递函数
传递函数是BP网络的重要组成部分;又称激活函数,必须是连续可微的;BP网络常常采用S型对数或者正切函数或线性函数。
(1)logsig 函数 功能:S型的对数函数,调用格式:
A=logsig(N,FP)
info=logsig(code)
N为Q个S维的输入列向量;FP为功能结构参数;A为函数返回值,位于区间(0,1)中。
函数公式:
logsig(n) = 1 / (1 + exp(-n))
函数例子:
n = -5:0.1:5;
a = logsig(n);
plot(n,a)
结果: