目录 |
- - - 1. 基本知识 - 1.1 无监督学习的两种流派 - 2. Clustering - 2.1 K-means - 2.2 HAC,Hierarchical Agglomerative Clustering - 3. Distributed Representation - 4. Principle component analysis(PCA) - 4.1 直观的理解 - 4.1.1 基本设定 - 4.1.2 二维降到一维数据 - 4.1.3 多维的情况 - 4.2 数学理论方法 - 4.2.1 证明,w^1为S最大的特征向量 - 4.2.3 其他w的为次大的特征向量的证明 - 4.3 PCA的去相关特性 - 4.4 PCA的解释 - 4.4.1 Component应该选取多少个?特征值的解释 - 4.4.2 特征向量的解释 - 4.5 PCA和Neural Network - 4.6 PCA的其他事情 - 5. Matrix Factorization 概述 无监督学习的两种流派,常见方法:聚类,降维,分布表征。 本文的重点再介绍:
|
1. 基本知识
1.1 无监督学习的两种流派
- 化繁为简,降维,聚类等等
- 无中生有,类似生成器一类的方法,这边不做展开
第一种流派有Dimension Reduction,以及聚类的方法,Distributed Representation等。
我们可以观察到这样的现象,高维数据分类其实不需要那么多维度就能做好分类。
当然,图中这是非常直观的特殊例子。通常情况下,我们需要的只是降维的时候,这些维度并不需要可以在低维读刻画事物本身,只需要能够区分数据本身即可。这的意思如下图,我们不一定需要能代表每个3,而是用角度把它们区别出来即可。
2. Clustering
2.1 K-means
这个很简单了,选择k个初始点,按欧氏距离对所有点分类,然后用聚类中心更新聚类点,直到收敛。
初始点需要从已知点中选择,防止某些组里没有点,导致程序错误。
2.2 HAC,Hierarchical Agglomerative Clustering
层次聚类的方法如下图,它对所有样本两两求相似度,最像的连接成树得到新的样本,然后再重复过程,直到所有样本建成树。它的逻辑是,越慢连接的它们之间的区别越大。
我们中图中的每一层切分都可以得到不同的分类,这样的好处是,例如再k-mean中,我们很难从一堆数据上得到这个k,即应该分为几个分类比较合适,而从树上直接切比较容易确定K。
3. Distributed Representation
我们可以观察到,把数据转化到某几个分类的分布能帮助分类。例如,这没什么好说的。
常见的有两种方法,一种是Feature selection,特征选择。另一种就是主成分分析。
4. Principle component analysis(PCA)
主成分分析方法,是一种将数据减少维度,最大化保留彼此之间的区别的方法。
4.1 直观的理解
4.1.1 基本设定
数据x经过某个function之后得到新的数据z,PCA假设这样的function是linear的。如以下公式,例如源数据是100个5维特征的样本,则[3x5].[5x100] = [3x100],降维为3.
这里我们可以预设一个问题如何证明这种变化后能最大化保留彼此的关系呢?
4.1.2 二维降到一维数据
我们来分析二维情况,这里二维指数据的特征维度,不是矩阵的维度,更多维度没有影响。二维reduce成一维,只需要一个w^1向量,正如图中的公式。我们可以发现,当w^1为单位向量时,其实z_1就是x的所有数据在w^1上投影。w^1是高维空间中的一个向量,如二维的情况,当w^1为单位向量,相当于我们让图中所有点投影到w^1上。为什么单位向量的话z就是x到w的投影呢,其实是线性代数的基本知识投影和内积。
然后,还有一个问题是,w^1可以有无数个,那么选哪个好呢?直觉上,我们也可以很容易猜到,我们想要结果的variance更大,看公式就能明白,var越大,数据之间的区别越大。
4.1.3 多维的情况
多维降到多维的情况怎么做,其实和上面一模一样,只是W变成矩阵而已。
但还有一个问题,w^1, w^2之间是什么关系?答案是正交,这样我们能保证投影到各自完全不同的向量上。所以现在我们的w就得满足两个条件,相互正交,单位向量,于是W就是所谓正交矩阵。
这个直观的解释终于让我理解为什么PCA中要找到x的正交矩阵,来得到z。
4.2 数学理论方法
如何找到w呢,结论,w是矩阵S的特征向量,w满足对应的特征值最大,S为数据x的covariance。
4.2.1 证明,w^1为S最大的特征向量
使用拉格朗日乘子法可以解出
得到,以下公式从线性代数中我们可以知道,w为特征向量,α为特征值。目标函数结果变化可以发现,目标最大就是α最大。
4.2.3 其他w的为次大的特征向量的证明
4.3 PCA的去相关特性
回答一开始我们提出的问题,为什么PCA能最大化保留数据之间的差别?从数学上我们可以证明,我们最终得到的数据z它每个样本都是独立的。即z的covariance为对角矩阵,正交矩阵。
所以PCA还可以用来对数据去相关化,帮助分类任务。
4.4 PCA的解释
PCA是线性的方法,所以它的可解释性非常强。而且关键的地方,这种解释能够大大提升对PCA的理解。
4.4.1 Component应该选取多少个?特征值的解释
这是一个常见的问题,上面我们得知,每个特征值对应一个特征向量,总共有m个特征值,m为数据特征维度。
上面是直接用特征值对特征进行选择,从上面的推导我们可以直到z = wSw = α,因此这个α可以直接看作该特征的贡献度 = x之间的covariance = 该维度对x之间的区别的贡献。
4.4.2 特征向量的解释
课程中的一个非常生动的例子,对于每个特征向量,即component,图中PCx,我们可以看到它们在m个维度上的不同值,根据不同的组合可以给出不同的解释。一般来说,我们会选择其中两个来进行可视化。
4.5 PCA和Neural Network
课程提供了一种是解释方法,解释PCA,最终可以证明PCA方法其实和nn中的auto encoder是同一个原理。我觉得从公式上可以很直观的get到PAC和nn之间的关系,所以这里不做展开。
4.6 PCA的其他事情
- 使用PCA可以得到正负的贡献,如果想全部为正的话,可以使用非负值分解方法
- PCA的缺点
- 无监督性,可能会错误聚类(多降维到少)
- 线性变换
5. Matrix Factorization
矩阵因子分解,这个经常被抽取x和y之间的关系上,举个例子。
Topic Analysis, 分析文本的类型上。
大部分时候,你并不知道分解出来的每个维度上都代表什么,例如下面的例子,每个人和每个手办数都可以分解成一个二维矩阵,表中每个值都是来自人和手办的向量的inner product
事实上,你可以从抽象的角度理解,这里使用了一种向量化方法,将人和物都向量化。这种技术常常被用于推荐系统,例如把手办换成电影,商品等等。