模糊逻辑(Fuzzy Logic)

参考:https://blog.csdn.net/weixin_34248118/article/details/87420025

要想了解模糊逻辑,首先我们要知道对应的另外一种逻辑,布尔逻辑。

1. 经典的布尔逻辑

布尔数值就是0和1,是和非,也是计算机逻辑的基础,其基本运算就是"与、或、非",体现在编程中就是“If .... then...”。

布尔逻辑赋予计算机自动判断和决策的能力,但是却并不完美,甚至限制了计算机的能力,因为人类判断和决策往往没那么简单。比如布尔逻辑能够很好处理那种是非很清晰的场景,比如用电脑可以轻松编写“如果下雨就提醒我出门带伞“”这样的程序,因为下不下雨是一个清晰的是非逻辑。

然而人在实际决定带不带伞出门时常是考虑雨的大小,雨会下多久。那多大的雨算大雨需要带伞,多小的雨算小雨不用带伞呢?这里并没有一个清晰的雨量门槛决定人是否带伞。

模糊逻辑就是用来解决这样的分类和决策难题的。

2. 隶属度(Degree of Membership)

在模糊逻辑的眼中,大雨,小雨,和中雨之间是没有严格的界限的,也就是说某一种雨量的大小并不完全归属于某一个类,而是以隶属度来衡量的。比如对于10mm降雨,隶属于小雨的隶属度为0.5, 中雨的隶属度为0.4,大雨的隶属度为0.1;对于100mm降雨,小雨的隶属度为0, 中雨的隶属度为0.3,大雨的隶属度为0.7。

将逻辑的输入数值(降雨量)转化成各个集合(小雨,中雨,大雨)的隶属度的过程就叫做Fuzzification。 也是模糊逻辑的第一步。

3. Fuzzyfication(模糊化)

如何确定输入数值与隶属度的关系呢,这就要用到隶属度函数,隶属度函数的图形可以是任意的,但常用的方法是三角形或者梯形。 例如下图的形式。

上图是考试分数和学生成绩的隶属度关系。 比如考0分,Poor的隶属度为1,Avg. 和Good为0。 考试为32.5分(红黑交叉点),Poor的隶属度为0.5,Avg.为0.5, Good为0。 在任意一点都能找到其所对应的集合的隶属度。

隶属度函数的确立目前还没有一套成熟有效的方法,大多数系统的确立方法还停留在经验和实验的基础上。对于同一个模糊概念,不同的人会建立不完全相同的隶属度函数,尽管形式不完全相同,只要能反映同一模糊概念,在解决和处理实际模糊信息的问题中仍然殊途同归。
下面是几种常用的方法。(1)模糊统计法;(2)例证法;(3)专家经验法;(4)二元对比排序法

4. 模糊逻辑的“与,或,非”运算

模糊逻辑的运算实际上就是模糊逻辑中分解出的各个隶属度的运算。我们将逻辑的两个输入定义为A,B,输出为C(A与B -> C),举个例子,A = Poor: 0.5(Poor的隶属为0.5 )B = Good:0.2, 那么C= A与B是多少呢?

其实有好多计算C的方法,这里介绍一个最简单的“最小隶属法(MIN implication)”,于是 C=A与B中最小那个(0.2)。于是C= Good: 0.2.

那D = A或B怎么计算呢?还是介绍一个最简单的“最大隶属法(MAX implication)”,即 C=A或B中最大的那个(0.5)。 于是D= Poor: 0.5

"非"的运算就更简单了,直接如下图所示取相反的折线就完了。

5. 模糊逻辑的决策规则(Rule Base)

将输入模糊化了之后,需要通过规则,和模糊逻辑的运算来重新组合。下面我们通过一个实例来介绍一下什么是模糊逻辑的规则。

你要编写一个程序来给自己分配食物,食物的多少由你饥饿的程度(Hunger)和食物的味道(Taste)共同决定的,两者分别有少、中、多(S, M, L)三个集合

如下图,表格为规则,例如:Taste(M)与Hunger(M)输出M,Hunger(M)与Taste(L)输出L;隶属度函数在表格下面。以Taste 和 Hunger分别取值为5.625和5为例,参考给定的隶属度函数,模糊化之后 Taste(S)=0,Taste(M)=0.75,Taste(L)=0.25, Hunger(S)=0, Hunger(M)=1, Hunger(L)=0。

 

可见除了规则表中标记成红色和绿色的部分,其他的输出都为0。

