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

参考,

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

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

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

is an n-dimensional vector, is the acoustic reading recorded by microphone j at time i

is an n-dimensional vector, is the sound that speaker j was uttering at time i.

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

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

所以可以表示成,

A is an unknown square matrix called the mixing matrix

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

设,
s= Wx

所以我们的目标变成求出W
denote the i-th row of W, so that

the j-th source can be recovered by computing

 

ICA ambiguities

很明显,如果没有任何先验知识,光凭x= As,是不可能求出唯一的A和s的
比如你求出A,但是2A也是可以的

或者PA,也是可以的,P为permutation matrix,其实就是调换其中行的位置,因为只要相应的调换S中人的位置即可

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

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

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

且x满足 分布

此时,我们改变A

设R be an arbitrary orthogonal (less formally, a rotation/reflection) matrix,

 
那么有,

你会发现 的分布没有变化,仍然是 分布

所以如果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 之间都是独立的

 

因为前面有,

所以有,

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

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

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

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

所以有,

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

于是有,

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

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

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

对W行列式求导, ,参考矩阵的线性代数

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

Andrew Ng机器学习公开课笔记–Independent Components Analysis的更多相关文章

  1. Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

    网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...

  2. Andrew Ng机器学习公开课笔记 -- 支持向量机

    网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考   先继 ...

  3. Andrew Ng机器学习公开课笔记 -- 学习理论

    网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法   Bias/va ...

  4. Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection

    网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf   Model Selection 首先需要解决的问题是,模型 ...

  5. Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control

    网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比 ...

  6. Andrew Ng机器学习公开课笔记 – Factor Analysis

    网易公开课,第13,14课 notes,9 本质上因子分析是一种降维算法 参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析 把大量的原始变量, ...

  7. Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm

    网易公开课,第12,13课 notes,7a, 7b,8 从这章开始,介绍无监督的算法 对于无监督,当然首先想到k means, 最典型也最简单,有需要直接看7a的讲义   Mixtures of G ...

  8. Andrew Ng机器学习公开课笔记 -- Online Learning

    网易公开课,第11课 notes,http://cs229.stanford.edu/notes/cs229-notes6.pdf   和之前看到的batch learning算法不一样,batch ...

  9. Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降

    网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个 ...

随机推荐

  1. ThinkPHP实现移动端访问自动切换主题模板

    ThinkPHP的模板主题机制,如果只是在PC,只要需修改 DEFAULT_THEME (新版模板主题默认是空,表示不启用模板主题功能)配置项就可以方便的实现多模板主题切换. 但对于移动端和PC端,也 ...

  2. hdu 5294 Tricks Device(2015多校第一场第7题)最大流+最短路

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5294   题意:给你n个墓室,m条路径,一个人在1号墓室(起点),另一个人在n号墓室(终点),起点的那 ...

  3. hive复杂类型与java类型的对应

    因为要往自定义的UDF传入复杂类型,所以需要对于这块的对应简单做一下总结 string java.lang.String, org.apache.hadoop.io.Text int int, jav ...

  4. char *c和char c[]区别

    char *c和char c[]区别 问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者 ...

  5. 解决修改重命名sql Server数据库名称

    错误: 消息 5030,级别 16,状态 2,第 1 行无法用排他锁锁定该数据库,以执行该操作. 解决方法:(原理一样) 1.将数据库设置为单用户模式 (单用户模式指定一次只有一个用户可访问数据库,该 ...

  6. HDU3341 Lost's revenge(AC自动机+DP)

    题目是给一个DNA重新排列使其包含最多的数论基因. 考虑到内存大概就只能这么表示状态: dp[i][A][C][G][T],表示包含各碱基个数为ACGT且当前后缀状态为自动机第i的结点的字符串最多的数 ...

  7. 我理解的 js 的观察者模式 Observable

    我第一次看 四人帮 写的<设计模式>时一头雾水,现在也是,或许其是针对专业的程序员学习使用的. 通过对Ext / Backbone 源码的学习,可总结如下: 模式 - 就是对解决某一类特定 ...

  8. java 枚举类型分析

    最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enum ColorSelect { RED_BAGE = 0, GREEN_BAGE, ...

  9. iOS开发中使用[[UIApplication sharedApplication] openURL:]加载其它应用

        iOS 应用程序之间(1)  在iOS开发中,经常需要调用其它App,如拨打电话.发送邮件等.UIApplication:openURL:方法是实现这一目的的最简单方法,该方法一般通过提供的u ...

  10. 8.0 Qweb 报表编写步骤

    8.0 采用的是Qweb报表,摒弃了7.0中的RML报表. 1.首先在xml文件中注册一个报表: <report id="qweb_test_report" model=&q ...