目录

  • 模糊理论
    • Fuzzy Set
    • Fuzzy set operations
  • Fuzzy Min Max Classifier
  • 应用:基于模糊神经网络的水轮机调速器PID控制

模糊理论

在本篇内容中,我们将了解模糊神经网络(Fuzzy Neural Network),在此之前,先了解模糊理论。现实世界总是充满不确定性。因此,在建模系统的时候,我们需要考虑这种不确定性。我们之前其实已经在概率论中接触过这种不确定的建模形式。类似于概率论,Zadeh开发了一种不同的不确定表示形式,即模糊集(Fuzzy Set)。

Fuzzy Set

以身高为例,定义集合A为高个子,在经典的Crisp Set(two-value,二元集)理论中,只定义某一元素隶属于或不隶属于A。比如高个子的定义是身高高于1.75m,那么身高1.78m的人是A的成员,而身高1.50m的人不是A的成员。但是这样的集合存在问题:

  • 假设一个人身高1.73m,尽管他离1.75m的标准只差了0.02m,却被粗暴地判定为不是高个子;
  • 在集合A里,也没有任何区分度。身高1.75m与身高2.20m被一视同仁;
  • 对于集合A内成员,也没有包含语义(semantic)描述;

在模糊集Fuzzy Set中,所有人都是集合A的成员(member),只是匹配度不同。例如身高2.20m的人的成员匹配度可为0.95,而身高1.7m的人成员匹配度为0.40。与传统集合不同,模糊集中的每个元素都有对应的隶属度(membership value)。隶属度是指一个元素属于这个集合的确定度(或不确定度)。模糊集被隶属度函数描述,在为模糊集选择隶属度函数时,要符合以下约束:

  • 隶属函数的下界是0,上界是1;
  • 对于每个元素x∈Xx\in Xx∈X,隶属函数μ(x)\mu(x)μ(x)的值是唯一的,换言之,在同一个模糊集中,每一个元素只有一个隶属度;

从上面描述可以发现,Crisp Set其实是Fuzzy Set的特殊形式,其限制了隶属函数值为0或1。

在应用中,模糊子集用于表达更详细的语义,比如对于年龄age,其子集有old与young,以young为例,年龄对于young的隶属函数如下:

对于温度,其子集有cold,cool,comfortable,warm,hot:

另外还有更常用的子集{NB,NM,NS,O,PS,PM,PB},7 个词汇分别代表负大Negative Big、负中Negative Middle、负小Negative Small、零Zero、正小Positive Small、正中Positive Middle、正大Positive Big。

Fuzzy set operations

现在重新定义模糊集的表示,模糊集可以被记作AAA,映射μA(⋅)\mu_{A}(\cdot)μA​(⋅)被称为模糊集AAA上的隶属函数。对于每个x∈Ux\in Ux∈U,μA(x)\mu_{A}(x)μA​(x)叫做元素xxx对模糊集AAA的隶属度。

模糊集的常用表示方法如下:

  • 解析法,即给出隶属函数的具体表现形式;
  • Zadeh记法,例如:A=1x1+0.5x2+0.72x3+0x4A=\frac{1}{x_{1}}+\frac{0.5}{x_{2}}+\frac{0.72}{x_{3}}+\frac{0}{x_{4}}A=x1​1​+x2​0.5​+x3​0.72​+x4​0​,其中,分母是论域(任何科学理论都有它的研究对象,这些对象构成一个不空的集合,称为论域)中的元素,分子是该元素的隶属度,若隶属度为0,该项可以省略;
  • 序偶法,例如A={(x1,1),(x2,0.5),(x3,0.72),(x4,0)}A=\left\{(x_{1},1),(x_{2},0.5),(x_{3},0.72),(x_{4},0)\right\}A={(x1​,1),(x2​,0.5),(x3​,0.72),(x4​,0)},序偶对的前者是论域中的元素,后者是该元素对应的隶属度;
  • 向量法,在有限论域场合,给论域中元素规定顺序,则可以用向量表示A=(1,0.5,0.72,0)A=(1,0.5,0.72,0)A=(1,0.5,0.72,0);

对于两个模糊集AAA和BBB,模糊集的基本运算为:

  • 包含:A⊆B⇔A(x)≤B(x),x∈UA\subseteq B\Leftrightarrow A(x)\leq B(x),x\in UA⊆B⇔A(x)≤B(x),x∈U
  • 相等:A=B⇔A(x)=B(x),x∈UA=B\Leftrightarrow A(x)=B(x),x\in UA=B⇔A(x)=B(x),x∈U
  • 并:A∪BA\cup BA∪B的隶属函数μ(x)\mu(x)μ(x)为:(A∪B)(x)=A(x)∨B(x)(A\cup B)(x)=A(x)\vee B(x)(A∪B)(x)=A(x)∨B(x)
  • 交:A∩BA\cap BA∩B的隶属函数μ(x)\mu(x)μ(x)为:(A∩B)(x)=A(x)∧B(x)(A\cap B)(x)=A(x)\wedge B(x)(A∩B)(x)=A(x)∧B(x)
  • 余:ACA^{C}AC的隶属函数μ(x)\mu(x)μ(x)为:AC(x)=1−A(x)A^{C}(x)=1-A(x)AC(x)=1−A(x)

