随机投影与ICA

引言

文章根据udacity 的机器学习视频进行整理,提供给初学者进行参考,为了降低学习门槛,文中尽量避免了复杂的数学公式,使用比较简单的例子叙述相关原理。如发现错误欢迎指正。

相关参考学习视频:

udacity--机器学习(PS:国外导师视频课程,中文字幕。课程简洁易懂、生动形象。具有项目实战、导师项目审核特色。比较推荐入门。点击此处可获得课程优惠券)

coursera--吴恩达机器学习(PS:  吴恩达的机器学习一直备受入门的欢迎。内容详细、由浅入深。)

书籍:吴恩达机器学习笔记

1. 随机投影

1.1 概述

随机投影是一种比较有效的降维方法,在计算上比主成成分分析更有效。它通常应用于当数据有太多维度,假定运行程序的资源有效,主成成分分析无法有效的计算时候。

一个简单化的案例,对PCA 和 随机投影。如下图:

PCA:将一个数据集从 二维降至一维,PCA的做法是寻找方差最大化的方向,然后将数据投影到最大化方差的方向。该过程将产生损伤最小。

随机投影:在数据有很多维度时,会消耗一定的资源。通常情况下会随机选择一条直线,任何一条进行投影。在某些情景下没有太大的意义,但在更高纬度下效果比较好,且效率高。

随机投影与ICA_第1张图片

1.2 基本实现

随机投影的基本前提是:用数据集乘以一个随机矩阵来减少其中的维度。在某种程度上讲,这就是随机投影。

随机投影与ICA_第2张图片

一个简单的案例。如下图

假如数据集有 12000 列,1500 个样本。这已经可以说是高纬度数据集了。将数据集输入到sklearn中随机投影,返回到结果是6268 列、1500 个样本的数据集:

随机投影与ICA_第3张图片

在随机投影中,其实是将原数据集乘以一个随机矩阵就可以被映射成低纬的空间。在这种程度下,每两点之间的距离、每对之间的距离在某种程度下得到了保留。这很重要,因为在非监督学习和监督学习中,很多算法都与点之间的距离有关,所以需要保证距离有些失真,但可以保留。

如何保证投影之后的距离得以保留?Johnson-Lindenstrauss引理出:投影后两点的距离平方值稍有压缩。它大于原数据集两点之间的平方值乘以 (1 - eps) ;小于原数据集两点之间的平方值乘以(1 + eps) 。

如果两点之间距离的平方值为 125.6 。 eps 为 0 ~ 1 之间的值,在sklearn中默认为 0.1。

eps 如同一个操作杆,用于计算产生了多少列,并在此维度是可接受的失真水平。eps 是输入到函数中,用此来在此程度下保证距离。

1.3 sklearn 中的随机投影

sklearn 中随机投影的案例:http://lijiancheng0614.github.io/scikit-learn/auto_examples/plot_johnson_lindenstrauss_bound.html#example-plot-johnson-lindenstrauss-bound-py

sklearn 中随机投影API:http://lijiancheng0614.github.io/scikit-learn/modules/generated/sklearn.random_projection.SparseRandomProjection.html#sklearn.random_projection.SparseRandomProjection

随机投影与ICA_第4张图片

2. 独立成分分析-ICA

2.1 概述

独立成分分析(ICA) 是同主成成分分析(PCA) 和 随机投影相似的方法。同样会通过一些数据集特征产生另一个作用数据集。但不同的是PCA用于最大化方差,ICA 则假设这些特征是独立源的混合。并尝试分离这些独立源。

独立成分分析(ICA) 一个典型的案例(代码实现可见2.4章节):

假定有三个朋友参加艺术展览,展览会上同时有着钢琴声、小提琴声、电视声。三个人各在不同声音的旁边,同时用手机录取下来听到的声音。

随机投影与ICA_第5张图片

三个朋友录取的声音都有不同的来源,靠近钢琴的朋友,录取到的钢琴声比较明显;而其他声音则比较弱。其他两个也是,一个录取的小提琴声音比较明显,一个录取电视声比较明显。

随机投影与ICA_第6张图片

是否可以运用ICA剥离出源声音呢?答案是可以。输入收集的三种数据集,利用ICA算法剥离出源数据。这里的源组成分(这里等于3)

随机投影与ICA_第7张图片

2.2 ICA 算法

简单介绍 ICA 算法的原理。不会涉及复杂的数学知识。详细的信息可查看论文独立成分分析:算法与应用。

现在假设有数据集 X , 假设 X 数据集是由源信号 S 乘以混合矩阵 A 产生的, X = AS。如下图:

随机投影与ICA_第8张图片

但是现在有数据集 X ,也就是原录音。S 信号源是需要计算得到的结果,A 为混合矩阵。如此需要变换公式,即 S = WX 。 W 为 A 的倒数,如果A是混合矩阵,W 即为非混合矩阵。

在 S = WX 公式中, X 为输入的源数据集。需要得到想要的 S 结果,就需要计算 W ,所以独立分析算法和其过程全部目标是趋近 W ,或者给出最佳的 W  与 X 相乘来产生原始信号。论文独立成分分析:算法与应用 对算法做出了清楚的解释。

随机投影与ICA_第9张图片

2.3 ICA 应用

ICA 被广泛应用于医学扫描仪。一个叫做 EEG或MEG的脑部扫描仪的例子。论文:Independent Component Analysis of Electroencephalographic Data

将 ICA 应用于金融中的因子模型。论文:Applying Independent Component Analysis to Factor Model in Finance

2.4 sklearn 中的ICA

sklearn 中 ICA 的API:http://lijiancheng0614.github.io/scikit-learn/modules/generated/sklearn.decomposition.FastICA.html

随机投影与ICA_第10张图片

2.5 项目

使用 ICA 提取混合的音频信号。与上述例子一样。在此下载 文件,使用 jupyter notebook 打开查看。

你可能感兴趣的:(随机投影与ICA)