03.模糊系统
本文最后更新于 2023年10月20日 上午
模糊系统
模糊逻辑
生活中人们在描述对某些系统的设置时常常并不是使用准确的数值来表述这些设置,而是使用较为模糊的语言来描述:例如人们通常会说“将空调温度调高一点”而非“将空调温度调高1摄氏度”。在系统工程中,专家通常依赖于基于经验的直觉来解决问题,这些直觉通常也是模糊的(vague)。
那么如何让计算机理解这些模糊的设置呢?模糊逻辑(fuzzy
logic)就是一种使用逻辑来描述设置中的不确定性和模糊性的方法论。模糊逻辑基于模糊集论(fuzzy
set
theory),它试图使用近似和不确定的信息来模仿人类的直觉推理。模糊集论使用数学表达来描述这样的不确定和模糊。
有时也认为模糊逻辑和模糊集论是相同的概念。
基本定义
隶属度
对于传统的布尔逻辑,对某件个事件的描述分类是非黑即白的,即是二值的。而在模糊逻辑中,对于某个事件的描述分类是基于概率分布的,称为隶属度(DoM,Degree
of Membership),这是一种多值逻辑。
比如使用模糊逻辑描述一个人的身高:“小刘有15%的概率被认为是高的。”(这样的描述称为语义命题)其中的15%是“小刘身高”隶属于“高”这一分类的隶属度。
模糊集和隶属度函数
模糊集(fuzzy
set)表示隶属于某个类别的所有个体。模糊集中所有个体各自的某一属性的所有可能取值(称为论域,univsersal
of
discourse)以及这个属性值对应该属性的隶属度可以被可视化为一条曲线,其值域范围为
例如上图描述了被认为是“高”的模糊集以及各个体的身高对应的隶属度。比如图上的一点:
从上面的描述可以看出,模糊逻辑的实质是通过一个映射将具体的数值映射为概率表示的隶属度,从而实现对数值的模糊化。
在模糊集论中,这个映射被称为隶属度函数(membership function)
模糊集可以由隶属度函数和模糊变量定义,用扎德表示法(Zadeh
presentation)写成:
隶属度函数的确定通常由专家根据实际经验得出。在许多情况下,经常是初步确定粗略的隶属函数,然后再通过“学习”和实践检验逐步修改和完善,而实际效果正是检验和调整隶属函数的依据。常见的隶属度函数是sigmoid函数和线性分段函数。
下面展示了有关于模糊变量:室内温度,评价为“冷”、“温和”、“热”的三个隶属度函数的表示:
模糊限制语
在自然语言中,人们对于模糊变量的描述通常还存在某些修饰词,来描述属性的剧烈程度,比如:“很(very)”,“有一点(a littly)”,“真的(indeed)”等等。模糊逻辑中使用模糊限制语(hedges)来表示这些修饰。简单来说,如果属性前具有模糊限制语,那么属性对应的隶属度函数形状将会根据某些规则改变。下表展示了常用的模糊限制语对隶属度函数的影响:
模糊限制语 | 数学表达 | 图示 (细线为原隶属度函数) |
---|---|---|
非常 very |
![]() |
|
十分很 very very |
![]() |
|
或多或少 more or less |
![]() |
|
真的 indeed |
![]() |
模糊规则
模糊规则(fuzzy
rules)用于描述若干个模糊变量之间的关系,用逻辑运算符(或且非等)和“IF...THEN...”结构表达。其中,"IF..."称为模糊规则的前项(antecendents)。
表示为:
IF
THEN
其中
例如:
IF wind IS strong AND temperature IS warm
THEN sailing IS good
模糊集操作
模糊集有关定义
空集
当且仅当一个模糊集 内的模糊变量个体的隶属度都为0,称模糊集 为空集:
α截集
模糊集 的α截集(α-cut)为其集合中隶属度大于等于 的个体的全集:
正规性和高度
当模糊集 的个体中中至少有一个的隶属度为1,称模糊集 是正规的(normality)。
模糊集中个体隶属度的最大值表示该模糊集的高度。支点
模糊集 中隶属度大于0的所有个体组成的全集为模糊集 的支点(support):
核
模糊集 中隶属度等于1的所有个体组成的全集为模糊集 的核(core):
基数
模糊集 的基数(cardinality)是其所有隶属度的和:
模糊集关系
模糊集关系表示两个模糊集之间的关系,有四种:交集(intersection)、并集(union)、补集(complement)和包含(containment)。
补集
补集关系表示个体不属于模糊集 的概率。
补集关系表示为1减去该模糊集的隶属度函数:
交集
交集关系表示个体属于两个模糊集交集 的概率。
交集关系表示为具有相同模糊变量的两个模糊集的每个隶属度取最小值:
并集
并集关系表示个体属于两个模糊集并集 的概率。
并集关系表示为具有相同模糊变量的两个模糊集的每个隶属度取最大值:
包含
如果一个模糊集 内的所有隶属度和模糊变量个体都属于模糊集 ,称模糊集 包含模糊集 .
全等
如果一个模糊集 内的所有隶属度和模糊变量个体都与模糊集 相同,称模糊集 与模糊集 全等.
模糊推理
知道模糊规则中蕴涵的模糊关系后,就可以根据模糊关系和输入情况,来确定输出情况,这就叫做模糊推理(fuzzy inference)。
Mamdani模糊推理
模糊推理技术中最常用的方法是Mamdani方法。1975年,伦敦大学的Ebrahim
Mamdani教授建立了第一个模糊系统来控制蒸汽机和锅炉.他应用了一套有经验的人类操作员提供的模糊规则。
Mandani模糊推理的过程有4步:
- 对输入变量进行模糊化
在取得精确输入
例如将某个精确的输入
得到:
评估规则
取得上一步中的模糊输入(比如例子中的: ),并将它们应用到模糊规则的前项(antecendents,即模糊规则中的IF表述)。如果已知的模糊规则存在多个前项,则使用逻辑关系符(AND或者OR)得到最终的一个输出值。并将得到的输出值使用α截剪切(clipping)后项对应的规则中。
逆模糊化
模糊系统最终的输出是一个数值,因此有必要将拼合好的规则通过某种方式聚合为一个数值。常见的方法有三种:- 质心
质心表示了已知精确值对应模糊集的期望,这是最常用的逆模糊化方法。其垂线刚好可以将拼合好的规则面积分为两部分,质心的计算公式如下:
- Max-in和Min-in
这两种方式表示了精确值对应模糊集的上下限,当聚合集具有多个最大值和最小值点时,有:
- 质心
Sugeno模糊推理
Mamdani模糊推理需要通过整合连续变化的函数来逆模糊化,计算效率通常不高。而Sugeno在聚合规则时只会聚合每个规则下对应的一个单例类。整合时每个规则在该单例类下有值,其他区域的值均为0。因此Sugeno方法聚合规则并不需要聚合一个区域,只用聚合几个值即可,计算量大幅度减小。因此Sugeno模糊推理常常用于模糊神经网络(下文会详细介绍)的反向传播中。
最常用的是零阶-Sugeno模糊推理模型,它的规则表示为:
IF
THEN
其中
在这样的规则表示下,每一个模糊规则的输出都是一个常数。所有规则的输出通过单例类表示。
Sugeno模糊推理的第二步评估规则表示如下:
第三步聚合表示为:
Sugeno模糊推理常常使用加权平均值来进行逆模糊化:
方法评价
在获取专家知识时常常使用Mamdani方法,这种方法可以用更加直接、更加符合人类直觉的方式来描述专家的意见。但是其计算量更大。
Sugeno方法的计算效率高,可以与优化算法和自适应技术协同工作。这种方法在控制问题、尤其是在动态非线性系统研究领域比较有吸引力。
模糊运算
模糊集与实数的运算
- 倍数
假定实数 与模糊集 ,有: - 幂
假定实数 与模糊集 ,有:
模糊关系
模糊关系用于表示两个模糊变量之间的关系强度。假设模糊变量
下图展示了一个模糊关系的计算例子:
间接关系
如果模糊变量
- max-min算子
- max-product算子
展开原则
展开原则(principle)描述了从一个模糊集
假设存在映射关系
模糊集间的四则运算
对于两个模糊集
如果计算后存在有
自适应神经模糊系统
模糊推理系统非常适于表示模糊的经验和知识,但缺乏有效的学习机制;神经网络虽然具有自学习功能,却又不能很好的表达人脑的推理功能。基于自适应神经网络的模糊推理系统ANFIS(ANFIS,Adaptive Network-based Fuzzy Inference System)将二者有机的结合起来,既发挥了二者的优点,又弥补了各自的不足。自适应神经网络模糊系统其中一个十分重要的应用,就是在信号处理和控制中消除噪声或干扰。
结构
模糊层
第一层是模糊层,模糊层的每个节点带有一个隶属值函数:
原始的自适应神经模糊系统第一层采用Sigmoid函数作为隶属值函数:
运算层
这一层实现前提部分的模糊集的运算。在这一层中的每个结点都是固定结点,它的输出是所有输入信号的代数积。每个结点的输出表示一条规则的激励强度,本层的结点函数还可以采用取小、有界积或强积的形式。通常采用AND运算。
归一化层
第三层将第二层的输出
结果层
这一层将归一化的权重应用到结合的单例项
逆模糊层
第五层是输出层,其将第四层的输出进行逆模糊化。逆模糊化的方法常常采用质心:
反向传播
自适应神经模糊系统的学习过程同样使用了基于梯度下降的反向传播。这是一种监督学习方法。
在ANIFS中,真实值和预测值的差表示为:
ANIFS系统中的参数