独立成分分析(ICA)只需要知道源信号较少的先验知识(如统计独立性等),仅由观测信号便能恢复出源信号的特性,因而得到了广泛应用。ICA的目的是寻找变换矩阵,使输出信号经变换后各成分之间尽可能的统计独立,其关键是建立一个目标函数,使得最大化(或最小化)目标函数的解便是所要找的变换矩阵。首次将人工鱼群算法(AFSA)与ICA相结合,提出了基于AFSA的独立成分分析算法。以负熵极大化作为目标函数,通过人工鱼的觅食,聚群和追尾行为,更新人工鱼的位置,得到全局最优解,从而得到分离矩阵。与自然梯度法相比,鱼群算法精度更高,收敛速度更快,仿真实验表明了将鱼群算法应用于独立成分分析的可行性和有效性。
Independent Component Analysis (ICA) which requires a little prior knowledge (such as independent) of signals is widely applied. The goal of ICA is to find a separation matrix so that each component of the output signal by transforming is independent. The key of ICA is to construct a target function, and then obtain the separation matrix by maximize(or minimize) the target function. This paper proposes an ICA algorithm based on Artificial Fish Swarm Algorithm (AFSA). With the target function of maximum negentropy, it can obtain the separation matrix through foraging, cluster and tracing behavior of artificial fishes and updating artificial fish position. Compare with natural gradient, AFSA has the high accuracy and fast convergence rate. Experimental results are provided to evaluate the performance of the proposed algorithm.