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

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


前言

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

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

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


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

一、网络模型

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

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

 

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

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

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

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

其中:

​​​​​​​

二、学习算法

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

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

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

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

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

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


总结

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

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

  • 13
    点赞
  • 127
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
模糊神经网络python实现通常是基于BP模糊神经网络算法。这种算法结合了模糊系统和神经网络。在模糊神经网络中,神经网络的输入经过模糊系统处理后变为模糊输入信号和模糊权值,并将神经网络的输出反模糊化为直观的有效数值。具体来说,模糊神经网络的输入和输出表示模糊系统的输入和输出,同时模糊系统的隶属函数和模糊规则被加入到了神经网络的隐含节点中,充分发挥了神经网络的并行处理能力和模糊系统的推理能力。 如果你想了解更多关于模糊神经网络python实现的细节,可以参考一些基本的理论基础和实现步骤。在理论基础方面,你可以了解模糊神经网络的结构、前向传播过程、反向传播过程和建模步骤。在实现方面,你可以学习训练过程和测试过程的代码,并查看实验结果和参考源码及实验数据集。 通过仔细阅读公式的推导过程并结合具体的python代码,你可以更好地理解模糊神经网络的原理和实现。这样的学习过程能够帮助你更好地应用模糊神经网络算法。 需要注意的是,具体的模糊神经网络python实现可能会因算法和库的不同而有所差异。因此,建议你参考相关资料和代码示例以获得更准确的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [模糊理论相关学习(2)——模糊神经网络](https://blog.csdn.net/yangxiluo/article/details/125402029)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [模糊神经网络(FNN)的实现(Python,附源码及数据集)](https://blog.csdn.net/weixin_42051846/article/details/128765523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yangxiluo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值