【模糊逻辑】Type-1 Fuzzy Systems-2

3.4.3 模糊化及其推理的影响

前一篇博客“【模糊逻辑】Type-1 Fuzzy Systems-1”我们得到了输出的模糊集MF
μ B l ( y ∣ x ) = f l ( x ) ★ μ G l ( y ) , y ∈ Y \mu_{B^l}(y|\textbf{x})=f^l(\textbf{x})\bigstar \mu_{G^l}(y),y\in Y μBl(yx)=fl(x)μGl(y),yY
其中 f l ( x ) f^l(\textbf{x}) fl(x)firing level表示如下
f l ( x ) = T i = 1 p { s u p x i ∈ X i [ μ X i ( x i ∣ x ) ★ μ F i l ( x i ) ] } f^l(\textbf{x})=T_{i=1}^p\{sup_{x_i\in X_i}[\mu_{X_i}(x_i|x)\bigstar\mu_{F_i^l}(x_i)]\} fl(x)=Ti=1p{supxiXi[μXi(xix)μFil(xi)]}
本节将针对firing level进行分析,可以对每个x进行分析,即 f l ( x i ) = s u p x i ∈ X i μ X i ( x i ∣ x ) ★ μ F i l ( x i ) f^l(x_i)=sup_{x_i\in X_i}\mu_{X_i}(x_i|x)\bigstar \mu_{F_i^l}(x_i) fl(xi)=supxiXiμXi(xix)μFil(xi)来进行分类分析。
接下来,将从Singleton模糊器和Non-Singleton模糊器来分别进行分析。

3.4.3.1 Singleton Fuzzifier

