ICA学习笔记
-
ICA是一种数据降维方法、一种无监督学习算法、一种矩阵分解算法。尽管最初不是基于矩阵分解提出来的。
-
ICA研究中的高潮是美国学者Bell和Sejnouski在九十年代发表的里程碑式的论文,他们的方法基于信息极大化原理,这个算法进一步由日本学者和他的合作者用自然梯度完善,其本质上是极大似然估计方法。
-
几年以后,芬兰学者Hyvarrinen和Oja提出Fixed-Point算法(不动点算法),或称为FastICA。因为它对大规模问题特别有效,而得到了广泛的应用。
-
ICA算法有两点基本假设:
- 源信号相互独立。
- 源信号是非高斯分布的。
-
ICA的应用领域:图像处理、语音信号处理、生物医学信号处理、模式识别、数据挖掘、通讯和金融等。
-
ICA算法只知道混合信号的值,不知道源信号和混合矩阵,其目的是通过混合信号来得出混合矩阵和源信号。表面上来看,在不知道源信号和混合矩阵信息的情况下,用一个已知量解出两个未知量这件事情很荒谬。但是如果源信号是独立的呢?在源信号是独立的情况下,我们可以将混合信号进行一些变换(线性变换?),得到一组独立的新因子,这些独立的因子就是源信号。独立其实相当于非高斯,也就是说ICA做的事情就是,寻找混合信号的非高斯方向(独立因子)。
-
如何寻找非高斯的方向?
1.最大似然函数估计:s=Wx,计算出矩阵W的似然估计函数作为目标函数,然后用梯度下降算法将目标函数最大化,从而得到矩阵W的最优值,最后通过s=Wx来计算出源信号。
2.最大负熵:方差相同的所有概率分布中,高斯分布的熵最大。所以寻找非高斯方向,就可以转化为使得Wx熵最小的方向。一般,用负熵最大来代替熵最小。基于此,研究人员开发了FastICA算法,即将Wx的负熵作为目标函数,最大化负熵,计算出矩阵W。
3.信息极大化(Infomax) -
参考如下:
https://blog.csdn.net/ctyqy2015301200079/article/details/86705869
https://www.cnblogs.com/jerrylead/archive/2011/04/19/2021071.html
https://blog.csdn.net/shenziheng1/article/details/53667438
https://blog.csdn.net/shenziheng1/article/details/53666276