﻿ 一种改进的FCM聚类算法的混合矩阵估计
«上一篇
 文章快速检索 高级检索

 应用科技  2019, Vol. 46 Issue (2): 47-52  DOI: 10.11991/yykj.201809020 0

引用本文

GUO Lingfei, ZHANG Linbo. Mixing matrix estimation based on an improved FCM clustering algorithm[J]. Applied Science and Technology, 2019, 46(2), 47-52. DOI: 10.11991/yykj.201809020.

文章历史

Mixing matrix estimation based on an improved FCM clustering algorithm
GUO Lingfei, ZHANG Linbo
College of Information and Communication Engineering, Harbin Engineering University, Harbin 150001, China
Abstract: The research is to improve the fuzzy C-means (FCM) clustering algorithm based on the enhancement of signal sparsity. Its goal is to achieve the purpose of improving the accuracy of mixing matrix estimation and solve the problem of underdetermined blind source separation better. In this paper, the mixing matrix estimation algorithm in the "two-step method" of sparse component analysis theory is improved mainly. After a brief description of the blind source separation problem, an FCM clustering algorithm based on membership classification optimization is proposed. The classification of the data is affected by changing the membership classification method in the objective function, determining the estimation accuracy of the elements in the mixing matrix. Finally, an improved algorithm was used in the speech signal simulation experiment to complete the mixing matrix estimation. The experimental results show that the matrix estimation error obtained by the improved algorithm is small, which can improve the estimation accuracy of the mixing matrix by reducing the normalized mean square error by 1.3 dB, and angular deviation by 1° at most.
Keywords: underdetermined blind source separation    sparse component analysis    two-step method    mixing matrix estimation    membership classification    FCM clustering algorithm    speech signal    estimation accuracy

1 盲源分离问题描述

1.1 盲源分离系统模型

 ${X}(t) = {AS}(t) + {N}(t)$

 ${Y}(t) = {WX}(t)$

1.2 预处理过程

1.2.1 信号初始化

 ${\overset{\frown} {{X}}} (t) = \left\{ {\begin{array}{*{20}{c}} {\displaystyle\frac{{{X}(t)}}{{\left\| {{X}(t)} \right\|}},}&{{x_k}(t) \geqslant 0} \\ { - \displaystyle\frac{{{X}(t)}}{{\left\| {{X}(t)} \right\|}},}&{{x_k}(t) < 0} \end{array}} \right.$ (1)
1.2.2 边缘能量点处理

 $\left\| {{X}(t,f)} \right\| > \rho \cdot \max \left\| {{X}(t,f)} \right\|$

1.3 稀疏成分分析

1)获取观测信号，选取最合适的时频变换工具，实现最优的稀疏变换，使得信号在变换域内尽量稀疏；

2)信号在稀疏域中，散点图出现线性聚类的情况，即呈现方向性，使用聚类法、势函数法等准确地估计混合矩阵；

3)混合矩阵估计结束后，利用如线性规划法、压缩感知法等实现源信号的恢复，最后将源信号由变换域恢复到时域即可。

2 混合矩阵估计算法 2.1 模糊C均值（FCM）算法

FCM算法是一种基于目标函数的模糊聚类算法，该算法具体内容描述为：设 $n$ 个样本数据构成集合 ${x} = \left\{ {{x_1},{x_2}, \cdots ,{x_n}} \right\}$ ，聚类中心集 ${P} = \left\{ {{p_1},{p_2}, \cdots ,{p_c}} \right\}$ ，将其分为 $c$ 类。接着引入分类矩阵 ${U}\left( {x} \right) = \left[ {{u_{ij}}} \right]$ 处理样本 $\left( {i = 1,2, \cdots ,c,j = 1,2, \cdots ,n} \right)$ ，其中 ${u_{ij}}$ 为样本 ${x_j}$ 对第 $i$ 个聚类中心 ${p_i}$ 的隶属度，约束条件满足

 $\sum\limits_{i = 1}^c {{u_{ij}}} = 1,{u_{ij}} \geqslant 0$

 $J\left( {{U},{P}} \right) = \sum\limits_{i = 1}^c {\sum\limits_{j = 1}^n {{u_{ij}}^m{{\left\| {{x_j} - {p_i}} \right\|}^2}} }$ (2)

FCM算法步骤如下：

1）：参数初始化。包括加权指数 $m$ ，聚类中心个数 $c$ ，分类矩阵 ${{U}^{\left( 0 \right)}}$ ，迭代次数 $l = 0$ ，最大迭代次数 ${T_{\max }}$ ，阈值 $\varepsilon$

2）更新分类矩阵 ${{U}^{\left( l \right)}}$ 和聚类中心 ${{P}^{\left( {l + 1} \right)}}$ ，按表达式(3)、(4)进行。

 ${u_{ij}}^{\left( l \right)} = {\left( {\displaystyle\sum\limits_{k = 1}^c {{{\left( {\displaystyle\frac{{\left\| {{x_j} - {p_i}^{\left( l \right)}} \right\|}}{{\left\| {{x_j} - {p_k}^{\left( l \right)}} \right\|}}} \right)}^{\frac{2}{{m - 1}}}}} } \right)^{ - 1}}$ (3)
 ${p_i}^{\left( {l + 1} \right)} = \displaystyle\frac{{\displaystyle\sum\limits_{j = 1}^n {{{\left( {{u_{ij}}^{\left( {l + 1} \right)}} \right)}^m}} {x_j}}}{{\displaystyle\sum\limits_{j = 1}^n {{{\left( {{u_{ij}}^{\left( {l + 1} \right)}} \right)}^m}} }}$ (4)

