Andrew Ng机器学习公开课笔记–Independent Components Analysis

时间:2023-03-09 19:37:35
Andrew Ng机器学习公开课笔记–Independent Components Analysis

网易公开课,第15课
notes,11

参考,

PCA本质是旋转找到新的基(basis),即坐标轴,并且新的基的维数大大降低
ICA也是找到新的基,但是目的是完全不一样的,而且ICA是不会降维的

对于ICA,最经典的问题,“鸡尾酒会”问题
在鸡尾酒会,上很多人同时在说话,还有背景音乐,如果我们放若干个话筒进行声音采集
是否可以从采集到的数据中,分离出每个人独立的声音

假设有n个不同的人,m个时间采集点,一般会用和人数一样多的话筒,也是n个

Andrew Ng机器学习公开课笔记–Independent Components Analysis is an n-dimensional vector,Andrew Ng机器学习公开课笔记–Independent Components Analysis is the acoustic reading recorded by microphone j at time i

Andrew Ng机器学习公开课笔记–Independent Components Analysis is an n-dimensional vector,Andrew Ng机器学习公开课笔记–Independent Components Analysis is the sound that speaker j was uttering at time i.

x向量,表示在时间点i,n个采集器收集到的声音数据
s向量,表示在时间点i,n个人真正发出的声音

那么x中每个值,一定是s中所有的值的一个线性变换产生的,话筒可能收集到从所有人发出的声音,根据远近或其他环境不同,不同的线性变换参数

Andrew Ng机器学习公开课笔记–Independent Components Analysis

所以可以表示成,

Andrew Ng机器学习公开课笔记–Independent Components Analysis

A is an unknown square matrix called the mixing matrix

现在问题比较清晰,我们可以观察到x,需要求出s
那么只要我们可以求出A,就可以求出x

设,Andrew Ng机器学习公开课笔记–Independent Components Analysis
s= Wx

所以我们的目标变成求出W
Andrew Ng机器学习公开课笔记–Independent Components Analysis denote the i-th row of W, so that

Andrew Ng机器学习公开课笔记–Independent Components Analysis

the j-th source can be recovered by computing

Andrew Ng机器学习公开课笔记–Independent Components Analysis

 

ICA ambiguities

很明显,如果没有任何先验知识,光凭x= As,是不可能求出唯一的A和s的
比如你求出A,但是2A也是可以的
Andrew Ng机器学习公开课笔记–Independent Components Analysis
或者PA,也是可以的,P为permutation matrix,其实就是调换其中行的位置,因为只要相应的调换S中人的位置即可

但是这些对于我们的例子影响不大,比如A和2A只是音量大小不同而已

并且s一定是非高斯分布才可以使用ICA
因为高斯分布的密度函数是rotationally symmetric

比如,x = As,其中s满足高斯分布,那么x也一定满足高斯分布
并且协方差为,

Andrew Ng机器学习公开课笔记–Independent Components Analysis

且x满足Andrew Ng机器学习公开课笔记–Independent Components Analysis 分布

此时,我们改变A

设R be an arbitrary orthogonal (less formally, a rotation/reflection) matrix,Andrew Ng机器学习公开课笔记–Independent Components Analysis

Andrew Ng机器学习公开课笔记–Independent Components Analysis 
那么有,

Andrew Ng机器学习公开课笔记–Independent Components Analysis

你会发现Andrew Ng机器学习公开课笔记–Independent Components Analysis 的分布没有变化,仍然是Andrew Ng机器学习公开课笔记–Independent Components Analysis 分布

Andrew Ng机器学习公开课笔记–Independent Components Analysis

所以如果s是高斯分布,你根本无法求出唯一的A,因为对于不同的A,你会得到相同的观察值x

 

ICA algorithm

下面直接来看ICA算法如何求出W

The algorithm we describe is due to Bell and Sejnowski, and the interpretation we give will be of their algorithm as a method for maximum likelihood estimation.

仍然是用最大似然来求解这个问题,

Joint distribution为,假设sources Andrew Ng机器学习公开课笔记–Independent Components Analysis 之间都是独立的

Andrew Ng机器学习公开课笔记–Independent Components Analysis 

因为前面有,Andrew Ng机器学习公开课笔记–Independent Components Analysis

所以有,
Andrew Ng机器学习公开课笔记–Independent Components Analysis

为何多了个W的行列式,参考讲义的证明,不加是错误的

前面说了,如果没有任何先验知识,是不可能求出W的,
所以这边我们需要假设p(s)的分布

这里是通过假设cumulative distrbution function (cdf) F,来求出p的

F的定义,区间上的概念和

Andrew Ng机器学习公开课笔记–Independent Components Analysis

所以有,
Andrew Ng机器学习公开课笔记–Independent Components Analysis

F(x)要满足两个性质是:单调递增和在[0,1],所以sigmoid函数很适合

Andrew Ng机器学习公开课笔记–Independent Components Analysis

于是有,

Andrew Ng机器学习公开课笔记–Independent Components Analysis

那么现在目标函数,log likelihood为,

Andrew Ng机器学习公开课笔记–Independent Components Analysis

然后用随机梯度下降,得到W,完成求解

Andrew Ng机器学习公开课笔记–Independent Components Analysis

其中后面的梯度就是对log likelihood求导得到的

对W行列式求导,Andrew Ng机器学习公开课笔记–Independent Components Analysis ,参考矩阵的线性代数

Andrew Ng机器学习公开课笔记–Independent Components Analysis

参考,独立成分分析(Independent Component Analysis)