4

机器学习(十八)——独立成分分析, 压缩感知

 2 years ago
source link: http://antkillerfarm.github.io/ml/2017/01/16/Machine_Learning_18.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

主成分分析(续)

Other

常见的降维算法还有:

https://www.cnblogs.com/lochan/p/6627511.html

数据降维之多维缩放MDS(Multiple Dimensional Scaling)

https://mp.weixin.qq.com/s/cfeILnMsWlMC_T6lcSEW7A

图像降维之MDS特征抽取方法

https://mp.weixin.qq.com/s/C-tZRvHKcpO5jQArZi_GQA

数据降维算法-从PCA到LargeVis

https://mp.weixin.qq.com/s/HGBB1RLr5eux9xLtXJpokg

哈工大硕士生用Python实现了11种经典数据降维算法,源代码库已开放

PCA还可用于升维:

https://www.cnblogs.com/lochan/p/7011831.html

核化主成分分析(Kernel PCA)应用及调参

https://zhuanlan.zhihu.com/p/59644996

Kernel Principal Component Analysis(KPCA核主成分分析)

https://mp.weixin.qq.com/s/tJ_FbL2nFQfkvKqpQJ8kmg

从特征分解到协方差矩阵:详细剖析和实现PCA算法

https://mp.weixin.qq.com/s/dDdyaA7Nxqa8tBE_qQ80Dw

典型相关性分析(CCA)详解

https://mp.weixin.qq.com/s/JDWgw3OOdBurDAShrPHJ7Q

从最大方差来看主成分分析PCA

https://mp.weixin.qq.com/s/ZDipXGPOxKhxtAx2Dc9RjA

主成分分析(PCA)以及在图像上的应用

https://mp.weixin.qq.com/s/9-nNNhhDWSYWy46u0hTazQ

降维:PCA真的能改善分类结果吗?

https://mp.weixin.qq.com/s/vkBSextwFQv8-DUwAxgVyA

图像降维之Isomap特征抽取方法

https://zhuanlan.zhihu.com/p/78193297

PCA和SVD的联系和区别?

https://mp.weixin.qq.com/s/Uj9AFbyFRO6jIBoC3Gy8nA

小孩都看得懂的主成分分析

https://mp.weixin.qq.com/s/N-JtuayRYRrZ-_P67u7rvA

如何使用PCA去除数据集中的多重共线性

独立成分分析

这一节我们将讲述独立成分分析(Independent Components Analysis,ICA)算法。

首先,我们介绍一下经典的鸡尾酒宴会问题(cocktail party problem)。

假设在party中有n个人,他们可以同时说话,我们也在房间中放置了n个声音接收器(Microphone)用来记录声音。宴会过后,我们从n个麦克风中得到了m组数据x(i),其中的i表示采样的时间顺序。由于宴会上人们的说话声是混杂在一起的,因此,采样得到的声音也是混杂不清的,那么我们是否有办法从混杂的数据中,提取出每个人的声音呢?

为了更为正式的描述这个问题,我们假设数据s∈Rn是由n个独立的源生成的。我们接收到的信号可写作:x=As。其中,A被称为混合矩阵(mixing matrix)。在这个问题中,s(i)是一个n维向量,sj(i)表示第j个说话者在i时刻的声音。同理,xj(i)表示第j个麦克风在i时刻的记录下的数据。

我们把W=A−1称作unmixing matrix。我们的目标就是找到W,然后利用s=Wx,求得s。我们使用wiT表示W矩阵的第i行,因此:sj(i)=wjTx(i)。

ICA的不确定性

不幸的是,在没有源和混合矩阵的先验知识的情况下,仅凭x(i)是没有办法求出W的。为了说明这一点,我们引入置换矩阵的概念。

置换矩阵(permutation matrix)是一种元素只由0和1组成的方块矩阵。置换矩阵的每一行和每一列都恰好只有一个1,其余的系数都是0。它的例子如下:

P=[010100001];P=[0110];P=[1001]

在线性代数中,每个n阶的置换矩阵都代表了一个对n个元素(n维空间的基)的置换。当一个矩阵乘上一个置换矩阵时,所得到的是原来矩阵的横行(置换矩阵在左)或纵列(置换矩阵在右)经过置换后得到的矩阵。

ICA的不确定性(ICA ambiguities)包括以下几种情形:

1.无法区分W和WP。比如改变说话人的编号,会改变s(i)的值,但却不会改变x(i)的值,因此也就无法确定s(i)的值了。

2.无法确定W的尺度。比如x(i)还可以写作x(i)=2A⋅(0.5)s(i),因此在不知道A的情况下,同样无法确定s(i)的值。

3.信号不能是高斯分布的。