Fuzzy Min Max Classifier

下面我们认识模糊最小最大分类器,这算是最早期的模糊神经网络:

假设我们有一个nnn维的特征AhA_{h}Ah​,我们有K=cK=cK=c个判别函数(隶属度函数),其中,每个判别函数都描述了特征相对于该隶属度对应的模糊子集的置信度,置信度在[0,1][0,1][0,1]之间。我们相信在推断过程中,输出最大值的判别函数是最可信的,从而考虑将输入的特征分类到该模糊子集下。

可见,像小波网络一样,模糊神经网络在多层神经网络的基础上增加了一些可解释性,比如使用隶属度函数作为神经网络中的激活函数,并且每个神经元都有不同的隶属度计算方式,这让每个神经元天生就具有了更强的物理意义。

在过去,由于计算资源,训练算法的发展很薄弱,模糊神经网络的训练可能像深度信念网络那样困难,但现在我们可以使用反向传播就进行清晰的训练。

应用:基于模糊神经网络的水轮机调速器PID控制

我们可以将模糊神经网络与PID控制结合,将机组转速的误差和误差变化率作为网络的输入,经过网络的模糊推理向PID控制器输出三个参数Kp,Ki,KdK_{p},K_{i},K_{d}Kp​,Ki​,Kd​,模型框架如下:

令输入变量为转速误差eee和误差变化率ece_{c}ec​,输出变量为比例系数,积分系数,微分系数Kp,Ki,KdK_{p},K_{i},K_{d}Kp​,Ki​,Kd​。确定输入和输出变量中间的词集(模糊子集)为:X={NB,NM,NS,Z,PS,PM,PB}X=\left\{NB,NM,NS,Z,PS,PM,PB\right\}X={NB,NM,NS,Z,PS,PM,PB}7 个词汇分别代表负大Negative Big、负中Negative Middle、负小Negative Small、零Zero、正小Positive Small、正中Positive Middle、正大Positive Big。

eee和ece_{c}ec​的论域均为:{−6,−5,−4,−3,−2,−1,0,1,2,3,4,5,6}\left\{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6\right\}{−6,−5,−4,−3,−2,−1,0,1,2,3,4,5,6}其次,定义各个模糊子集的隶属函数为正态分布:F(x)=exp[−(x−c)2σ2]F(x)=exp[-\frac{(x-c)^{2}}{\sigma^{2}}]F(x)=exp[−σ2(x−c)2​]其中,xxx为论域中的样本,c,σc,\sigmac,σ分别为位置参数,尺度参数,两个参数可以取不同的值使得各个模糊子集的隶属函数不一样。

模糊神经网络包括5层,分别为输入层,隶属函数层,模糊推理层,归一化层,输出层。网络结构如下:

下面对每一层进行分析:

  • 对于第一层即输入层,该层不做变换地输出2个节点,分别为转速误差和误差变化率:xix_{i}xi​,其中i=1,2i=1,2i=1,2
  • 第二层为隶属函数层,该层接收第一层的两个输出,通过前面定义的正态分布隶属函数,分别将转速误差和误差变化率两个变量映射到7个词汇上,即得到两组隶属度值(每组有7个模糊子集,每个模糊子集对应一个隶属度值):Aij(xi)=exp[−(xi−cij)2σij2]A_{i}^{j}(x_{i})=exp[-\frac{(x_{i}-c_{ij})^{2}}{\sigma_{ij}^{2}}]Aij​(xi​)=exp[−σij2​(xi​−cij​)2​]其中,cij,σijc_{ij},\sigma_{ij}cij​,σij​分别为第iii个输入变量中第jjj个词汇变量下的隶属函数的参数。
  • 第三层为模糊推理层,该层的每一个输出节点对应一个模糊规则,该层的输出在于计算每个模糊规则的隶属度值(用两个变量下的隶属度乘积表示):αl=A1i1(x1)×A2i2(x2)\alpha_{l}=A_{1}^{i_{1}}(x_{1})\times A_{2}^{i_{2}}(x_{2})αl​=A1i1​​(x1​)×A2i2​​(x2​)其中,i1=i2={1,2,3,4,5,6,7},l=1,2,...,49i_{1}=i_{2}=\left\{1,2,3,4,5,6,7\right\},l=1,2,...,49i1​=i2​={1,2,3,4,5,6,7},l=1,2,...,49,i1,i2i_{1},i_{2}i1​,i2​为两个变量下的7个词汇索引,因此模糊规则有49种,αl\alpha_{l}αl​代表每条模糊规则的隶属度。
  • 第四层为归一化层,用于对49个模糊规则的隶属度值进行归一化;
  • 最后一层为输出层,用于对得到的特征(49个模糊规则的隶属度值)进行线性变换,得到输出结果。

