模糊逻辑学习--模糊推理过程
模糊推理是使用模糊逻辑制定从给定输入到输出的映射的过程。然后,映射提供了基础,从中可以做出决策或识别出模式。模糊推理的过程涉及隶属函数,逻辑运算和If-Then规则中描述的所有部分。本节介绍了模糊推理过程,并使用双输入,单输出,三规则小费问题的例子基本小费的问题,你在更详细的介绍看到的。下图显示了此示例的基本结构:信息从左到右,从两个输入流到一个输出。规则的并行性质是模糊逻辑系统更重要的方面之一。
这里推荐搭建先看这个ppt,再看后面matlab的实现,这样你会很清晰,为了赚点积分,这里设置一下积分,抱歉大家了。
模糊推理是使用模糊逻辑制定从给定输入到输出的映射的过程。然后,映射提供了基础,从中可以做出决策或识别出模式。模糊推理的过程涉及隶属函数,逻辑运算和If-Then规则中描述的所有部分。
本节介绍了模糊推理过程,并使用双输入,单输出,三规则小费问题的例子基本小费的问题,你在更详细的介绍看到的。下图显示了此示例的基本结构:
信息从左到右,从两个输入流到一个输出。规则的并行性质是模糊逻辑系统更重要的方面之一。逻辑不是从基于断点的模式之间进行尖锐的切换,而是从系统行为受一条规则或另一条规则支配的区域平稳地流动。
模糊推理过程包括五个部分:
甲模糊推理图显示模糊推理过程的所有部分-从模糊化通过去模糊化。
步骤1.模糊化输入
第一步是获取输入,并通过隶属函数确定输入所属的适当模糊集的程度。在Fuzzy Logic Toolbox™软件中,输入始终是一个清晰的数值,限于输入变量的论述范围(在这种情况下为0到10之间的间隔),而输出则是合格语言集中的模糊隶属度(总是介于0和1之间的间隔)。输入的模糊化等于表查找或功能评估。
该示例基于三个规则,每个规则都取决于将输入分解为许多不同的模糊语言集:服务差,服务好,食物腐烂,食物可口,等等。在评估规则之前,必须根据这些语言集中的每一个对输入进行模糊处理。例如,食物在多大程度上真正美味?下图显示了假设餐厅的食物(等级从0到10)通过语言的隶属度,其作为语言变量的美味程度。在这种情况下,我们将食物的等级评定为8,根据您对美味的图形化定义,美味成员关系函数的µ = 0.7。
以这种方式,每个输入都模糊了规则要求的所有合格成员资格函数。
步骤2.应用模糊运算符
在对输入进行模糊处理之后,您将知道每个规则对前提的每个部分的满意程度。如果给定规则的前提有一个以上的部分,则应用模糊算子获得一个数字,该数字表示该规则的前提的结果。然后将此数字应用于输出功能。模糊运算符的输入是来自模糊输入变量的两个或多个隶属度值。输出是单个真值。
如“ 逻辑运算”部分所述,可以为AND运算或OR运算填充任意数量的定义明确的方法。在工具箱中,支持两种内置的AND方法:min(最小)和prod(产品)。还支持两种内置的OR方法:max(maximum)和概率OR方法probor。的根据等式计算概率OR方法(也称为代数和)
probor( a, b)= a + b - ab |
除了这些内置方法之外,您还可以通过编写任何函数并将其设置为选择的方法来为AND和OR创建自己的方法。
下图显示了工作中的OR运算符max,它评估了小费计算的规则3的前提。前项的两个不同部分(服务非常好,食物也很美味)的模糊隶属度值分别为0.0和0.7。模糊或运算符只需选择两个值中的最大值0.7,即可完成规则3的模糊运算。概率OR方法仍将得到0.7。
步骤3.应用蕴涵方法
在应用隐含方法之前,必须确定规则的权重。每个规则都有一个权重(0到1之间的一个数字),该权重将应用于前一个给定的数字。通常,此权重为1(如本例所示),因此对暗示过程完全没有影响。您可能会不时地想通过将一个规则的权重值更改为1而不是其他来加权。
在为每个规则分配了适当的权重之后,便会实施隐含方法。结果是由隶属度函数表示的模糊集,该模糊集适当地加权了归因于该模糊集的语言特征。结果使用与该前提关联的功能(单个数字)进行整形。隐含过程的输入是一个由先决条件给出的数字,而输出是一个模糊集。隐含实现每个规则。支持两种内置方法,它们与AND方法使用的功能相同:min(最小)将截断输出模糊集,而prod(乘积)将缩放输出模糊集。
步骤4.汇总所有输出
由于决策基于对FIS中所有规则的测试,因此必须以某种方式组合规则才能做出决策。聚合是将代表每个规则的输出的模糊集组合为单个模糊集的过程。对于每个输出变量,聚合仅发生一次,就在第五个也是最后一步,即去模糊化之前。聚合过程的输入是隐含过程为每个规则返回的截断输出函数的列表。聚合过程的输出是每个输出变量的一个模糊集。
只要聚合方法是可交换的(始终应该如此),那么执行规则的顺序就不重要了。支持三种内置方法:
-
max
(最大值) -
probor
(概率OR) -
sum
(仅是每个规则的输出集的总和)
在下图中,所有这三个规则已放在一起,以显示每个规则的输出如何组合或聚合到单个模糊集中,该模糊集的隶属函数为每个输出(提示)值分配权重。
第5步。
输入 解模糊处理是一个模糊集(合计输出模糊集),并且输出是单个数字。尽管模糊有助于中间步骤中的规则评估,但每个变量的最终期望输出通常为单个数字。但是,模糊集的集合包含一系列输出值,因此必须对其进行去模糊处理,以便从该集中解析单个输出值。
支持五种内置的反模糊化方法:质心,平分线,最大值的中间值(输出集最大值的平均值),最大值的最大值和最小值的最大值。也许最流行的去模糊方法是质心计算,它返回曲线下方的区域中心,如下所示:
虽然总输出模糊集的覆盖范围是从0%到30%,但去模糊值在5%到25%之间。这些限制分别对应于cheap
和generous
隶属函数的质心。
模糊推理图
模糊推理图是本节到目前为止介绍的所有较小图的合成。它同时显示您检查过的模糊推理过程的所有部分。信息流经模糊推理图,如下图所示。
在此图中,流程从左下方的输入开始向上,然后跨每一行或每个规则,然后向下的规则输出在右下方完成。从语言变量的模糊化一直到总输出的去模糊化,这种紧凑的流程可以立即显示所有内容。
下图显示了实际的全尺寸模糊推理图。在模糊推理图中有很多可以看的东西,但是当您习惯了它之后,就可以很快地学习到很多关于系统的知识。例如,从带有这些特定输入的图表中,您可以轻松地看到,蕴含方法是使用最小功能。该最大值函数被用于模糊或操作。规则3(前面显示的图中最底部的一行)对输出的影响最大。等等。规则浏览器中所描述的规则浏览器是一个MATLAB ®模糊推理图的实施。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)