摘要
将故障检测与分类问题表述为基于神经网络的分类问题。然后,训练神经网络,进行故障检测,并考虑两个超参数(隐藏层层数和神经元数)的影响,研究了数据增强对神经网络性能的影响。利用神经网络进行数据扩充,解决了故障分类问题。
1.基于分类的人工神经网络
1.对于数据驱动的故障诊断方法来说,在将输入数据馈送到输入层之前需要对其进行归一化,一种可能的方法是特征缩放,以便所有值都在[0,1]范围内。
x
′
=
x
−
m
i
n
(
x
)
m
a
x
(
x
)
−
m
i
n
(
x
)
{x}'=\frac{x-min(x)}{max(x)-min(x)}
x′=max(x)−min(x)x−min(x)
2.在隐藏层中,输入数据中包含的信息通过非线性变换,依次转换为更高的表示形式。
h
1
=
σ
(
W
1
x
+
b
1
)
h_{1}=\sigma (W_{1}x+b_{1})
h1=σ(W1x+b1)
h
l
=
σ
(
W
l
h
l
−
1
+
b
l
)
,
l
=
{
2
,
⋯
,
d
}
h_{l}=\sigma (W_{l}h_{l-1}+b_{l}),l=\left \{ 2,\cdots ,d \right\}
hl=σ(Wlhl−1+bl),l={2,⋯,d}
其中,
x
∈
R
n
x
x\in \mathbb{R}^{n_{x}}
x∈Rnx是输入层向量,
h
l
∈
R
n
h
l
h_{l}\in \mathbb{R}^{n_{h_{l}}}
hl∈Rnhl是隐藏层向量,
W
1
∈
R
n
h
l
×
n
h
l
−
1
W_{1}\in \mathbb{R}^{n_{h_{l}}\times n_{h_{l-1}}}
W1∈Rnhl×nhl−1是权重矩阵,
b
l
∈
R
n
h
l
b_{l}\in \mathbb{R}^{n_{h_{l}}}
bl∈Rnhl是偏置向量。
R
n
h
l
\mathbb{R}^{n_{h_{l}}}
Rnhl和
d
d
d分别是每个隐藏层的神经元个数和隐藏层层数。
σ
\sigma
σ是非线性激活函数,例如ReLU函数
σ
(
x
)
=
m
a
x
(
0
,
x
)
\sigma(x)=max(0,x)
σ(x)=max(0,x)
3.构建最后一层隐藏层的输出和softmax函数,然后选择输出最大的值,为对应输入数据提供一个预测标签。此为有监督学习。
2.作为分类问题的故障诊断
1.故障检测问题可以表示为一个二元分类问题,其中两个标签分别表示为正常和故障。在这种情况下,神经网络使用两个不同的数据集进行训练:一个是正常运行数据,另一个是带有特定类型故障的运行数据。
2.类似地,故障分类问题可以表述为多类分类问题。现在,我们可以使用多个数据集来训练神经网络,每个数据集都包含正常和各种故障数据。定义故障检测率(FDR)和故障虚警率(FAR)
FDR=带有故障标签的故障样品数/所有故障样品数
FAR=带有故障标签的正常样品数/所有正常样品数
显然,更高的FDR和更低的FAR表示模型更好。
3.在这种情况下,可以使用准确率和混淆矩阵来评估神经网络的性能。
3.案例
1.介绍
一个名为田纳西-伊斯曼(TE)过程,作为过程控制和监控技术的测试问题。它由反应器、冷凝器、压缩机、分离器和汽提塔五个主要工艺单元组成,如图
从A、C、D、E四种反应物中产生两种产物G和H,以及一种副产物F.。定义多种不同的故障类型
2.神经网络
1.最近在线发布的数据集用于神经网络的训练和测试。数据集提供了每种正常/故障状态下500次模拟运行的数据(总共10500次运行),每个数据集包含25小时模拟运行的结果,采样时间为3分钟,产生500个数据样本。对于每种状态,300次模拟运行用于训练,其余200次模拟运行用于测试。网络最初设计为有52个输入节点,以便每个数据样本直接用作网络的输入。
2.使用Xavier初始化神经网络,采用ADAM优化器进行训练。将训练数据集分成50个batch进行批量训练,训练了400个epoch。
3.训练结果
1.将隐藏层层数分别设置为0、1、2、3、4进行对比。
2.20种故障被分为三类。故障类型1:即使使用无隐藏层的网络,也能成功检测。所有步骤类型的故障都包含在该故障类型中;故障类型2:浅层网络(1个隐藏层)足以检测到这种故障类型。一些类型未知的故障被归类为该故障类型;故障类型3:至少需要2个隐藏层才能有效检测,该故障类型包含非阶跃类型的故障以及一些未知的故障。
3.通过结合几个连续的样本来增加输入数据,模拟动态主成分分析,结果整体精度得到了提高。
可以看出,数据增强是进一步提高故障检测精度的关键,也有利于故障分类。