ENFRN 动态进化混合模型2010
摘要
跟据基因调控网络重建面临的三个问题:数据高维、时间动态、测量噪声,提出了一种多层进化训练的神经-模糊递归网络(ENFRN),可以用于描述潜在目标基因和调控的类型。
其中递归、自组织机构和进化训练等特点优化了弱调控关系,模糊的特性避免了噪声影响的问题,最后为每一组调控都给定了分数。方法最终在酵母的基准数集上进行了测试。
各个方法的特点
传统方法:
- Boolean Networks(布尔网络):只有0和1两个状态,不能表示中间的状态等级。
- Bayesian Networks(贝叶斯网络):不能考虑到时间动态性
- Dynamic Byesian Networks(动态贝叶斯网络):较高的计算复杂度
- linear additive regulation models(线性附加调控网络):不能计算非线性的动态基因调控网络
近期的方法:(相对于2010年)
- hybrid neuro-genetic algorithm(混合神经进化算法):当模型面对复杂动态基因时间序列时ANN可能会陷入局部陷阱中。
详情见https://blog.youkuaiyun.com/loveC__/article/details/88977410 - recurrent neural networks(RNNs,递归神经网络):虽然有自使用循环,反向链接,递归可以记录历史信息,但是没有recurrent fuzzy neural networks(RFNNs,递归模糊神经网络)表现好,模糊特性可以更好的处理不确定的噪声数据。
算法
由于算法较为复杂,故此大致描述一下算法的整体流程,核心结构是一个5层的递归神经模糊网络,通过三次对其优化,得到基因调控之间的调控类型和潜在调控关系。其中最初第一次初始化网络结构,接着第二次优化使用BPSO对网络的结构进行优化,最后使用PSO对网络结构参数进行微调,对每个基因分配Regulation Score(RS)和Regulation Type。
ENFRN 5层结构
ϕ
i
(
k
)
\phi_i^{(k)}
ϕi(k)表示节点
i
i
i在第
k
k
k层上的输入,
Ψ
i
(
k
)
\Psi_i^{(k)}
Ψi(k)表示节点
i
i
i在第
k
k
k层上的输出。
1. 第一层:第一层为输入层,每个节点直接输入变量到下一层中
Ψ
i
(
1
)
=
ϕ
i
(
1
)
=
x
i
\Psi_i^{(1)}= \phi_i^{(1)}=x_i
Ψi(1)=ϕi(1)=xi
2. 第二层:标签语言输入层,该层中的每个节点表示一个高斯隶属函数,该函数对应于一个语言标签
Ψ
i
j
(
2
)
=
e
x
p
(
(
ϕ
i
j
(
2
)
−
c
i
j
)
2
σ
i
j
2
)
\Psi_{ij}^{(2)} = exp \Bigg({\frac {(\phi_{ij}^{(2)}-c_{ij})^2}{\sigma_{ij}^2}} \Bigg)
Ψij(2)=exp(σij2(ϕij(2)−cij)2)
其中
c
i
j
c_{ij}
cij代表均值,
σ
\sigma
σ表示标准差,
Ψ
i
j
\Psi_{ij}
Ψij表示第
i
i
i个输入变量的第
j
j
j个隶属函数。在第二层中有递归的结构,这一层中每一个节点的输入的某个时间点为
t
t
t:
ϕ
i
j
(
2
)
(
t
)
=
x
i
(
t
)
+
β
i
j
⋅
Ψ
i
j
(
2
)
(
t
−
1
)
\phi_{ij}^{(2)}(t) = x_i(t)+\beta_{ij} \cdot \Psi_{ij}^{(2)}(t-1)
ϕij(2)(t)=xi(t)+βij⋅Ψij(2)(t−1)
其中
β
i
j
\beta_{ij}
βij表示反馈单元的链接权重,
ϕ
i
j
\phi_{ij}
ϕij表示第
i
i
i个输入变量的第
j
j
j个隶属函数。可以从公式看出其中
Ψ
i
j
(
2
)
\Psi_{ij}^{(2)}
Ψij(2)是节点上一个时间的输出,作为了现在隶属函数中的输入。此公式表示了第二层的递归链接的方式,保存了每一层的过去状态的信息。
3. 第三层:规则层,包括所有的规则节点,每一个节点都匹配一个规则,后面将会详细讲述,第三层节点的添加规则。
Ψ
i
(
3
)
=
∏
i
ϕ
i
(
3
)
\Psi_i^{(3)} = \prod_i \phi_i^{(3)}
Ψi(3)=i∏ϕi(3)
其中:
∏
i
ϕ
i
(
3
)
=
e
x
p
(
−
[
D
i
(
ϕ
i
(
2
)
−
c
i
)
]
T
[
D
i
(
ϕ
i
(
2
)
−
c
i
)
]
)
\prod_i \phi_i^{(3)} = exp \Bigg( -[D_i \big(\phi_i^{(2)}-c_i \big)]^T[D_i \big(\phi_i^{(2)} -c_i \big)] \Bigg)
i∏ϕi(3)=exp(−[Di(ϕi(2)−ci)]T[Di(ϕi(2)−ci)])
每个规则节点的输出,对应这个规则的触发强度。
4. 第四层:ENFRN对输出进行分区,这些节点被称为语言节点,对应于模糊规则的后面部分。
Ψ
i
(
4
)
=
∑
i
ϕ
i
(
4
)
\Psi_i^{(4)} = \sum_i \phi_i^{(4)}
Ψi(4)=i∑ϕi(4)
当前层的每个节点的输出,是规则层中规则节点的和(这些规则层中对应节点的结果是当前节点)。
5. 第五层:输出层,去模糊过程
y
j
=
Ψ
i
(
5
)
=
∑
i
w
i
j
ϕ
i
(
5
)
∑
i
ϕ
i
(
5
)
y_j = \Psi_i^{(5)} = \frac {\sum_i w_{ij}\phi_i^{(5)}}{\sum_i \phi_i^{(5)}}
yj=Ψi(5)=∑iϕi(5)∑iwijϕi(5)
w
i
j
w_{ij}
wij是输出层模糊集的宽度。ENFRN为对应输出变量计算预测值。
算法分为三大部分:
- 第一部分:5层结构的创建。首先需要对第三层规则层进行初始化,初始化规则节点,通过训练集得到规则层的规则节点数量。
- 第二部分:使用BPSO对ENFRN进行优化和学习,这一层主要优化ENFRN的结构,简化模型,降低冗余的规则。
- 第三部分:使用PSO对ENFRN中的具体参数进行学习优化。
实验结果
由于论文中链接失效,无法获取数据集和测试集,最终在网络上找到了cdc_15和cdc_28的时间序列测试集,使用cdc_15作为训练集,cdc_28作为测试集,得到以下结果。
a/a | Regulator | Type | Target | Train Composite Score | Test Composite Score |
---|---|---|---|---|---|
1 | Gene5 | + | Gene1 | 0.32194 | 0.26300 |
2 | Gene3 | - | Gene1 | 31.19813 | 32.06183 |
3 | Gene4 | + | Gene4 | 30.34433 | 30.25702 |
4 | Gene5 | + | Gene6 | 0.39765 | 0.31757 |
5 | Gene12 | + | Gene6 | 0.39765 | 0.31757 |
6 | Gene6 | + | Gene7 | 0.33661 | 0.20830 |
7 | Gene8 | + | Gene7 | 0.33661 | 0.22057 |
8 | Gene1 | - | Gene7 | 0.52834 | 0.40458 |
9 | Gene9 | - | Gene10 | 30.38451 | 29.63479 |
由于数据中没有基因的名称,故对基因进行了1-12进行了编号,从数据可以看出,从12个基因中得到了9组调控信息,其中+代表积极调控(Up Regulation)
-代表不稳定调控(UnStable Regulation)。