表中:

  • 红色M是Taste(M)与Hunger(M)的输出结果可以用最小法则Min(0.75, 1)=0.75
  • 绿色L是Taste(L)与Hunger(M)的输出结果可以用最小法则Min(0.25, 1)=0.25

注:红色部分跟原文不同,是根据本人理解进行的更正。如有异议,可留言讨论

同样的如果Taste和Hunger分别取5.625和4.375,会有如下图结果:

 

表中:

  • 红色S是Taste(M)与Hunger(S)的输出结果可以用最小法则Min(0.75, 0.25)=0.25
  • 绿色M是Taste(M)与Hunger(M)的输出结果可以用最小法则Min(0.75, 0.75)=0.75
  • 黄色M是Taste(L)与Hunger(S)的输出结果可以用最小法则Min(0.25, 0.25)=0.25
  • 紫色L是Taste(L)与Hunger(M)的输出结果可以用最小法则Min(0.25, 0.75)=0.25
  • 其他输出为0。

这些输出我们在模糊逻辑中定义为Fire Strength(FS)。

6. 去模糊化(De-fuzzyfication)

模糊逻辑通过模糊化将输入的数值转化成各个集合的隶属度之后,再通过规则和运算得到若干个FS。这些FS并不能为我们解决实际问题。以之前分配食物为例,我们期望的是:给出任意两个输入值(Taste 和 Hunger)能输出一个确定的数值,这时我们就要用去模糊化来得到这个输出值了。

去模糊化有很多方法,这里我同样只介绍一个简单和应用广泛的方法:加权平均判决法

                                                                     
其中FS就是上一步输出的Fire Strength, OW (Output Wight)是权重。权重通常是取每个集合的中间值,分配食物的例子OW(S)=2.5, OW(M)=5, OW(L)=7.5。

如果Taste = 5.625, Hunger = 4.375
FS1(S)=0.25, FS2(M)=0.75, FS3(M)=0.25, FS4(L)=0.25.
用上面的公式可以求得
Output = (0.252.5+0.755+0.255+0.257.5)/(0.25+0.75+0.25+0.25)=5

这个输出有什么用呢?你可以通过这个输出决定是否分配食物,设定一个阈值,比如为4,如果小于等于这个阈值就不分配食物,大于这个阈值就分配食物。这里输出是5,那么就可以给自己分配食物了。还可以通过设置多个阈值,来决定分配给自己食物的多少。

另外去模糊化方法:最大值均值法;中心法;最大值平均法等。

模糊计算的应用:推荐系统;控制领域的专家系统

演化:模糊神经网络系统

汇集神经网络和模糊计算是优点,即人工神经网络具有 较强的自学习和联想功能能力,人工干预少,精度较高,对专家知识的利用也较好;而模糊计算的特点有 推理过程容易理解、专家知识利用较好、对样本的要求较低等。

1. 利用神经网络,来学习、演化模糊规则库。类似数据挖掘的过程,模糊竞争学习算法 : 利用神经网络来增强的 模糊计算系统

2. 利用模糊控制方法,不断改善神经网络的性能,如模糊BP算法 :利用模糊计算增强的神经网络
 

模糊控制方法(fuzzy logic)是一种基于模糊推理和模糊推断的控制方法。它与传统的基于精确数学模型的控制方法不同,能够更好地处理实际问题中的不确定性和模糊性。 模糊控制方法使用了模糊集合论中的模糊集合和模糊逻辑运算,通过构建模糊规则库和设计模糊推理机制来实现控制过程。它不需要准确的数学模型和精确的输入输出关系,而是通过对输入和输出的模糊化处理,将问题转化为一系列模糊规则的推理和模糊推断过程。 在模糊控制方法中,我们首先将系统的输入和输出进行模糊化处理,即通过模糊集合来表示输入和输出的不确定性和模糊性。然后,构建模糊规则库,其中包含了一系列模糊规则,每条规则描述了输入和输出之间的关系。接下来,通过使用模糊推理机制,将输入与规则库进行匹配,得到模糊推理结果。最后,通过去模糊化处理,将模糊输出转化为具体的控制指令。 模糊控制方法广泛应用于各种工程控制领域,特别是在处理非线性、模糊和不确定性问题上表现出色。它能够处理模糊输入输出、模糊规则和模糊推理等问题,使得控制系统更加鲁棒和适应性强。同时,由于模糊控制方法充分考虑了人类专家知识和经验,使得控制规则更加直观和易于理解。 总之,模糊控制方法通过模糊推理和模糊推断,能够有效处理实际问题中的模糊性和不确定性,具有广泛的应用前景。它在工程控制和人工智能领域都有着重要的研究和应用价值。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值