PCA模型加先验

作者: algorithmdog | 来源:发表于2016-02-06 14:08 被阅读450次

本文最先发表在本人博客:http://www.gotoli.us/?p=1684

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


主成分分析 (PCA)


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

什么是“使得投影方差最大”?数据y在c方向的投影(标投影)为yTc,其中方向为单位向量||c||2=1。一堆数据y_1,y_2,....,y_n在c方向的投影为一堆数:y_1Tc,y_2Tc,....,y_n^Tc。“使得投影方差最大”是使得这堆数的方差最大。当然啦,PCA是找到m个方向,因此“使得投影方差最大”应该是使得m堆数的方差之和最大。

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


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

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


海量多标记分类


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

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

Chen et al (2012) 假设实例到低维向量的模型是线性模型W,这时“容易学习”的先验知识可以表示为


根据最小二乘法,我们求得W


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

求解上面的优化问题就可以将“容易学习”的先验加入PCA,使之适用于海量多标记分类任务。


参考文献


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.

相关文章

  • PCA模型加先验

    本文最先发表在本人博客:http://www.gotoli.us/?p=1684 大清牛人曰:ML派坐落美利坚合众...

  • PCA 画图

    ggplot2 画PCA,加

  • 主成分分析-PCA

    简介 最近在3d face模型生成研究中,经常使用PCA,所以就把PCA的学习记录了下来。主成分分析(PCA, P...

  • pytorch实现一个CVAE对话系统

    CVAE模型结构 如上图所示,CVAE模型在seq2seq的基础上多了一个先验网络,一个识别网络。在训练时,从先验...

  • 2018.7.5【泛读】Nonparametric Variat

    这篇文章指出vae模型使用简单的高斯分布作为先验,先验中没有灵活的参数,导致模型不够灵活。因此,以一个狄利克雷过程...

  • Deep Predictive Coding Networks

    动机: 之前的方法都使用固定的先验模型去提取图像的表示,但是不能根据数据调整学到的先验信息。 方法: “top-d...

  • 建模举例

    1、高斯混合模型用于处理任意的连续节点。2、PCA ICA模型英语学习:scalar:纯量be clamped:被...

  • L1与L2正则

    L1正则假设参数的先验分布是Laplace分布,可以保证模型的稀疏性,也就是某些参数等于0;L2正则假设参数的先验...

  • 机器学习算法汇总

    线性回归 逻辑回归 朴素贝叶斯 感知机 KNN SVM 最大熵模型 SVD PCA LDA EM算法 高斯混合模型...

  • 03:6大监督学习模型:毒蘑菇分类

    数据EDA 可视化分析 特征工程 特征相关性 主成分分析PCA 模型1:逻辑回归 模型2:高斯朴素贝叶斯 模型3:...

网友评论

  • 秋纫:@简叔 可否考虑支持MathML?人家在这码数学公式也不方便啊
    秋纫:@larryzhao

本文标题:PCA模型加先验

本文链接:https://www.haomeiwen.com/subject/jmhykttx.html