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

【模糊逻辑】Type-1 Fuzzy Systems

  • 3.4.3 模糊化及其推理的影响
      • 3.4.3.1 Singleton Fuzzifier
        • 例3.5
        • 例3.6
      • 3.4.3.2 Non-Singleton Fuzzifier
        • 例3.7 Non-Singleton Fuzzifier 量化求解 Firing Level
  • 3.5 对规则触发(Fired-Rule)的输出集进行组合
    • 3.5.1Mamdani 模糊系统:使用集合论运算进行组合
  • 3.6 去模糊化(Defuzzification)
    • 3.6.1 Mamdani 模糊系统:质心去模糊器(Centroid Defuzzifier)
    • 3.6.2 Mamdani 模糊系统:高度去模糊器(Height Defuzzifier)
    • 3.6.3 Mamdani 模糊系统:改进版高度去模糊器(Modified Height Defuzzifier)
    • 3.6.4 Mamdani 模糊系统:COS Defuzzifier
  • 3.8 模糊基函数
    • 模糊基函数定义

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进行讲述,所以就不放上来了。

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

模糊基函数定义

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765965.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【linux】CentOS查看系统信息

一、查看版本号 在CentOS中,可以通过多种方法来查看版本号。以下是几种常用的方法: 使用cat命令查看/etc/centos-release文件: CentOS的版本信息存储在/etc/centos-release文件中。可以使用cat命令来显示该文件的内容,从而获得C…

力扣hot100:153. 寻找旋转排序数组中的最小值(二分的理解)

由力扣hot100:33. 搜索旋转排序数组(二分的理解)-CSDN博客,我们知道二分实际上就是找到一个策略将区间“均分”。对于旋转数组问题,在任何位置分开两个区间,如果原区间不是顺序的,分开后必然有一…

BRAM底层原理详细解释(1)

目录 一、原语 二、端口简述 2.1 端口简介 2.2 SDP端口映射 三、端口信号含义补充说明 3.1 字节写使能(Byte-Write Enable)- WEA and WEBWE: 3.2 地址总线—ADDRARDADDR and ADDRBWRADDR 3.3 数据总线—DIADI, DIPADIP, DIBDI, and D…

【c++初阶】C++入门(下)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿🌿&#x1…

AI元年,这5款AI写作能为你提供帮助

自从人工智能技术的迅猛发展以来,AI在各个领域都取得了巨大的进步。其中,AI写作工具成为越来越多人关注的焦点。在这个AI元年,小编想向大家分享5款可能对你有帮助的AI写作工具,如果你也想找AI写作相关的工具,那么来看看…

【数据结构基础】之八大排序(C语言实现)

【数据结构基础】之八大排序(C语言实现) 🐧 冒泡排序♈️ 冒泡排序原理及代码实现♈️ 稳定性分析 🐧 选择排序♈️ 选择排序原理及代码实现♈️ 稳定性分析 🐧 插入排序♈️ 插入排序的原理及代码实现♈️ 稳定性分析 &#x1f4…

(附源码)基于Spring Boot和Vue的智能订餐与外卖系统设计与实现

1. 引言 这部分通常包含了研究背景、研究意义、国内外研究现状、本文研究内容以及论文结构安排。 研究背景:介绍当前外卖市场的快速发展,以及智能订餐系统对改善人们生活的影响。研究意义:强调这类系统在现代生活中的作用和开发的创新点。国…

Kubernetes一文上手【手把手系列】

目录 Kubernetes前言部署方式的演变 K8S概述K8S架构Master节点1. API Server2. Etcd3. Controller Manager4. Scheduler Node节点1. kubelet2. kube-proxy3. 容器运行时 组件与插件1. Kubernetes DNS2. Dashboard3. Heapster4. Ingress Controller K8S核心概念PodSerivceNamesp…

CodeSys创建自定义的html5控件

文章目录 背景创建html5control.xml文件控件界面以及逻辑的实现使用的资源安装自定义的html5控件库 背景 查看官方的资料:https://content.helpme-codesys.com/en/CODESYS%20Visualization/_visu_html5_dev.html 官方的例子:https://forge.codesys.com/…

使用 PyOpenGL 进行 2D 图形渲染总结

一、说明 OpenGL是一个广泛使用的开放式跨平台实时 3D 图形库,开发于二十多年前。它提供了一个低级API,允许开发人员以统一的方式访问图形硬件。在开发需要硬件加速且需要在不同平台上运行的复杂 2D 或 3D 应用程序时,它是首选平台。它可以在…

liunx centos7 下通过yum删除安装已经安装的php

执行下面命令查看php相关的包 rpm -qa | grep php 只需要卸载几个名为common的包即可,其他同版本依赖会被全部删除,删除php71w-common,71w版本的依赖包全部会被删除。 查看php包的命令 rpm -qa | grep php 或 yum list installed | gre…

unity编辑器扩展高级用法

在PropertyDrawer中,您不能使用来自GUILayout或EditorGUILayout的自动布局API,而只能使用来自GUI和EditorGUI的绝对Rect API始终传递相应的起始位置和维度。 你需要 计算显示嵌套内容所需的总高度将此高度添加到public override float GetPropertyHeig…

实用工具推荐:适用于 TypeScript 网络爬取的常用爬虫框架与库

随着互联网的迅猛发展,网络爬虫在信息收集、数据分析等领域扮演着重要角色。而在当前的技术环境下,使用TypeScript编写网络爬虫程序成为越来越流行的选择。TypeScript作为JavaScript的超集,通过类型检查和面向对象的特性,提高了代…

Linux :环境基础开发工具

目录: 1. Linux 软件包管理器 yum 1. 什么是软件包 2. 查看软件包 3. 如何安装软件 4. 如何卸载软件 2. Linux开发工具 1. Linux编辑器-vim的基本概念 2. vim使用 3. vim的基本操作 4. vim正常模式命令集 5. vim末行模式命令集 6. 简单vim配置 3. Linux编译器-gcc/…

常用相似度计算方法总总结

一、欧几里得相似度 1、欧几里得相似度 公式如下所示: 2、自定义代码实现 import numpy as np def EuclideanDistance(x, y):import numpy as npx np.array(x)y np.array(y)return np.sqrt(np.sum(np.square(x-y)))# 示例数据 # 用户1 的A B C D E商品数据 [3.3…

知识管理软件那么多,怎么挑选才适合初创企业?

对于初创企业来说,资源有限,效率显得尤其重要。此时,一个强大的知识管理软件就显得必不可少。它不仅利于信息的录入、查找和共享,还可以帮助团队更好的组织和协作,提高工作效率。那么,在众多的知识管理软件…

SQL-Labs靶场“34-35”关通关教程

君衍. 一、34关 POST单引号宽字节注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入 二、35关 GET数字型报错注入1、源码分析2、联合查询注入3、updatexml报错注入4、floor报错注入 SQL-Labs靶场通关教程: SQL注入第一课 SQL注入思路基础 SQL无列…

第 6 章 ROS-xacro练习(自学二刷笔记)

重要参考: 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 6.4.3 Xacro_完整使用流程示例 需求描述: 使用 Xacro 优化 URDF 版的小车底盘模型实现 结果演示: 1.编写 X…

使用Dockerfile打包java项目生成镜像部署到Linux

1、Dockerfile 介绍 如果说容器就是“小板房”,镜像就是“样板间”。那么,要造出这个“样板间”,就必然要有一个“施工图纸”,由它来规定如何建造地基、铺设水电、开窗搭门等动作。这个“施工图纸”就是“Dockerfile”。 比起容…

VUE3.0(一):vue3.0简介

Vue 3 入门指南 什么是vue Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界…