模糊理论相关学习(2)——模糊神经网络

因为项目需要用到模糊神经网络,介绍一下BP模糊神经网络的结构,模型学习方法吧。


前言

简单介绍模糊神经网络的由来。

        模糊理论创始人Zaden教授在介绍模糊理论时曾经举过一个停车的例子,即便是一个新手在练习几次后也可以轻易地把一辆车停在两辆车之间,而利用擅长求精确值的计算机却要建立一个大费周折的模型。在实际生产生活中,经常有大量的模糊问题,高速运转的计算机固然可以解决一些问题,但是大量不精确的控制,往往通过模糊判断、经验、推理就可以简单解决,传统的基于精确数学模型的解决方案有着天然的缺陷。模糊理论和人工神经网络就是为解决这些问题应运而生的。模糊神经网络(Fuzzy Neural Network)结合了模糊理论与人工神经网络,充分发挥各自的优点,弥补对方的缺点,在处理大规模模糊应用问题方面,展现出了优秀的能力。

        模糊神经网络将模糊系统和神经网络相结合,其本质是将神经网络的输入经过模糊系统处理后变为模糊输入信号和模糊权值,并将神经网络的输出反模糊化,称为直观的有效数值。具体来说,就是在模糊神经网络中,神经网络的输入、输出表示模糊系统的输入、输出,将模糊系统的隶属函数、模糊规则加入到了神经网络的隐含节点中,充分发挥神经网络的并行处理能力和模糊系统的推理能力。


具体介绍标准模糊神经网络(BP模糊神经网络)

一、网络模型

模糊理论相关学习(2)——模糊神经网络_第1张图片

        第一层为输入层,各个几点直接与输入向量的个分量xi 相连,将输入值  传送到下一层。该层的节点数 ,n为输入向量维数即样本特征数。

        第二层为模糊化层,每个输入分量对应与一组节点,节点个数 为相对于  进行的模糊分级个数,其中每个节点均代表一个模糊言语变量值。第二层中每个节点的作用是计算输入向量各分量属于各言语变量模糊集合的隶属函数 ,其中 。n是输入量的维数, 的模糊规则 你分割数; 一共有n组隶属函数,每组有个隶属函数。例如,隶属度函数表示为:

 

其中, ​​​​​​​ 和 ​​​​​​​ 分别表示隶属函数的中心值和宽度值。该层的节点总数 ​​​​​​​。

        第三层的各节点均代表一条模糊规则,作用是用来匹配模糊规则的前件,计算出每条规则的实用度。第二层中有n个分组的隶属函数不重复的从每个分组中取一个隶属函数组合在一起,形成第三层的节点,即: ​​​​​​​或 ​​​​​​​ 其中 。该层总节点数 ​​​​​​​ 。对于给定的输入,只有在输入点附近的那些语言变量值才有较大的隶属度值,远离输入点的语言变量值的隶属度或者很小(高斯型隶属函数)或者为0(三角形隶属度函数)。当隶属度函数很小(例如小于0.05)时近似取为0,因此在a 中只有少量节点输出为非0,而多数节点的输出为0,这一点与局部逼近网络类似。

        第四层节点数与的三层相同,即 ​​​​​​​ ,它对每条规则的适用度进行归一化计算,即: ​​​​​​​ ​​​​​​​。该层也只有少量节点输出有较大的数值,二多数节点的输出接近于零。

        第五层是输出层,实现清晰化的计算,即 ​​​​​​​。这里的 ​​​​​​​ 相当于 ​​​​​​​ 的第j个隶属函数的中心值,写成向量形式为: ​​​​​​​。

其中:

​​​​​​​

二、学习算法

        模糊神经网络模型结构的许多量需要预先设定,例如,每个输入分量 的模糊分级个数 ;隶属函数形式的选取(正态分布,三角形分布,梯形分布……)等。需要学习的参数主要是最后一层的连接权 以及第二层的隶属度函数的中心值和宽度 。BP模糊神经网络本质上也是一种多层前馈网络,所以可仿照BP网络用误差反传的方法来设计调整参数学习算法。为导出误差反传的选代算法,需对每个神经元的输入输出关系加以形式化地描述。

模糊理论相关学习(2)——模糊神经网络_第2张图片

        上图表示模糊神经网络中第q层第j个节点。其中结点的纯输入为  ​​​​​​​,节点的输出为 ​​​​​​​。对一般的神经元节点,通常有:

模糊理论相关学习(2)——模糊神经网络_第3张图片

        对于BP模糊神经网络,其神经元节点的输入输出函数具有较为特殊的形式,选取高斯函数作为隶属函数,下面具体给出它每一层的节点函数。

模糊理论相关学习(2)——模糊神经网络_第4张图片

下面给出误差反传算法来计算:

模糊理论相关学习(2)——模糊神经网络_第5张图片

模糊理论相关学习(2)——模糊神经网络_第6张图片

式中:ηψξ分别为连接权、中心和宽度的学习效率,均大于0;k 为迭代次数。

        当网络实际输出与理想输出一致时,表明训练结束,否则通过误差反向传播,修正各层参数,直至误差降到要求范围内。


总结

        仔细阅读公式的推导过程有利于更好的理解算法。用python实现了BP模糊神经网络,结合本文去看程序能更好的理解。后续会上传代码。

代码:https://download.csdn.net/download/yangxiluo/85734822

你可能感兴趣的:(python,神经网络,深度学习)