求PSO—BP神经网络训练方法,matlab实现的

求PSO—BP神经网络训练方法,matlab实现的,第1张

输入层、隐层的神经元激励函数选为S型函数,输出层采用线性函数purelin。各层的节点数分别为3、10、2,训练步数选为1500次。在Matlab中进行BP神经网络的建立、训练、仿真,结果如下:

T=[023 023];目标输出值

P=[-04953 -04915 ;04889 06160; 03708 04535]; 输入矩阵三行两列

net=newff(minmax(P),[5,12,1],{'tansig','tansig','purelin'},'traingd');网络建立、训练

nettrainParamepochs=1500;训练步数

nettrainParamgoal=000001;均方误差

[net,tr]=train(net,P,T);进行训练

y=sim(net,P)输出的结果

目前为止,我们已经学习了2个机器学习模型。线性回归一般用来处理线性问题,逻辑回归用来处理2分类问题。虽然逻辑回归也可以处理非线性的分类问题,但是当我们有非常多的特征时,例如大于100个变量,将会有数量非常惊人的特征组合。这对于一般的逻辑回归来说需要计算的特征太多了,负荷太大。而神经网络既可以解决复杂的非线性分类问题,又可以避免庞大的计算量。

人工神经网络是由很多神经元(激活单元)构成的,神经元是神经网络的基本元素。

实际上,可以这样理解神经元工作过程,当将输入送进神经元后,神经元将输入与权值线性组合(实际上就是θ T X)输出一个线性表达式,再将这个表达式送入激活函数中,便得到了神经元的真实输出。

神经网络由好多个激活单元构成,如下图所示:

激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。

(1) 线性函数( Liner Function )

(2) 斜面函数( Ramp Function )

(3) 阈值函数( Threshold Function )

以上3个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。

(4) S形函数( Sigmoid Function )

 S形函数与双极S形函数的图像如下:

双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。由于S形函数与双极S形函数都是 可导的 (导函数是连续函数),因此适合用在BP神经网络中。(BP算法要求激活函数可导)

人工神经网络中,最常用的激活函数就是sigmoid函数

神经网络是由大量的神经元互联而构成的网络。根据网络中神经元的互联方式,常见网络结构主要可以分为下面3类:

前馈网络也称前向网络,是最常见的神经网络,前文提到的都是前馈网络。称之为前馈是因为它在输出和模型本身之间没有反馈,数据只能向前传送,直到到达输出层,层间没有向后的反馈信号。

反馈型神经网络是一种从输出到输入具有反馈连接的神经网络,其结构比前馈网络要复杂得多。

自组织神经网络是一种无监督学习网络。它通过自动寻找样本中的内在规律和本质属性,自组织、自适应地改变网络参数与结构。

BP网络一般都是用三层的,四层及以上的都比较少用;

传输函数的选择,这个怎么说,假设你想预测的结果是几个固定值,如1,0等,满足某个条件输出1,不满足则0的话,首先想到的是hardlim函数,阈值型的,当然也可以考虑其他的;

然后,假如网络是用来表达某种线性关系时,用purelin---线性传输函数;

若是非线性关系的话,用别的非线性传递函数,多层网络时,每层不一定要用相同的传递函数,可以是三种配合,可以使非线性和线性,阈值的传递函数等;

compet---竞争型传递函数;

hardlim---阈值型传递函数;

hardlims---对称阈值型传输函数;

logsig---S型传输函数;

poslin---正线性传输函数;

purelin---线性传输函数;

radbas---径向基传输函数;

satlin---饱和线性传输函数;

satlins---饱和对称线性传输函数;

softmax---柔性最大值传输函数;

tanhsig---双曲正切S型传输函数;

tribas---三角形径向基传输函数;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12185555.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存