学习PCA的时候感觉这是个什么玩意,挺简单呀,为自己的无知感到羞愧。本片学习的不仅仅是PCA的深入理解,更是学习大神们思考问题的方式。

作者:史博
链接:https://www.zhihu.com/question/30094611/answer/275172932
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

千万不要小看PCA, 很多人隐约知道求解最大特征值,其实并不理解PCA是对什么东西求解特征值和特征向量。 也不理解为什么是求解特征值和特征向量。 要理解到Hinton对PCA的认知,需要跨过4个境界,而上面仅仅是第1个境界的问题。

为什么要理解PCA?

其实深度学习在成为深度学习以前,主要是特征表达学习, 而特征表达学习追溯到始祖象阶段,主要是无监督特征表达PCA和有监督特征表达LDA。 对了这里LDA不是主题模型的LDA,是统计鼻祖Fisher搞的linear discriminant analysis(参考“Lasso简史”)。 而Hinton在这方面的造诣惊人, 这也是为什么他和学生一起能搞出牛牛的 t-Distributed Stochastic Neighbor Embedding (t-SNE) 。

至于t-SNE为啥牛, 这里给两个对比图片, 然后我们再回到PCA,以后有机会再扩展!

t-SNE vs PCA: 可以看到线性特征表达的局限性

t-SNE 优于 已有非线性特征表达 Isomap, LLE 和 Sammon mapping

依然还记得2004年左右Isomap横空出世的惊奇, 再看t-SNE的诞生,真是膜拜! 也正是Hinton对PCA能理解到他的境界, 他才能发明t-SNE。

PCA理解第一层境界:最大方差投影

正如PCA的名字一样, 你要找到主成分所在方向, 那么这个主成分所在方向是如何来的呢?

其实是希望你找到一个垂直的新的坐标系, 然后投影过去, 这里有两个问题。 第一问题: 找这个坐标系的标准或者目标是什么? 第二个问题, 为什么要垂直的, 如果不是垂直的呢?

如果你能理解第一个问题, 那么你就知道为什么PCA主成分是特征值和特征向量了。 如果你能理解第二个问题, 那么你就知道PCA和ICA到底有什么区别了。

对于第一个问题: 其实是要求解方差最小或者最大。 按照这个目标, 你代入拉格朗日求最值, 你可以解出来, 主成分方向,刚好是S的特征向量和特征值! 是不是很神奇? 伟大的拉格朗日(参考 "一步一步走向锥规划 - QP" "一挑三 FJ vs KKT ")

现在回答了,希望你理解了, PCA是对什么东西求解特征值和特征向量。 也理解为什么是求解的结果就是特征值和特征向量吧!

这仅仅是PCA的本意! 我们也经常看到PCA用在图像处理里面, 希望用最早的主成分重建图像:

这是怎么做到的呢?

PCA理解第二层境界:最小重建误差

什么是重建, 那么就是找个新的基坐标, 然后减少一维或者多维自由度。 然后重建整个数据。 好比你找到一个新的视角去看这个问题, 但是希望自由度小一维或者几维。

那么目标就是要最小重建误差,同样我们可以根据最小重建误差推导出类似的目标形式。

虽然在第二层境界里面, 也可以直观的看成忽略了最小特征值对应的特征向量所在的维度。 但是你能体会到和第一层境界的差别么? 一个是找主成分, 一个是维度缩减。 所以在这个层次上,才是把PCA看成降维工具的最佳视角。

PCA理解第三层境界:高斯先验误差

在第二层的基础上, 如果引入最小二乘法和带高斯先验的最大似然估计的等价性。(参考"一步一步走向锥规划 - LS" “最小二乘法的4种求解” ) 那么就到了理解的第三层境界了。

所以, 重最小重建误差, 我们知道求解最小二乘法, 从最小二乘法, 我们可以得到高斯先验误差。

有了高斯先验误差的认识,我们对PCA的理解, 进入了概率分布的层次了。 而正是基于这个概率分布层次的理解, 才能走到Hinton的理解境界。

PCA理解第四层境界(Hinton境界):线性流形对齐

如果我们把高斯先验的认识, 到到数据联合分布, 但是如果把数据概率值看成是空间。 那么我们可以直接到达一个新的空间认知。

这就是“Deep Learning”书里面写的, 烙饼空间(Pancake), 而在烙饼空间里面找一个线性流行,就是PCA要干的事情。 我们看到目标函数形式和最小重建误差完全一致。 但是认知完全不在一个层次了。

小结

这里罗列理解PCA的4种境界,试图通过解释Hinton如何理解PCA的, 来强调PCA的重要程度。 尤其崇拜Hinton对简单问题的高深认知。不仅仅是PCA,尤其是他对EM算法的再认识, 诞生了VBEM算法, 让VB算法完全从物理界过渡到了机器学习界(参考 “变の贝叶斯”)。 有机会可以看我对EM算法的回答,理解EM算法的8种境界。

