Andrew Ng机器学习公开课笔记–Independent Components Analysis
网易公开课,第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的更多相关文章
- Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)
网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...
- Andrew Ng机器学习公开课笔记 -- 支持向量机
网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考 先继 ...
- Andrew Ng机器学习公开课笔记 -- 学习理论
网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法 Bias/va ...
- Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf Model Selection 首先需要解决的问题是,模型 ...
- Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control
网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比 ...
- Andrew Ng机器学习公开课笔记 – Factor Analysis
网易公开课,第13,14课 notes,9 本质上因子分析是一种降维算法 参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析 把大量的原始变量, ...
- Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm
网易公开课,第12,13课 notes,7a, 7b,8 从这章开始,介绍无监督的算法 对于无监督,当然首先想到k means, 最典型也最简单,有需要直接看7a的讲义 Mixtures of G ...
- Andrew Ng机器学习公开课笔记 -- Online Learning
网易公开课,第11课 notes,http://cs229.stanford.edu/notes/cs229-notes6.pdf 和之前看到的batch learning算法不一样,batch ...
- Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个 ...
随机推荐
- 以app形式启动chrome——关于chrome命令行
转自:http://wiselyman.iteye.com/blog/2179043 转自:http://bbs.ithome.com/thread-589651-1-1.html 转自:http:/ ...
- C语言有字符串这种数据类型吗?
C/C++语言 用 char 数组 存放 字符串.例如: char str[]="abcd 1234";char *ss = "1234 XYZ";printf ...
- mysql优化连接数防止访问量过高的方法
这篇文章主要介绍了mysql优化连接数防止访问量过高的方法,需要的朋友可以参考下 很多开发人员都会遇见”MySQL: ERROR 1040: Too many connections”的异常情况,造成 ...
- js:语言精髓笔记12--动态语言特性(2)
对于括号内: 通过赋值时发生的重写: (Object1 = function() {}).prototype.value = 100; var obj1 = new Object1; console. ...
- c# 使用正则表达式 提取章节小说正文全本篇
这一节主要内容是使用正则表达式提取网站的正文,主要面向于小说章节网站.其中涉及到一些其他知识点,比如异步读取.异步流写入等,代码中都会有详细的注解.现在流行的网络文学都是每日一更或几更,没有一个统一的 ...
- 结合ItemsControl在Canvas中动态添加控件的最MVVM的方式
今天很开心的收获: ItemsControl 中 ItemsPanel的重定义和 ItemContainerStyle 以及 ItemTemplate 三者的巧妙结合,在后台代码不实例化任何控件的前提 ...
- http://jingyan.baidu.com/album/03b2f78c4cc0ad5ea337ae7d.html
http://jingyan.baidu.com/album/03b2f78c4cc0ad5ea337ae7d.html
- Making raycast ignore multiple layers
I know how to make the raycast ignore a layer but I want it to ignore layers 9 and 10 but collide wi ...
- C# 文件读写FileInfo
using System; using System.Collections.Generic; using System.Text; using System.IO; namespace Consol ...
- 关于 List<T>
System.Object System.Collections.Generic.List<T> list<string,string>,这种形式本身就是错误的,你可以 ...