模糊理论
在本篇内容中,我们将了解模糊神经网络(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 ∈ X x\in X x∈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
现在重新定义模糊集的表示,模糊集可以被记作 A A A,映射 μ A ( ⋅ ) \mu_{A}(\cdot) μA(⋅)被称为模糊集 A A A上的隶属函数。对于每个 x ∈ U x\in U x∈U, μ A ( x ) \mu_{A}(x) μA(x)叫做元素 x x x对模糊集 A A A的隶属度。
模糊集的常用表示方法如下:
- 解析法,即给出隶属函数的具体表现形式;
- Zadeh记法,例如: A = 1 x 1 + 0.5 x 2 + 0.72 x 3 + 0 x 4 A=\frac{1}{x_{1}}+\frac{0.5}{x_{2}}+\frac{0.72}{x_{3}}+\frac{0}{x_{4}} A=x11+x20.5+x30.72+x40,其中,分母是论域(任何科学理论都有它的研究对象,这些对象构成一个不空的集合,称为论域)中的元素,分子是该元素的隶属度,若隶属度为0,该项可以省略;
- 序偶法,例如 A = { ( x 1 , 1 ) , ( x 2 , 0.5 ) , ( x 3 , 0.72 ) , ( x 4 , 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);
对于两个模糊集 A A A和 B B B,模糊集的基本运算为:
- 包含: A ⊆ B ⇔ A ( x ) ≤ B ( x ) , x ∈ U A\subseteq B\Leftrightarrow A(x)\leq B(x),x\in U A⊆B⇔A(x)≤B(x),x∈U
- 相等: A = B ⇔ A ( x ) = B ( x ) , x ∈ U A=B\Leftrightarrow A(x)=B(x),x\in U A=B⇔A(x)=B(x),x∈U
- 并: A ∪ B A\cup B A∪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 ∩ B A\cap B A∩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)
- 余: A C A^{C} AC的隶属函数 μ ( x ) \mu(x) μ(x)为: A C ( x ) = 1 − A ( x ) A^{C}(x)=1-A(x) AC(x)=1−A(x)
Fuzzy Min Max Classifier
下面我们认识模糊最小最大分类器,这算是最早期的模糊神经网络:
假设我们有一个
n
n
n维的特征
A
h
A_{h}
Ah,我们有
K
=
c
K=c
K=c个判别函数(隶属度函数),其中,每个判别函数都描述了特征相对于该隶属度对应的模糊子集的置信度,置信度在
[
0
,
1
]
[0,1]
[0,1]之间。我们相信在推断过程中,输出最大值的判别函数是最可信的,从而考虑将输入的特征分类到该模糊子集下。
可见,像小波网络一样,模糊神经网络在多层神经网络的基础上增加了一些可解释性,比如使用隶属度函数作为神经网络中的激活函数,并且每个神经元都有不同的隶属度计算方式,这让每个神经元天生就具有了更强的物理意义。
在过去,由于计算资源,训练算法的发展很薄弱,模糊神经网络的训练可能像深度信念网络那样困难,但现在我们可以使用反向传播就进行清晰的训练。
应用:基于模糊神经网络的水轮机调速器PID控制
我们可以将模糊神经网络与PID控制结合,将机组转速的误差和误差变化率作为网络的输入,经过网络的模糊推理向PID控制器输出三个参数
K
p
,
K
i
,
K
d
K_{p},K_{i},K_{d}
Kp,Ki,Kd,模型框架如下:
令输入变量为转速误差 e e e和误差变化率 e c e_{c} ec,输出变量为比例系数,积分系数,微分系数 K p , K i , K d K_{p},K_{i},K_{d} Kp,Ki,Kd。确定输入和输出变量中间的词集(模糊子集)为: X = { N B , N M , N S , Z , P S , P M , P B } 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。
e e e和 e c e_{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 ) = e x p [ − ( x − c ) 2 σ 2 ] F(x)=exp[-\frac{(x-c)^{2}}{\sigma^{2}}] F(x)=exp[−σ2(x−c)2]其中, x x x为论域中的样本, c , σ c,\sigma c,σ分别为位置参数,尺度参数,两个参数可以取不同的值使得各个模糊子集的隶属函数不一样。
模糊神经网络包括5层,分别为输入层,隶属函数层,模糊推理层,归一化层,输出层。网络结构如下:
下面对每一层进行分析:
- 对于第一层即输入层,该层不做变换地输出2个节点,分别为转速误差和误差变化率: x i x_{i} xi,其中 i = 1 , 2 i=1,2 i=1,2
- 第二层为隶属函数层,该层接收第一层的两个输出,通过前面定义的正态分布隶属函数,分别将转速误差和误差变化率两个变量映射到7个词汇上,即得到两组隶属度值(每组有7个模糊子集,每个模糊子集对应一个隶属度值): A i j ( x i ) = e x p [ − ( x i − c i j ) 2 σ i j 2 ] A_{i}^{j}(x_{i})=exp[-\frac{(x_{i}-c_{ij})^{2}}{\sigma_{ij}^{2}}] Aij(xi)=exp[−σij2(xi−cij)2]其中, c i j , σ i j c_{ij},\sigma_{ij} cij,σij分别为第 i i i个输入变量中第 j j j个词汇变量下的隶属函数的参数。
- 第三层为模糊推理层,该层的每一个输出节点对应一个模糊规则,该层的输出在于计算每个模糊规则的隶属度值(用两个变量下的隶属度乘积表示): α l = A 1 i 1 ( x 1 ) × A 2 i 2 ( x 2 ) \alpha_{l}=A_{1}^{i_{1}}(x_{1})\times A_{2}^{i_{2}}(x_{2}) αl=A1i1(x1)×A2i2(x2)其中, i 1 = i 2 = { 1 , 2 , 3 , 4 , 5 , 6 , 7 } , l = 1 , 2 , . . . , 49 i_{1}=i_{2}=\left\{1,2,3,4,5,6,7\right\},l=1,2,...,49 i1=i2={1,2,3,4,5,6,7},l=1,2,...,49, i 1 , i 2 i_{1},i_{2} i1,i2为两个变量下的7个词汇索引,因此模糊规则有49种, α l \alpha_{l} αl代表每条模糊规则的隶属度。
- 第四层为归一化层,用于对49个模糊规则的隶属度值进行归一化;
- 最后一层为输出层,用于对得到的特征(49个模糊规则的隶属度值)进行线性变换,得到输出结果。
这个模糊神经网络使用PID的历史调节数据训练,通过回归的训练方式更新隶属函数层和输出层的参数。文章来源:https://www.toymoban.com/news/detail-422660.html
可见,模糊神经网络在结构上引入了模糊规则,使得神经网络具有了一定可解释性。文章来源地址https://www.toymoban.com/news/detail-422660.html
到了这里,关于第三十四课.模糊神经网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!