编辑于 2017-12-14

千万不要小看PCA,大神对PCA的理解相关推荐

  1. 服务器主机GHOST装系统,大神请绕道!科普电脑装系统最基本的两种方式,萌新千万不要错过...

    原标题:大神请绕道!科普电脑装系统最基本的两种方式,萌新千万不要错过 Hello大家好,我是兼容机之家的小牛! 电脑装系统用GHOST好,还是原装版本好?这是很多小伙伴疑惑的问题,那么让我们来具体分析 ...

  2. 【机器学习】十大算法之一 “PCA”

    作者主页:爱笑的男孩.的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩.擅长深度学习,活动,python,等方面的知识,爱笑的男孩.关注算法,python,计算机视觉,图像处理,深 ...

  3. PMcaff课堂干货实录 | 社交产品骨灰大神:千万级社交产品是怎样炼成的

    ▣ 我要上课 在PMcaff 微信公众号中回复 "我要上课" 即可 ▣ 课程介绍 上一期PMcaff产品大讲堂邀请了社交产品领域的"骨灰级大神"李翔昊老师为大家 ...

  4. 酷派大神目标年出货千万台 不降价

    1."大神"命名.今年1月,酷派宣布推出独立电商品牌"大神",此番命名原因一直备受业内关注.祝芳浩对此表示,大神是酷派手机团队多次"头脑风暴" ...

  5. 这款NLP神器火了!关键词一键提取、结果高度可视化,堪称「小白进阶大神」的实用工具包 | 开源...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 转载自:量子位 如何快速优雅地处理你的NLP数据集? 试试这款号称「从小白到大神」的Texth ...

  6. ​谷歌大神 Jeff Dean 领衔,万字展望5大 AI 趋势

    ‍‍ 作者 | 学术头条 来源 | 学术头条 对于关心人工智能技术进展的读者来说,每年年底来自整个谷歌 research 团队撰写的年终总结,可谓是必读读物. 今天,由谷歌大神 Jeff Dean 领 ...

  7. 一周AI回顾 | 特斯拉AI负责人说神经网络正在改变编程,机器学习大神Bengio新论文专注RNN优化

    本期一周AI看点包括行业热点.投融资.业界观点.技术前沿以及应用等方面. 行业 英特尔将同AMD合作PC芯片 共同对抗英伟达 <华尔街日报>援引知情人士的消息称,英特尔将发布一款移动处理器 ...

  8. 北大美女学霸力压大神何恺明新作MAE!怒摘12个SOTA,灵感竟来自16年前CVPR论文...

      视学算法报道   编辑:小咸鱼 好困 [新智元导读]近日,北大校友.约翰·霍普金斯大学博士生提出了一种新的方法:MaskFeat,力压大神何恺明的新作MAE,摘下12个SOTA! 什么叫卷? CV ...

  9. ​谷歌大神Jeff Dean领衔,万字展望5大AI趋势

    本文共14400字,建议阅读15分钟 本文为你重点介绍 ML 中可能产生重大影响的五个领域. 对于关心人工智能技术进展的读者来说,每年年底来自整个谷歌 research 团队撰写的年终总结,可谓是必读 ...

最新文章

  1. usaco ★Bessie Come Home 回家
  2. 对象数组空指针异常说明——C#中使用对象数组必须分别为其开辟空间
  3. Java 数字转换成汉字
  4. PAT (Basic Level) 1080 MOOC期终成绩(模拟+stl)
  5. mysql+cast+0x_mysql cast与convert 函数的用法
  6. Asp.net 自定义config文件读取
  7. mysql5.7参数简单介绍
  8. Qt之QMessageBox详解
  9. 利用keras训练自己的图片数据集
  10. ati hd4570 linux amd 64 安装命令,ATI 显卡的驱动在Linux下的安装方法
  11. react项目在配置webpack的时候问题
  12. csf播放器(csf播放器ios)
  13. CAD卸载/完美解决安装失败/如何彻底卸载清除干净cad各种残留注册表和文件的方法
  14. html table自动序号,layui 给数据表格加序号的方法
  15. 将文件转换成json
  16. app爬虫抓包不能抓到对应的http网络请求解决办法,以某团app为例
  17. 一个小时学会Maven(参考资料)
  18. 分布式数据库架构路线大揭秘
  19. AICS188-Project6-Q1-Q3
  20. Spring MVC Aop注入遇到空指针bug

热门文章

  1. 了解计算机是如何工作的
  2. 【Python】Flask之requirements.txt文件记录三方包的版本号
  3. CString,int,string,char*之间的转换
  4. 使用电脑自带的建站工具实现手机观看电脑上的电影
  5. 下载nyuv2数据集
  6. Cisco IOS 的登录密码以及权限分配以及log时间设置
  7. mac iTunes安装ipa文件教程
  8. 用于重启Greenbrowser的插件[V1.3]
  9. 命名实体识别的两种方法
  10. echarts柱图分组显示(簇状柱形图)