根据single fuzzification的定义
μ A ∗ = { 1 , x = x ′ 0 , x ≠ x ′ \mu_{A^*}= \left\{ \begin{array}{lr} 1 ,x=x^{'} & \\ 0 ,x\ne x^{'} & \end{array} \right. μA={1,x=x0,x=x
μ X i ( x i ∣ x ′ ) \mu_{X_i}(x_i|x') μXi(xix)存在唯独单点非零,令该点 x i = x i ′ x_i=x_i' xi=xi,则有
f l ( x i ) = s u p x i ∈ X i μ X i ( x i ∣ x i ′ ) ★ μ F i l ( x i ) = 1 ★ μ F i l ( x ′ ) = μ F i l ( x i ′ ) f^l(x_i)=sup_{x_i\in X_i}\mu_{X_i}(x_i|x_i')\bigstar \mu_{F_i^l}(x_i)=1\bigstar \mu_{F_i^l}(x')= \mu_{F_i^l}(x_i') fl(xi)=supxiXiμXi(xixi)μFil(xi)=1μFil(x)=μFil(xi)

由此firing level有以下表达式
f l ( x ) = T i = 1 p   μ F i l ( x i ′ ) f^l(\textbf{x})=T_{i=1}^p\ \mu_{F_i^l}(x_i') fl(x)=Ti=1p μFil(xi)
可以发现,此时的表达式,相较于先前的sup-star表达式,简化了很多;这也就是这个表达式非常著名的原因!
当然了这个表达式,还存在很多问题,尤其是应对现实场景,存在测量噪声和测量误差;在这种情况下,往往需要引入non-singleton fuzzification来分析。

由此得到Mamdani fuzzy system下的输出模糊集
μ B l ( y ∣ x ′ ) = T i = 1 p   μ F i l ( x i ′ ) ★ μ G l ( y ) , y ∈ Y \mu_{B^l}(y|\textbf{x}')=T_{i=1}^p\ \mu_{F_i^l}(x_i')\bigstar \mu_{G^l}(y),y\in Y μBl(yx)=Ti=1p μFil(xi)μGl(y),yY

例3.5

假设现在有一个规则 μ F i ( x i ) \mu_{F_i}(x_i) μFi(xi),分别有singleton fuzzfication具体的值 x 1 ′ x_1' x1 x 2 ′ x_2' x2,其中规则、具体的非零点分别由下图的虚线和深蓝色线表示。
根据T-norm的定义不同,分为min和prod,由此得到对应不同的firing level的结果。
在这里插入图片描述

例3.6

例3.5是在某一个规则下计算的firing level。本例子使用两个规则,分别为 l 1 l_1 l1 l 2 l_2 l2。类似例3.5,可以计算得到对应的firing level,即下图中的 μ l i \mu^{l_i} μli。类似的,根据T-norm的定义不同,分为min和prod,得到对应不同 μ Y l i \mu_{Y^{l_i}} μYli

在这里插入图片描述

3.4.3.2 Non-Singleton Fuzzifier

对于Non-Singleton Fuzzification定义如下
f l ( x i ′ ) = s u p x i ∈ X i μ X i ( x i ∣ x ′ ) ★ μ F i l ( x i ) ≡ sup ⁡ x i ∈ X i μ Q i l ( x i ∣ x i ′ ) f^l(x_i')=sup_{x_i\in X_i}\mu_{X_i}(x_i|x')\bigstar \mu_{F_i^l}(x_i)\equiv \sup_{x_i\in X_i}\mu_{Q_i^l}(x_i|x_i') fl(xi)=supxiXiμXi(xix)μFil(xi)xiXisupμQil(xixi)
由于此时 μ X i ( x i ∣ x ′ ) \mu_{X_i}(x_i|x') μXi(xix)不再是单点非零函数,所以整体是计算变得更加复杂。
大致需要分为两步计算:

  1. 首先计算 μ Q i l ( x i ∣ x i ′ ) , l ∈ L , i ∈ P \mu_{Q_i^l}(x_i|x_i'),l\in L,i\in P μQil(xixi),lL,iP
  2. 然后根据 arg ⁡ sup ⁡ x i ∈ X i μ Q i l ( x i ∣ x i ′ ) \arg\sup_{x_i\in X_i}\mu_{Q_i^l}(x_i|x_i') argsupxiXiμQil(xixi)得到 x i , m a x l x^l_{i,max} xi,maxl f l ( x ′ ) = μ Q i l ( x i , m a x l ∣ x i ′ ) f^l(x')=\mu_{Q_i^l}(x^l_{i,max}|x_i') fl(x)=μQil(xi,maxlxi)

由此得到Non-Singleton Fuzzifier的firing level
f l ( x ′ ) = T i = 1 P μ Q i l ( x i , m a x l ∣ x i ′ ) f^l(\textbf{x}')=T_{i=1}^P\mu_{Q_i^l}(x^l_{i,max}|x_i') fl(x)=Ti=1PμQil(xi,maxlxi)
通过比较Singleton Fuzzifier的firing level,可以发现Non-Singleton Fuzzifier的firing level,对于输入的x’进行了预滤波,生成服从规则的 x i , m a x l x^l_{i,max} xi,maxl,如下图所示,不难发现这种预滤波的功能是sup-star天然存在的性能,即内部自然生成。区别于当下火热的神经网络,其滤波无法自然生成。
在这里插入图片描述

例3.7 Non-Singleton Fuzzifier 量化求解 Firing Level

假设现在的MF为高斯,其中第i各输入模糊集和对应的规则前置模糊集表示如下
在这里插入图片描述
计算的整体思路如下:

  • 【两条虚线到黑实线】首先根据T-norm的定义不同,分为min和prod,计算 μ Q i l ( x i ∣ x i ′ ) , l ∈ L , i ∈ P \mu_{Q_i^l}(x_i|x_i'),l\in L,i\in P μQil(xixi),lL,iP,即下图加粗黑色实线
  • 【黑实线的最大值】然后根据 arg ⁡ sup ⁡ x i ∈ X i μ Q i l ( x i ∣ x i ′ ) \arg\sup_{x_i\in X_i}\mu_{Q_i^l}(x_i|x_i') argsupxiXiμQil(xixi)得到 x i , m a x l x^l_{i,max} xi,maxl f l ( x ′ ) = μ Q i l ( x i , m a x l ∣ x i ′ ) f^l(x')=\mu_{Q_i^l}(x^l_{i,max}|x_i') fl(x)=μQil(xi,maxlxi),即在规则 l l l下,找到每个加粗黑色实线的最大值;
  • 【红色引导线,求firing level】最后根据 f l ( x ′ ) = T i = 1 P μ Q i l ( x i , m a x l ∣ x i ′ ) f^l(\textbf{x}')=T_{i=1}^P\mu_{Q_i^l}(x^l_{i,max}|x_i') fl(x)=Ti=1PμQil(xi,maxlxi),求min/prod,得到firing level。
    在这里插入图片描述
    计算的具体步骤如下:
    在这里插入图片描述
    如果当下的每个输入都有相似的不确定性,则不确定中的方差则相同,上面的表达方式可以进一步统一,例如时间序列来说则往往服从这个假设
    在这里插入图片描述
    此时,我们一起来考虑一个问题:
    对于singleton fuzzification的firing level来说,其主要由大量 F i l F_i^l Fil共同作用产生;
    那么对于Non-singleton fuzzification的firing level来说,其主要由大量 μ Q i l ( x i , m a x l ∣ x i ′ ) \mu_{Q_i^l}(x^l_{i,max}|x_i') μQil(xi,maxlxi)共同作用产生。
    根据以上的3.7例子中,这两者的表达式分别为
    在这里插入图片描述
    可以发现,下式的方差更大,对于MF来说则更大。这里具体举例了两条Guassion来直观理解
    在这里插入图片描述

综上来说,Non-singleton fuzzification相较于singleton fuzzification的firing level数值更大,可以引起更多规则的触发(fire)

  • 一个有趣的理解,对于singleton fuzzification来说,Non-singleton fuzzification可以通过改变输入的不确定性,即改变X的方差,来将Non-singleton fuzzification逼近与singleton fuzzification,即X的方差为零时就变成了singleton fuzzification。所以也可以理解为,对于这个例子来说,Non-singleton fuzzification的表达式也包含了对singleton fuzzification的诠释。
  • 另外,MF的不确定性会导致更多的规则被触发,作为对抗并弥补这种不确定性的影响。

3.5 对规则触发(Fired-Rule)的输出集进行组合

在这里插入图片描述

回到先前我们已经学过的第一类模糊系统,我们已经完成了模糊化器、推理引擎、规则触发的分块以及级联的思考。现在我们得到了输出的模糊集。值得注意的是,由于可能触发了不同的规则,所以我们得到的输出集可能不止一个。而对于去模糊化来说,即一个精确化系统来说,需要一一对应,无法类似模糊化系统一样。所以在去模糊化之前,需要先对输出集进行组合。

3.5.1Mamdani 模糊系统:使用集合论运算进行组合

这里主要介绍利用集合论的思考,将规则触发了的输出集进行组合

在这里插入图片描述
在这里插入图片描述

3.6 去模糊化(Defuzzification)

对于去模糊化,我们的最终目标需要将以上得到的映射在一个实数上。
以下介绍几种常见的去模糊化方法。

3.6.1 Mamdani 模糊系统:质心去模糊器(Centroid Defuzzifier)

基本思想是:对输出的集合B,离散为N点。然后利用这N点的MF值求质心。

在这里插入图片描述

3.6.2 Mamdani 模糊系统:高度去模糊器(Height Defuzzifier)

基本思想是:代替融合了所有规则触发的输出集,根据每个规则的输出,仅使用该输出的单一值,即MF最大值,来进行计算。
在这里插入图片描述

考虑到质心去模糊器的计算复杂度极大,所以产生了这种极简模糊器,因为规则 l l l往往远小于3.6.1的离散点数N。
如下图,可以对质心去模糊器(b)和高度去模糊器(a)进行简单理解
在这里插入图片描述

3.6.3 Mamdani 模糊系统:改进版高度去模糊器(Modified Height Defuzzifier)

基本思想:由于高度去模糊化器仅仅只是利用了各规则触发输出的最高值,忽略了大量其他信息,例如MF的形状,分布等。所以改进版主要是将MF的方差也考虑其中,即将最高值除以方差,作为最终计算的输入,以得到结果。
y m s ( x ) = ∑ l = 1 M y ˉ l μ B l ( y ˉ l ) / ( σ l ) 2 ∑ l = 1 M μ B l ( y ˉ l ) / ( σ l ) 2 y_{ms}(\textbf{x})=\frac{\sum_{l=1}^M\bar{y}^l\mu_{B^l}(\bar{y}^l)/(\sigma^l)^2}{\sum_{l=1}^M\mu_{B^l}(\bar{y}^l)/(\sigma^l)^2} yms(x)=l=1MμBl(yˉl)/(σl)2l=1MyˉlμBl(yˉl)/(σl)2

3.6.4 Mamdani 模糊系统:COS Defuzzifier

基本思想是:延续高度去模糊化的思考,同时考虑到原先这个去模糊化器缺少对各规则触发输出的MF大量的信息,所以由结合了质心去模糊化器的思想——分别对每个规则触发输出的MF求质心,然后将其作为单一值 c l c^l cl,来进行最终的结果计算
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.8 模糊基函数

综合上次博客和这次博客,我们基本将整个第一类模糊系统的框架中各个模块进行了梳理
现在,我们需要整理出一个输入输出的映射关系,即 y = f ( x ′ ) y=f(\textbf{x}') y=f(x)
但是,大家也可以想想,一路而来,我们学习了些什么

  • 且不考虑t-norm就分为min和prod
  • fuzzifier有singleton和non-singleton
  • inference和rule,我们其实是学习了6种常见的rule的
  • defuzzifier介绍有四种去模糊化器

所以说,如果想将这些都大一统在一个表达式中,似乎从当前这个思考维度上是无法将其都统一起来的(当然指不定,在更高维度,能够将这些看似毫不相关的组合,都组合起来哈——至今也没有定论呢)

以下举例一两个常见的组合,感兴趣的可以看下,在书里还有关于TSK fuzzy system的一些案例,因为本博客主要就是对Mamdani fuzzy system进行讲述,所以就不放上来了。

在这里插入图片描述
在这里插入图片描述

模糊基函数定义

在这里插入图片描述
在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 07:22:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 07:22:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 07:22:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 07:22:05       20 阅读

热门阅读

  1. 基于FPGA的UDP协议栈设计第六章_仲裁模块设计

    2024-03-24 07:22:05       17 阅读
  2. leetcode - 362. Design Hit Counter

    2024-03-24 07:22:05       20 阅读
  3. v-if 遇到 el-form 表单验证规则遇到的bug

    2024-03-24 07:22:05       19 阅读
  4. c语言:日期识别1

    2024-03-24 07:22:05       19 阅读
  5. 单片机MCU,MPU,SOC的工艺结构原理及选型参数总结

    2024-03-24 07:22:05       21 阅读
  6. TensorFlow打印网络参数的个数

    2024-03-24 07:22:05       18 阅读