假设两个人发出的声音信号符合多值正态分布s∼N(0,I),这里的I是一个2阶单位阵,则E[xxT]=E[AssTAT]=AAT。

假设R是正交矩阵,A′=AR,x′=A′s,则:

E[xxT]=E[A′ssT(A′)T]=E[ARssT(AR)T]=ARRTAT=AAT

可见,无论是A还是A’,观测值x都是一个N(0,AAT)的正态分布,也就是说A的值无法确定,那么W和s也就无法求出了。

密度函数和线性变换

在讨论ICA的具体算法之前,我们先来回顾一下概率和线性代数里的知识。

假设我们的随机变量s有概率密度(probability density)函数ps(s)。为了简单,我们再假设s是实数,还有一个随机变量x=As,A和x都是实数。令px是x的概率密度,那么怎么求px呢?

令W=A−1,则s=Wx。然而px(x)≠ps(Wx)。

这里以均匀分布(Uniform)为例讨论一下。令s∼Uniform[0,1],则ps(s)=1。令A=2,则W=0.5,x=2s∼Uniform[0,2],因此px(x)=ps(Wx)|W|。

累积分布函数

累积分布函数(cumulative distribution function,CDF)是概率论中的一个基本概念。它的定义如下:

F(z0)=P(z≤z0)=∫−∞z0pz(z)dz

可以看出:

pz(z)=F′(z)

ICA算法

ICA算法归功于Bell 和 Sejnowski,这里使用最大似然估计来解释算法。(原始论文中使用的是一个复杂的方法Infomax principal,这在最新的推导中已经不需要了。)

注:Terrence (Terry) Joseph Sejnowski,1947年生,美国科学家。普林斯顿大学博士,导师是神经网络界的大神John Hopfield。ICA算法和Boltzmann machine的发现人。

Tony Bell的个人主页: http://cnl.salk.edu/~tony/index.html

我们假定每个si有概率密度ps,那么给定时刻原信号的联合分布就是:

p(s)=∏i=1nps(si)(2)p(x)=∏i=1nps(wiTx)⋅∣W∣

为了确定si的概率密度,我们首先要确定它的累计分布函数F(x)。而这需要满足两个性质:单调递增和在[0,1]区间。

我们发现sigmoid函数很适合,它的定义域负无穷到正无穷,值域0到1,缓慢递增。因此,可以假定s的累积分布函数符合sigmoid函数:

g(s)=11+e−s

求导,可得:

ps(s)=g′(s)=g(s)(1−g(s))

这里的推导参见《机器学习(二)》的公式7。

注:如果有其他先验信息的话,这里的g(s)也可以使用其他函数。否则的话,sigmoid函数能够在大多数问题上取得不错的效果。

公式2的对数似然估计函数为:

(3)ℓ(W)=∑i=1m(∑j=1mlog⁡g′(wjTx(i))+log∣W∣)(log⁡g′(s))′=(log⁡[g(s)(1−g(s))])′=(log⁡g(s))′+(log⁡(1−g(s)))′=g′(s)g(s)+(1−g(s))′(1−g(s))=g(s)(1−g(s))g(s)−g(s)(1−g(s))(1−g(s))=1−2g(s)

又因为《机器学习(十)》的公式5.11,可得公式3的导数为:

∇Wℓ(W)=[1−2g(w1Tx(i))1−2g(w2Tx(i))⋮1−2g(wnTx(i))]x(i)T+(WT)−1

最后,用通常的随机梯度上升算法,求得ℓ(W)的最大值即可。

注意:我们计算最大似然估计时,假设了x(i)和x(j)之间是独立的,然而对于语音信号或者其他具有时间连续依赖特性(比如温度)上,这个假设不能成立。但是在数据足够多时,假设独立对效果影响不大。

https://blog.csdn.net/jbb0523

一个压缩感知+贝叶斯网络方面的blog

http://blog.csdn.net/abcjennifer/article/details/7721834

初识压缩感知Compressive Sensing

http://blog.csdn.net/abcjennifer/article/details/7724360

中国压缩传感资源(China Compressive Sensing Resources)

http://blog.csdn.net/xiahouzuoxin/article/details/38820925

白话压缩感知(含Matlab代码)

http://blog.csdn.net/abcjennifer/article/details/7748833

压缩感知进阶——有关稀疏矩阵

https://zhuanlan.zhihu.com/p/85558304

深度学习压缩感知(DCS)历史最全资源汇总分享

Robust PCA

http://www.cnblogs.com/quarryman/p/robust_pca.html

最优化之Robust PCA

http://www.aiuxian.com/article/p-2634727.html

Robust PCA

http://blog.csdn.net/abcjennifer/article/details/8572994

Robust PCA学习笔记

http://patternrecognition.cn/~jin/gs/seminar/20140515_jinzhong.ppt

Robust PCA-模式识别


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK