无监督学习:PCA
PCA
如果reduce to 1D,我们使用 z 1 = w 1 ∗ x z_1=w^1*x z1=w1∗x,使得 x x x投影到 w 1 w^1 w1上,即达到了降维的目的,那么我们如何来评价降维的好坏呢?
我们可以使用降维之后数据的variance来评价,variance越大越好
如果reduce to 2D,那么现在就需要投影到两个不同的方向
(
w
1
,
w
2
)
(w^1,w^2)
(w1,w2)上,再来与
x
x
x做inner product,得到
z
1
,
z
2
z_1,z_2
z1,z2,再分别计算这两者的variance;其中
w
1
,
w
2
w^1,w^2
w1,w2要满足一定的条件,即
w
1
∗
w
2
=
0
w^1*w^2=0
w1∗w2=0,两者是垂直的,可以保证是不同的方向
那么W就是一个正交矩阵,向量之间相互正交,且向量模长都是1
Formula
Decorrelation
Another Point of View
下图中的7可以由三个部分组成,即
u
1
,
u
3
,
u
5
u^1,u^3,u^5
u1,u3,u5
那么我们目标就是找到这K个component
c
k
c_k
ck可以用另外一种形式表达出来
那么
c
1
c_1
c1乘上
w
i
w^i
wi,就可以得到output
对于
c
2
c_2
c2也有类似的结果
如果是在linear的情况下,使用PCA比较好,用network就会很麻烦;但network可以是deep的,可以中间有很多个hidden layer,这被称为Deep Autoencoder
Weakness of PCA
- unsupervised,输入的data是没有label的,PCA会找一种方式使得降维之后data的variance最大,就可能出现左上的结果,这时两者的class是不一样的,如果还是继续投影到红线上,就会出现两个class的data相互交错的局面;
- Linear,对于立体的data,如果还是继续pca,得到的结果也会非常不理想
PCA for Pokemon
PCA for MNIST
PCA for Face
本文图片来自李宏毅老师课程PPT,文字是对李宏毅老师上课内容的笔记或者原话复述,在此感谢李宏毅老师的教导。