这个模糊神经网络使用PID的历史调节数据训练,通过回归的训练方式更新隶属函数层和输出层的参数。

可见,模糊神经网络在结构上引入了模糊规则,使得神经网络具有了一定可解释性。

第三十四课.模糊神经网络相关推荐

  1. 实践数据湖iceberg 第三十四课 基于数据湖icerberg的流批一体架构-流架构测试

    系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...

  2. 第二十四课.循环神经网络RNN

    目录 朴素RNN与LSTM 从NN到RNN RNN结构 LSTM RNN的扩展模型 多层RNN 双向RNN 递归网络Recursive Network 注意:本篇是RNN的内容补充,关于RNN模型和B ...

  3. 第三十二课.脉冲神经网络SNN

    目录 时间驱动与事件驱动 时间驱动 事件驱动 基于时间驱动的脉冲神经元 spikingjelly:LIF神经元 实验仿真 时间驱动与事件驱动 时间驱动 为了便于理解时间驱动,我们可以将SNN(spik ...

  4. 学习淘淘商城第三十四课(在业务逻辑中添加缓存)

    上节课我们一起学习了如何用Spring容器来管理Redis单机版和集群版实现.这节我们来学习下在业务中添加缓存. Redis添加缓存有两种方式,一种是set,另一种是hset,这两种方式的不同之处是h ...

  5. 新版标准日本语初级_第三十四课

    语法   1. 他动 てあります:表示有意进行的动作结果的存续状态.在这个句型里不涉及动作的主体,而只涉及动作的对象. 壁にカレンダーが掛けてあります(墙上挂着挂历) 窓が開けてあります(窗户开着) ...

  6. HLS第三十四课(UG871,HLS IP接入SOC系统)

    能够和其他模块通过AXIS互联的接口, 需要使用接口约束,axis. 能够和DMA通过AXI4互联的接口, 需要使用接口约束,m_axi. 能够接入SOC系统的, 需要使用接口约束,s_axilite ...

  7. 实践数据湖iceberg 第二十四课 iceberg元数据详细解析

    系列文章目录 实践数据湖iceberg 第一课 入门 实践数据湖iceberg 第二课 iceberg基于hadoop的底层数据格式 实践数据湖iceberg 第三课 在sqlclient中,以sql ...

  8. 计算机教案精美图片我收集,人教版三年级信息技术《第十四课 美化图片我来做》教案(精品获奖)...

    教学设计 编写者 执教者 执教时间 6月14日星期五 版本 人教版 学科 信息技术 册数 三年级(下册) 单元 课题 第十四课 美化图片我来做 课时 教学目标 一课时 通过调整图片的明暗和色调以及处理 ...

  9. NeHe OpenGL教程 第三十六课:从渲染到纹理

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

最新文章

  1. MariaDB AX开源分析解决方案
  2. 用今日头条的方法推荐公开课
  3. Raider对F#支持的技术细节
  4. Redis学习-4-4 Redis安全设置
  5. java 把string转为keyevent_盘点现在Java强大第三方库(字符串操作),程序员都该知道!...
  6. 两点间最短路 java_AcWing 850. Dijkstra求最短路 II_Java实现含详细注释
  7. JavaSE04、什么是类和对象,如何使用?
  8. 在线HTML转JS/JSON工具
  9. PYTHON INSTALL
  10. UI设计是什么要学习哪些软件
  11. python qt是什么_初识Python与Qt
  12. 815:Flooded!
  13. c 与易语言程序间通信,易语言与三菱PLC通信-FX系列
  14. Mac OS 关闭系统更新提示小红点
  15. 高级Magento模型 EAV
  16. 个人网盘配置——以Cloudreve为例
  17. win7文件权限设置
  18. Android 物联网基于WIFI tcp配网流程
  19. [面经]网易互娱 游戏研发 offer√
  20. removing emojis from string python

热门文章

  1. 开源!开源!我写的Anto.exe C#代码自动生成工具.欢迎下载。。
  2. 字节一面:Redis主节点的Key已过期,但从节点依然读到过期数据....
  3. 什么是布隆过滤器?如何解决高并发缓存穿透问题?
  4. 不满你说,我最近跟Java源码杠上了...
  5. 助你进大厂,这些Mysql索引底层知识你是必须知道的。
  6. 【高并发】高并发分布式锁架构解密,不是所有的锁都是分布式锁!!
  7. 写给工程师的十条精进原则
  8. JVM 从入门到“精通”,妥妥的
  9. 边缘计算的三种模式:MEC、微云和雾计算
  10. 管理95后员工,管理者必知的4条底层逻辑