编辑
2023-12-29
深度学习
0
请注意,本文编写于 65 天前,最后修改于 65 天前,其中某些信息可能已经过时。

最近写了篇文章,主要是结合模糊神经网络的时序预测。模糊部分主要是采用了模糊自适应系统,也就是ANFIS,图片为论文插图,转载请说明。

Fig3.png

ANFIS主要由四部分组成,模糊化层(fuzzy layer),规则层(rule layer),归一化层(Normalization Layer),因果层(consequence layer). 这里以三个特征为例,假设输入为XX,fuzzy layer用于将特征进行模糊化,从而得到每个特征对应的隶属度。一般情况下针对每个特征都是使用高斯型隶属函数:

μ^(X)=e(μX)22σ2\hat{\mu}(X) = e^{-\frac{(\mu-X)^2}{2\sigma^2}}

其中μ^\hat\mu即为对应特征的隶属度,μ\muσ\sigma分别是高斯隶属函数的参数,这些参数将会在神经网络的训练过程中一同更新迭代,我们称这些参数为前向参数。我们为每一个特征设置了三个高斯隶属函数,将各个特征的隶属度组合成规则,可以组合成333^3条规则,这些规则表示了不同特征值隶属度的组合。通常情况下,规则通常以If Then\text{If} ~ \text{Then}形式表示:

Rulei:If x1 is μ^i,1 and x2 is μ^i,2 and x3 is μ^i,3 Then yi=f(x1,x2,x3)\text{Rule}_i : \text{If} ~ x_1 ~ \text{is} ~ \hat\mu_{i,1} ~ \text{and} ~ x_2 ~ \text{is} ~ \hat\mu_{i,2} ~ \text{and} ~ x_3 ~ \text{is} ~ \hat\mu_{i,3} ~ \text{Then} ~ y_i = f(x_1,x_2,x_3)

其中x1,x2,x3x_1,x_2,x_3代表三个不同特征,yiy_i规则输出结果,通常采用线性加权的方式 q来计算:

yi=c0+c1x1+c2x2+c3x3y_i = c_0 + c_1x_1 + c_2x_2 + c_3x_3

cic_i被称为后向参数,和μ,σ\mu,\sigma类似,将会在训练过程中学习。在rule layer,我们需要计算每一个规则的触发强度SiS_i,计算方式如下,将每个变量的隶属度μ^\hat\mu相乘:

Si=Πi=1nμ^iS_i = \Pi_{i=1}^n\hat\mu_i

其中nn指每一个特征的隶属函数个数。SiS_i描述了规则ii在当前输入下的适用程度。在Normalization Layer,我们需要对上一层得到的SiS_i做归一化,表征该规则在整个规则库中的触发比重,也就是在推理过程中使用到这条规则的概率。

Wi=Sij=1NSjW_i = \frac{S_i}{\sum_{j=1}^{N} S_j}

其中WiW_i就是归一化后的触发强度。在Consequence Layer,我们需要进行去模糊化操作,即对每条规则的输出yiy_i进行加权求和,这里的权重就是归一化层的输出WiW_i

Wfuzzy=i=1NWiyiW_{fuzzy} = \sum_{i=1}^NW_iy_i

其中NN就是规则的总数。

通常情况下,ANFIS的输出只能有一个,也就是模糊权重,可以理解为这些特征的一个影响程度,通常和其他的深度模型结合。

本文作者:知交

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!