前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PCA模型加先验

PCA模型加先验

作者头像
AlgorithmDog
发布2018-01-08 16:15:21
7790
发布2018-01-08 16:15:21
举报
文章被收录于专栏:AlgorithmDog的专栏

大清牛人曰:ML派坐落美利坚合众山中,百年来武学奇才辈出,隐然成江湖第一大名门正派,门内有三套入门武功,曰:图模型加圈,神经网加层,优化目标加正则。有童谣为证:熟练 ML 入门功,不会作文也会诌。今天就介绍一个 PCA 加先验的工作。

1. 主成分分析 ( PCA )

PCA是常用的数据降唯模型。PCA 处理的数据中心点为零点

,如果数据中心点不是零点,需要预处理数据yyi=yyi−1n∑ni=1yyiyyi=yyi−1n∑i=1nyyi使得中心点为零点。PCA 降唯的思路:1)找到mm个相互正交并且使得投影方差最大的方向(专业一点的说法是找到一组使得方差最大的基),2) 将 k 维的数据投影到这m个方向上,得到m维数据。因为m会小于k,数据的维度下降了。这里最难理解的部分就是“使得投影方差最大”了。

什么是“使得投影方差最大”?数据 \pmb{y} 在 \pmb{c} 方向的投影(标投影)为 \pmb{y}^T\pmb{c} ,其中方向为单位向量 |\pmb{c}|_2^2=1 。一堆数据 \pmb{y}_1,\pmb{y}_2,....,\pmb{y}_n 在 \pmb{c} 方向的投影为一堆数:\pmb{y}_1^T\pmb{c},\pmb{y}_2^T\pmb{c},....,\pmb{y}_n^T\pmb{c} 。“ 使得投影方差最大 ” 是使得这堆数的方差最大。当然啦,PCA 是找到 m 个方向,因此 “使得投影方差最大” 应该是使得 m 堆数的方差之和最大。

为什么要“使得投影方差最大”呢?我们看下图,如果要把图中的数据压缩到一维,我们是选择右上方向还是左上方向呢?我们当然应该选右上方向! 因为右上方向上数据点散得比较开,压缩之后不同的数据点也好区分;而左上方向上数据点比较密集,不同数据压缩之后变相同的概率比较大。在中心点为零点的情况下,“ 散得开不开 ” 可以用这个方向上的投影方差刻画。方差比较大,“散得比较开”;方差比较少,“挤得密集”。因此我们需要“使得投影方差最大”。同时,这也是为什么 PCA 需要预处理数据使得中心点为零点。

让\pmb{Y}表示预处理之后的数据,其中每一行代表一条 k 维度的数据;\pmb{C} 表示 PCA 要找的方向,其中每一列代表一个方向。数据在不同方向的投影方差和等于||\pmb{Y}\pmb{C}||_F^2,也就是等于 Tr(\pmb{C}^T\pmb{Y}^T\pmb{Y}\pmb{C})。因此 PCA 需要求解如下优化问题。

代码语言:javascript
复制
*** QuickLaTeX cannot compile formula:
\begin{eqnarray*}
& max_{\pmb{C}}& Tr(\pmb{C}^T\pmb{Y}^T\pmb{Y}\pmb{C}) \nonumber \
& subject:&  \pmb{C}^T\pmb{C} = \pmb{I} \nonumber \
\end{eqnarray*}

*** Error message:
Extra alignment tab has been changed to \cr.
leading text: & subject:&

上面的优化问题利用了 \pmb{Y}^T\pmb{Y} 。中心点为零点的情况下,\pmb{Y}^T\pmb{Y} 为不同变量的协方差矩阵。PCA 模型也可以基于协方差矩阵来解释,这里就不介绍了,有兴趣的同学可以看参考文献一。求解上面的优化问题蛮简单的,因为 \pmb{Y}^T\pmb{Y} 前 m 个特征向量就是答案!!!一旦求得\pmb{C},压缩之后的数据为 \pmb{Y}\pmb{C}。

2. 海量多标记分类

介绍完 PCA 的基本知识,再来介绍一个 PCA 加先验的工作。这个工作都应用在海量多标记分类任务上。在多标记分类问题,一个实例同时拥有多个类别( 标记 )。比如一篇关注全球变暖的新闻报道既属于科学类别,也属于环境类别。有些任务中标记数量特别巨大,我们称之为海量多标记分类。比如多标记分类可以应用于标签推荐任务中,标签数量成千上万。用 \pmb{Y} 表示已经去中心化之后的标记矩阵,其中每一行代表一个实例的标记情况;用 \pmb{X} 表示实例,其中每一行代表一个实例的特征。

我们自然会想着把标记向量降维到一个低维向量,然后学习一个从实例到低维向量的模型,最后从低维向量还原出标记来(妈蛋!!什么叫自然!!!09 年才有人这么做好吧!!!)。作为最常用的数据降维方法,自然有人将PCA应用在这个问题上。但只用 PCA 是有缺陷的。PCA 只会考虑怎么有效地将标记向量压缩成低维向量,但低维向量是否适合学习就不管了。压缩得到的低维向量和实例特征有可能没有一点相关性,导致很难学习到一个从实例到低维向量的模型。这时候我们就应该往 PCA 模型加点“容易学习”的先验了。

我们介绍的工作—— Chen et al (2012) 假设实例到低维向量的模型是线性模型\pmb{W},这时“容易学习”的先验知识可以表示为

(2)

根据最小二乘法,我们得\pmb{W} = \pmb{X}^{+}\pmb{Y}\pmb{C}。

将这个“容易学习”的先验加入PCA,我们能够得到

求解上面的优化问题就可以将“容易学习”的先验加入 PCA,使之适用于海量多标记分类任务。而且求解上面的问题也是蛮简单的,只要求解\pmb{Y}^T \pmb{X}\pmb{X}^{+} \pmb{Y} 前 m 个特征向量即可。

参考文献

http://www.cse.psu.edu/~rtc12/CSE586Spring2010/lectures/pcaLectureShort_6pp.pdf

Chen, Yao-Nan, and Hsuan-Tien Lin. “Feature-aware label space dimension reduction for multi-label classification.” Advances in Neural Information Processing Systems. 2012.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年2月6日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 主成分分析 ( PCA )
  • 2. 海量多标记分类
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档