3）计算到相邻2次目标函数之差小于规定的阈值或者迭代次数达到最大值的时候，即满足 $\left\| {J\left( {{{U}^{\left( l \right)}},{{P}^{\left( l \right)}}} \right) - J\left( {{{U}^{\left( {l + 1} \right)}},{{P}^{\left( {l + 1} \right)}}} \right)} \right\| < \varepsilon$ $l > {T_{\max }}$ 时，结束迭代，输出分类矩阵 ${U}$ 和聚类中心集 ${P}$ 。否则返回步骤2）继续迭代， $l = l + 1$ ，直到满足结束条件为止。

2.2 隶属度划分方式优化

1）将式(2)的FCM聚类目标函数改写为

 $J'\left( {{U},{P}} \right) = \displaystyle\sum\limits_{i = 1}^c {\displaystyle\sum\limits_{j = 1}^n {{u_{ij}}^m} } {d^2}\left( {{x_j},{p_i}} \right) + \displaystyle\sum\limits_{i = 1}^c {\displaystyle\sum\limits_{j = 1}^n {{b_j}{u_{ij}}\left( {1 - {u_{ij}}^{m - 1}} \right)} }$ (5)

 ${b_j} = {b^{\left| {s - 1} \right|}} \cdot \min \left\{ {{d^2}\left( {{x_j},{p_s}} \right)\left| {s \in \left\{ {1,2, \cdots ,c} \right\}} \right.} \right\}$ (6)

 ${u_{1j}} > {u_{2j}} > \cdots > {u_{cj}}$

2）利用Lagrange函数构造目标函数，然后分别对 ${u_{ij}}$ ${p_i}$ 求偏导数，得到如下方程：

 $\displaystyle\frac{{\partial J}}{{\partial {u_{ij}}}} = m{\left\| {{x_j} - {p_i}} \right\|^2}{u_{ij}}^{m - 1} + {\lambda _j} + {b_j} - m{b_j}{u_{ij}}^{m - 1} = 0$
 $\frac{{\partial J}}{{\partial {p_i}}} = \displaystyle\sum\limits_{j = 1}^n {2{u_{ij}}^m\left( {{x_j} - {p_i}} \right)} = 0$

 ${u_{ij}} = \displaystyle\frac{1}{{{{\displaystyle\sum\limits_{k = 1}^c {\left( {\displaystyle\frac{{{d^2}\left( {{x_j},{p_i}} \right) - {b^{\left| {s - 1} \right|}} \cdot {{\min }_{1 \leqslant s \leqslant c}}{d^2}\left( {{x_j},{p_s}} \right)}}{{{d^2}\left( {{x_j},{p_k}} \right) - {b^{\left| {s - 1} \right|}} \cdot {{\min }_{1 \leqslant s \leqslant c}}{d^2}\left( {{x_j},{p_s}} \right)}}} \right)} }^{\frac{1}{{m - 1}}}}}}$
 ${p_i} = \displaystyle\frac{{\displaystyle\sum\limits_{j = 1}^n {{u_{ij}}^m} {x_j}}}{{\displaystyle\sum\limits_{j = 1}^n {{u_{ij}}^m} }}$

3）遵循传统FCM算法的步骤，完成分类矩阵 ${U}$ 和聚类中心集 ${P}$ 计算。

2.3 混合矩阵估计流程

3 仿真实验及结果分析

3.1 语音信号的仿真实验

 ${A} = \left[ {\begin{array}{*{20}{c}} {0.750 \; 3}&{ - 0.858 \; 7}&{0.661 \; 9}&{ - 0.262 \; 6} \\ {0.532 \; 7}&{0.175 \; 3}&{0.985 \; 6}&{0.334 \; 3} \\ { - 0.068 \; 7}&{0.464 \; 2}&{0.367 \; 0}&{0.730 \; 9} \end{array}} \right]$

4路源信号经过混合矩阵A传输，形成的观测信号时域波形如图4所示。

 ${\hat {{A}}_{{\rm{FCM}}}} = \left[ {\begin{array}{*{20}{c}} {0.707 \; 0}&{ - 0.867 \; 0}&{0.632 \; 1}&{ - 0.245 \; 6} \\ {0.561 \; 9}&{0.178 \; 4}&{0.992 \; 8}&{0.392 \; 8} \\ { - 0.082 \; 2}&{0.466 \; 9}&{0.395 \; 0}&{0.757 \; 9} \end{array}} \right]$

 ${\hat {{A}}_{{\rm{I - FCM}}}} = \left[ {\begin{array}{*{20}{c}} {0.709 \; 7}&{ - 0.864 \; 5}&{0.652 8}&{ - 0.252 \; 9} \\ {0.568 \; 8}&{0.173 \; 5}&{0.992 \; 3}&{0.386 \; 6} \\ { - 0.073 \; 9}&{0.461 \; 0}&{0.383 \; 5}&{0.753 \; 2} \end{array}} \right]$

3.2 算法性能比较

1)归一化均方误差（normalized mean squared error，NMSE）

 ${E_{\rm NMSE}} = 10\lg \left( {\displaystyle\frac{{\displaystyle\sum\limits_{i = 1}^M {\displaystyle\sum\limits_{j = 1}^N {{{\left( {{{\hat a}_{ij}} - {a_{ij}}} \right)}^2}} } }}{{\displaystyle\sum\limits_{i = 1}^M {\displaystyle\sum\limits_{j = 1}^N {{a_{ij}}^2} } }}} \right)$

2)偏离角度

 ${{A}}\left( {{a},\hat {{a}}} \right) = \displaystyle\frac{{180}}{{\rm{\text π}}}\arccos \left( {\displaystyle\frac{{\left\langle {{a},\hat {{a}}} \right\rangle }}{{\left\| {a} \right\| \cdot \left\| {\hat {{a}}} \right\|}}} \right)$