斯坦福大学公开课 :机器学习课程(Andrew Ng)——14、无监督学习:Independent Component Analysis(ICA)
来源:互联网 发布:php格式怎么打开 编辑:程序博客网 时间:2024/05/12 23:12
1)问题描述
2)独立成分分析的不确定性(ICA ambiguities)
3)ICA用到的密度函数计算公式
4)ICA算法
5)行列式求导
1)问题描述
1、上节提到的PCA是一种数据降维的方法,但是只对符合高斯分布的样本点比较有效,那么对于其他分布的样本,有没有主元分解的方法呢?
2、经典的鸡尾酒宴会问题(cocktail party problem)。假设在party中有n个人,他们可以同时说话,我们也在房间中一些角落里共放置了n个声音接收器(Microphone)用来记录声音。宴会过后,我们从n个麦克风中得到了一组数据,i表示采样的时间顺序,也就是说共得到了m组采样,每一组采样都是n维的。我们的目标是单单从这m组采样数据中分辨出每个人说话的信号。
将第二个问题细化一下,有n个信号源,,每一维都是一个人的声音信号,每个人发出的声音信号独立。A是一个未知的混合矩阵(mixing matrix),用来组合叠加信号s,那么,x即声音接收器的收到的复合信号,这里的x不是一个向量,是一个矩阵,其中每个列向量是,满足。A和s都是未知的,x是已知的,我们要想办法根据x来推出s。这个过程也称作为盲信号分离。
令,那么。将W表示成
其中,其实就是将写成行向量形式。那么得到: 。
2)独立成分分析的不确定性(ICA ambiguities)
a)倍数联动:由于w和s都不确定,在没有任何先验知识的情况下,无法同时确定这两个相关参数。因为对于公式s=wx,当w扩大两倍时,s只需要同时扩大两倍即可,等式仍然满足,因此无法得到唯一的s。
b)旋转对称:如果信号源s是多元高斯分布,那么ICA也不适用!直观的理解是,多元高斯分布的概率密度图是旋转对称的(均值为0,投影面是圆形的山峰状,参见多元高斯分布);数学理解是,假设只有两个人,且发出的声音信号符合多元正态分布,即,其中I是2*2的单位矩阵,
因为,因此,x也是多元高斯分布的,均值为0,协方差为;令R是正交阵,且(即通过A旋转得到),如果将A替换成A’,那么,由于s分布没变,因此x’仍然是均值为0,协方差为。
也就是说,不管混合矩阵是A还是A',我们观察到的数据x都是符合相同的分布N(0,),也就是说根据观察到的数据的分布情况,我们根本没办法确定混合矩阵是A还是A',也就不知道信号源的具体情况。
实际上,倍数联动对于大多数应用是没有太大影响的,你还是会分辨出独立的声音源,只不过是进行了放缩;但如果声音源s符合多元高斯分布,那我们就真没办法达到辨别独立成分的目的,也就是说,我们其实只要保证声音源不是多元高斯分布,并且假如归一化限制(不允许任意放缩),在理论上就应该可以进行盲信号分离(独立成分)分析。
3)ICA用到的密度函数计算公式
在讨论ICA具体算法之前,我们先来回顾一下概率和线性代数里的知识。
假设我们的随机变量s有概率密度函数(连续值是概率密度函数,离散值是概率)。为了简单,我们再假设s是实数,还有一个随机变量x=As,A和x也都是实数,那么怎么求x的概率密度?
令,首先将式子x=As变换成,则:。
推导方法如下:
更一般地,如果s是向量,A可逆的方阵,那么上式子仍然成立。
4)ICA算法
这里,我们通过最大似然估计来推导ICA算法。
我们假定每个有概率密度,并且每个人发出的声音信号各自独立,那么给定时刻原信号的联合分布就是:
。有了p(s),根据上一小节的公式,我们可以求得p(x):
,左边是每个采样信号x(n维向量)的概率,右边是每个原信号概率的乘积的|W|倍。
要想求x的概率密度函数,我们剩下要做的就是为每一个人为指定概率密度(前面提到过,如果没有先验知识,我们无法求得W和s,因此,这里我们必须根据先验知识人为指定)。从第2)节的分析中我们知道,高斯分布的密度函数是不可以用的。在概率论里我们知道密度函数p(x)由累计分布函数(cdf)F(x)求导得到。F(x)要满足两个性质是:单调递增并且函数值在[0,1]之间。我们发现sigmoid函数很适合,定义域负无穷到正无穷,值域0到1,缓慢递增。因此,s的累积分布函数一般默认(在没有任何先验知识时)选择sigmoid函数:
,求导后得,这就是s的概率密度函数。这里s是实数。
知道了,x的概率密度公式中就只剩下W了。对于W的计算,我们采用最大似然估计法,给定采样后的训练样本,样本对数似然估计如下:。
接下来就是对W求导了,这里牵涉一个问题是对行列式|W|进行求导的方法,属于矩阵微积分。这里先给出结果,在文章最后再给出推导公式。
最终得到的求导后公式如下,的导数为(可以自己验证):
其中是梯度上升速率,人为指定。
当迭代求出W后,便可得到来还原出原始信号。
注意:我们计算最大似然估计时,假设了与之间是独立的,然而对于语音信号或者其他具有时间连续依赖特性(比如温度)上,这个假设不能成立。但是在数据足够多时,假设独立对效果影响不大,同时如果事先打乱样例,并运行随机梯度上升算法,那么能够加快收敛速度。
5)行列式求导
对行列式求导,设矩阵A是n×n的,我们知道行列式与代数余子式有关,
是去掉第i行第j列后的余子式,那么对求导得
adj(A)跟我们线性代数中学的是一个意思,因此
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——14、无监督学习:Independent Component Analysis(ICA)
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——13、无监督学习:Principal Component Analysis (PCA)
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——12、无监督学习:Factor Analysis
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——3、监督学习:Gaussian Discriminant Analysis (GDA)
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——9、无监督学习:K-means Clustering Algorithm
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——11、无监督学习:the derivation of EM Algorithm
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——15、无监督学习:Reinforcement Learning and Control
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——4、监督学习:Naive Bayes
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——8、监督学习:Learning Theory
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——2、监督学习:Regression and Classification
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——5、监督学习:Support Vector Machine,引
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——6、监督学习:Support Vector Machine,破
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——7、监督学习:Support Vector Machine,立
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——10、无监督学习:Mixture of Gaussians and the EM Algorithm
- 斯坦福大学公开课机器学习课程(Andrew Ng)二监督学习应用 梯度下降
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——1、整体看一看
- 斯坦福大学公开课机器学习课程(Andrew Ng)第一讲机器学习动机与应用
- 斯坦福大学公开课机器学习课程(Andrew Ng)五生成学习算法
- jCarousel Lite 实现图片跑马灯效果
- cocos2dx的clippingNode功能在android测试无效解决方法
- linux运行应用程序not found问题(交叉编译生成的可执行文件)
- java.lang.IncompatibleClassChangeError:Implementing class
- oracle 实现 id 自增长
- 斯坦福大学公开课 :机器学习课程(Andrew Ng)——14、无监督学习:Independent Component Analysis(ICA)
- C++一个很容易的bug
- WIN32 GDI+ 学习笔记(二):使用画笔
- Failed to execute /linuxrc. Attempting defaults...
- 【Java学习】java中final的用法
- VC创建和调用DLL文件
- (一)内核配置 内核模块
- 很重要 技术小黑屋Google IO:Android内存管理主题演讲记录
- windows8.1键盘失灵