【台大李宏毅ML课程】Lecture 13 Unsupervised Learning——Linear Dimension Reduction笔记
本节课主要讲了两种线性降维的方法——cluster和PCA,并从两个角度解释了PCA。最后讲了一些关于矩阵分解的知识。
1.cluster
cluster就简单的带过了,主要是k-means和HAC
k-means原理:
(1)先初始化k个中心点ci (i=1,….,k)
(2)如果样本x离ci更近,就划分到第i类
(3)更新每个类别的中心点
(4)重复(2)(3)
如何选择K是个问题~
HAC(Hierarchical Agglomerative Clustering )原理
类似于建立一棵树,每个节点都设置一个阈值
2.PCA(Principle Component Analysis)
PCA降维原理可以从两个来考虑
一是基于最大方差原理,样本点在这个超平面上的投影尽可能分开。
二是基于最小化误差原理,样本点到这个超平面距离都足够近。
2.1基于最大方差原理
(1)需要找到一个投影矩阵W,使得x在W上的投影方差尽可能的大,其中W是由很多个向量组成(w1,w2,w3,…),希望x在w1上投影的方差最大,w2上投影的方差其次……以此类推
(2)并且,W是一个单位正交矩阵,即(w1,w2,w3,…)相互正交,且都是单位向量
(3)先来求解w1,把投影后z=w1·x的协方差矩阵写出来~
(4)问题变成了求解带条件的最大值问题,采用lagrange乘数法求解~
可求得w1是x的协方差矩阵S的特征向量,且是最大特征值对应的特征向量
(5)依次往后退,w2是S的2nd特征值对应的特征向量
(6)PCA达到的效果就是decorrelation(去关联),所以最后投影之后得到z的协方差矩阵D是对角矩阵;
* 投影矩阵W是单位正交矩阵*
* W就是x协方差矩阵S的特征向量*
2.2基于最小化误差原理
(1)基本思想:将x-(x上面一根横线,就是x的均值)近似看成是由多个u组成的,然后求解最小化它们之间的error时的系数c和分量u
(2)矩阵形式,Matrix X就是x-(x上面一根横线)
(3)为了求解c和u(component),可以将X做奇异值分解SVD,用分解后的U代替u,ΣxV代替系数c
其中U就是XXT的特征向量
有时候只选取特征值比较大的component~
PCA相当于只含一层hidden layer的AutoEncoder
2.3 PCA和LDA比较
PCA是无监督的,LDA是有监督的
PCA基本思想是方差最大,LDA基本思想是让不同类别分的尽可能开
PCA和LDA都是线性映射
对于结构比较复杂的降维,只能采用非线性流行学习比如LLE等方法
2.4 PCA和NMF比较
NMF:Non-negative Matrix Factorization,非负矩阵分解
NMF分解之后的component的系数都是正的,就拿image来说,也就是说分解之后的component像是原始image的一部分
而PCA的系数可正可负,涉及到component的“加加减减”
没有具体讲
可参考这篇博文:
https://blog.****.net/acdreamers/article/details/44663421
3.Matirx Factorization矩阵分解
目的:通过矩阵分解,也许可以挖掘出一些隐含信息,可以用在推荐系统中
(1)可利用矩阵中已有的数据,将问题转化为求最小值的问题,其中r是向量,可用梯度下降法求解
求解过程大致可以参考这篇文章:
https://blog.****.net/shuaishuai3409/article/details/50821071
(2)求解出来的r就是下面两个矩阵,可以用来填充原矩阵中没有的值
(3)还可以加一些偏置b或者正则项
矩阵分解的一些应用——主题分析,挖掘出一些隐含的主题
1.LSA
2.PLSA
3.LDA
……