fastica和pca区别_ICA与PCA的区别

2023-12-19 03:40
文章标签 区别 pca ica fastica

本文主要是介绍fastica和pca区别_ICA与PCA的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天晚上,海总讲了ICA,导师问了大家这么一个问题:

ICA和PCA的区别是什么?

后来我们思来想去,七嘴八舌地讨论了一下,师妹提到PCA是以贡献度的不同进行区分的,鑫总提到ICA和PCA的目标是不一致的。

这的确是一个值得讨论的问题:一开头,海冬提到ICA处理的数据都不是高斯的。这是有道理的,因为如果的高斯的,那么它的效果的确不好。

我也答不上什么,对于PCA的概念我又忘记了。

看了许多网上的回答和教程,我发现PCA实际上是最小化数据之间的方差,ICA最小化高阶统计比如四阶统计量(或者峰度),因此能最小化输出量的互信息。

PCA能提取出互相正交的高能量的信号,然而ICA确定非高斯信号的独立成分。

ICA模型等式是欠确定的系统,一个人不能够确定独立成分的方差。

一个人不能确定主导成分的排序。

今天在知乎里看到一个答案,觉得回答的非常完整:

不管是PCA还是ICA,都不需要你对源信号的分布做具体的假设;如果观察到的信号为高斯,那么源信号也为高斯,此时PCA和ICA(盲源分离)等价。

ICA认为一个信号可以被分解成若干个统计独立的分量的线性组合,而后者携带更多的信息。我们可以证明,只要源信号非高斯,那么这种分解是唯一的。若源信号为高斯的话,那么显然可能有无穷多这样的分解。

pca为最大化方差,使得残余方差最小,或信息损失最小(方差即信息)。

ica为最大化独立性,使联合概率与各分量概率乘积最接近。

不管是PCA还是ICA,都不需要你对源信号的分布做具体的假设

---------不对吧,PCA对分布没有假设,ICA则要求分布独立(同时不为高斯分布),两个根本不是一回事。

如果观察到的信号为高斯,那么源信号也为高斯,此时PCA和ICA等价

------ 不对吧。如果源信号有大于一个是高斯分布,ICA没有解。PCA则和分布无关。

还有一种说法:

ICA认为观测信号是若干个统计独立的分量的线性组合,ICA要做的是一个解混过程。

而PCA是一个信息提取的过程,将原始数据降维,现已成为ICA将数据标准化的预处理步骤。

书上的说法是:

主成分分析假设源信号间彼此非相关,独立成分分析假设源信号间彼此独立。

主成分分析认为主元之间彼此正交,样本呈高斯分布;独立成分分析则不要求样本呈高斯分布。

暂时只能这么死记硬背乐。

144ffdb4b241

非高斯情况下,pca的主元不是最优主元.png

Note: PCA and the SVD are the same thing and it's usually better to just use the SVD of the centered data matrix because SVD algorithms are faster and numerically more stable than PCA.

Note2: In some cases NMF (non negative matrix factorization) can work as ICA. In NMF the basis you want to find is the one that helps you reconstruct the data as a positive summation over the basis vectors. This means the basis will have vectors that represents parts of your original data, if your data contains images then the NMF basis contains parts of images that will help you reconstruct any of your images in the dataset.

这篇关于fastica和pca区别_ICA与PCA的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/510786

相关文章

go 指针接收者和值接收者的区别小结

《go指针接收者和值接收者的区别小结》在Go语言中,值接收者和指针接收者是方法定义中的两种接收者类型,本文主要介绍了go指针接收者和值接收者的区别小结,文中通过示例代码介绍的非常详细,需要的朋友们下... 目录go 指针接收者和值接收者的区别易错点辨析go 指针接收者和值接收者的区别指针接收者和值接收者的

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

分辨率三兄弟LPI、DPI 和 PPI有什么区别? 搞清分辨率的那些事儿

《分辨率三兄弟LPI、DPI和PPI有什么区别?搞清分辨率的那些事儿》分辨率这个东西,真的是让人又爱又恨,为了搞清楚它,我可是翻阅了不少资料,最后发现“小7的背包”的解释最让我茅塞顿开,于是,我... 在谈到分辨率时,我们经常会遇到三个相似的缩写:PPI、DPI 和 LPI。虽然它们看起来差不多,但实际应用

GORM中Model和Table的区别及使用

《GORM中Model和Table的区别及使用》Model和Table是两种与数据库表交互的核心方法,但它们的用途和行为存在著差异,本文主要介绍了GORM中Model和Table的区别及使用,具有一... 目录1. Model 的作用与特点1.1 核心用途1.2 行为特点1.3 示例China编程代码2. Tab

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使