基于ICA的线性监督分类的故障诊断方法
ICA+I2统计量
数据预处理
训练集样本(只有正样本)为 X n ∗ m {{\rm{X}}_{{\rm{n*m}}}} Xn∗m (需要列均值为零,似乎可以不用z-score归一化,只保证列均值为零),每行一个样本,样本数目n,特征维度m。
对
X
X
X进行ICA分解(可用sklearn库的FastICA计算):
X
n
∗
m
=
S
n
∗
m
A
m
∗
m
T
{{\rm{X}}_{{\rm{n*m}}}}{\rm{ = }}{{\rm{S}}_{{\rm{n*m}}}}{\rm{A}}_{{\rm{m*m}}}^{\rm{T}}
Xn∗m=Sn∗mAm∗mT
S n ∗ m = X n ∗ m W m ∗ m T {{\rm{S}}_{{\rm{n*m}}}}{\rm{ = }}{{\rm{X}}_{{\rm{n*m}}}}{\rm{W}}_{{\rm{m*m}}}^{\rm{T}} Sn∗m=Xn∗mWm∗mT
对于第
i
i
i个的样本
x
i
(
m
∗
1
)
x_{i(m*1)}
xi(m∗1),变换是:
x
i
=
A
s
i
{x_i}{\rm{ = A}}{{\rm{s}}_i}
xi=Asi
s i = W x i {{\rm{s}}_i}{\rm{ = W}}{x_i} si=Wxi
其中, S = ( s 1 , . . . , s n ) T {\rm{S = (}}{{\rm{s}}_{\rm{1}}}{\rm{,}}...{\rm{,}}{{\rm{s}}_{\rm{n}}}{{\rm{)}}^{\rm{T}}} S=(s1,...,sn)T是分解之后的统计独立的分量,A称作混淆矩阵,W称作解混矩阵(每行是一个分量)。
从W中选取d个分量出来,作为变换矩阵 W d W_d Wd,选取方法有:
- 选择前d个具有最大 向量无穷范数 的分量
- 选择前d个具有最大 向量二范数 的分量。(或者其他选法)(采用sklearn库的FastICA时,建议n_components参数设置为上述m,然后按此法选择d个分量,而不是直接设置为d)
一般选择样本的d个统计独立的分量进行计算:
S
(
n
∗
d
)
=
X
n
∗
m
W
d
∗
m
T
=
(
s
1
(
d
∗
1
)
,
.
.
.
,
s
n
(
d
∗
1
)
)
T
{{\rm{S}}_{{\rm{(n*d)}}}}{\rm{ = }}{{\rm{X}}_{{\rm{n*m}}}}{\rm{W}}_{{\rm{d*m}}}^T = {({s_{1(d*1)}},...,{s_{n(d*1)}})^{\rm{T}}}
S(n∗d)=Xn∗mWd∗mT=(s1(d∗1),...,sn(d∗1))T
I 2 I^2 I2统计量的计算
首先经过FastICA变换,得到n个样本的所有源信号s(d维)组成的源矩阵:
S
(
n
∗
d
)
=
X
n
∗
m
W
d
∗
m
T
=
(
s
1
(
d
∗
1
)
,
.
.
.
,
s
n
(
d
∗
1
)
)
T
{{\rm{S}}_{{\rm{(n*d)}}}}{\rm{ = }}{{\rm{X}}_{{\rm{n*m}}}}{\rm{W}}_{{\rm{d*m}}}^T = {({s_{1(d*1)}},...,{s_{n(d*1)}})^{\rm{T}}}
S(n∗d)=Xn∗mWd∗mT=(s1(d∗1),...,sn(d∗1))T
计算n个样本的
I
2
I^2
I2统计量的值,第
i
i
i个样本的
I
2
I^2
I2值(注意
s
i
s_i
si是d维):
I
i
2
=
s
i
T
s
i
{\rm{I}}_i^2{\rm{ = s}}_i^{\rm{T}}{{\rm{s}}_{\rm{i}}}
Ii2=siTsi
对于新样本,在均值化和FastICA分解时,均使用训练样本集的参数(如向量均值,还有上述变换矩阵
W
d
W_d
Wd等)进行操作。最后求出新样本的
s
i
s_i
si值后,再求取新样本的
I
2
I^2
I2值。
I 2 I^2 I2统计量的控制限
由于ICA是基于源信号中至多存在一个高斯的假设,因此无法求出公式化的概率密度或概率分布函数。所以,采用核密度估计法(Kernel density estimation)求取。步骤如下:
-
首先,使用滑窗法,估计出比较合适的概率密度函数(注,应是所有正常样本的 I 2 I^2 I2值,构成的一维向量) p ( I 2 ) p({I^2}) p(I2)。(可使用sklearn库的KernelDensity)。此处求取的即是正常样本的 I 2 I^2 I2值分布情况。类似于横坐标是 I 2 I^2 I2值,纵坐标是该 I 2 I^2 I2值出现的频次(概率)。注:尽管上述公式求解的 I 2 I^2 I2应大于等于0,但估计出来的概率密度函数,在负数区域的概率密度可能并不为零。
-
求出0.99置信位置处的 I 2 I^2 I2值作为控制限 I α I_{\alpha} Iα。
一个使用面积积分法的0.99置信位置估计方案(应该有更好的方案):在足够大的区间内(应涵盖上述概率密度函数所有非零函数值的横坐标范围),以非常小的步长,生成一系列的点(即横坐标的值),求取所有点对应的概率密度函数值,以步长作为积分区间的宽,以该区间左侧或右侧的点的概率密度值作为高,求出该小区间的面积。求取所有小积分区间的面积和作为概率为1时的总面积值。然后,从左至右累加小积分区间的面积,当达到总面积的0.99时,此时积分区间所在的横坐标值可作为置信度为0.99时的置信位置,即控制限值。(注:此方案暂未找到合适的文献作为论证。若发现误差很大,先尝试提高FastICA的迭代次数和收敛精度,在考虑这里的方案是不是有问题。没有找到合适文献的意思就是不知道别人论文里这一部分究竟是怎么实现的。哭)
故障判定
若系统正常运行,新样本的 I 2 I^2 I2值应满足 I 2 < I α {I^2}<{I_{\alpha}} I2<Iα,反之,认为出现故障。
参考文献
Lee, Jong-Min, ChangKyoo Yoo和In-Beum Lee. 《Statistical process monitoring with
independent component analysis》. Journal of Process Control 14, 期 5 (2004年8月1日): 467–85. https://doi.org/10.1016/j.jprocont.2003.09.004.
Hsu, Chun-Chin, Mu-Chen Chen和Long-Sheng Chen. 《A Novel Process Monitoring Approach
with Dynamic Independent Component Analysis》. Control Engineering Practice 18, 期 3 (2010年3月): 242–53. https://doi.org/10.1016/j.conengprac.2009.11.002.
DICA+I2统计量
X(l)生成过程同DPCA,参见链接。
剩余步骤同此。