无监督学习
无监督特征学习——主成分分析、稀疏编码、自编码器
无监督特征学习是指从无标注的数据中自动学习有效的数据表示,从而能够帮助后续的机器学习模型更快速地达到更好的性能.无监督特征学习主要方法有主成分分析、稀疏编码、自编码器等。
主成分分析PCA
理解什么是PCA,有什么用处
- 主成分分析(Principal Component Analysis,PCA)是一种最常用的数据降维方法,使得在转换后的空间中数据的方差最大。
将高维度的数据降维到低维度。比如一张32*32的图片,每一个pixel都是一个随机变量,那这张图就是1024维度的随机向量,每个像素都有自己的分布,我们想找寻这张图的联合分布f(x1,x2,x3…,x1024)并不容易,这些随机变量间也是具有冗余性的。
- “维度灾难” 当图像变换时,比如:两个不同的图片同时写的数字1,那么对应像素的分布很有可能因为像素级别的偏差就无法对应,很难认为“他们都是1”,而当必须每个像素的分布都完全一致才能被认作是同类型数据时,实际上就是过拟合了。只能提供海量的数据来解决过拟合,不现实。
于是提取数据中的特征,也就是通过降维的方法,把1024维度的数据降维到3维,这样在三维上的联合分布f(x1,x2,x3)就可以如下图所示,比较“抽象”,把同一类的聚在了一起,对于图像重构而言,如果新来了一张图,他是一张“残缺的1“,但是经过PCA后成功落在了1的区域,那么它就能够被修复。在不考虑重构图像时,PCA也是一种优秀的《无监督特征学习》的方法,将1024维的x 编码(encoding)为3维的z。
图1:利用PCA对mnist手写数字进行降维到3D并可视化
-
PCA推导:
首先,找一组基向量W=[w1,w2,w3],W是一个正交阵,即Wt*W=E,那么z=Wt*x
W的选取准则:最大投影方差、(最小重构误差)
对于手写数字识别28*28的图片,batch=1000,则X∈R(784,1000),mean(X)∈R(784,1000),视为784个随机变量(每张图的第i个像素归为同一个随机变量),每个变量有1000个采样,则(X-mean(X))*(X-mean(X))T /1000=Σ协方差矩阵:
[
[cov(x1,x1),cov(x1,x2),...,cov(x1,x784)]
[cov(x2,x1),cov(x2,x2),...,cov(x2,x784)]
...
[cov(x784,x1),cov(x784,x2),...,cov(x784,x784)]
]
得到Σ后,求他的前三大的特征值及其特征向量,即可得到基底(三个784维的正交向量),即可降维。
PCA的缺点:PCA是找到高维(D维)的三个投影向量,然后对高纬度特征进行线性变换,设计思想朴素,没有考虑非线性关系。
图2:其他的降维手段
稀疏编码
编码
-
重点:
那这样稀疏编码的特征提取过程中,选取的W的基向量个数是过完备的,我们的编码好像反而没有降维,而是提升维度了。那么为了我们提取特征的初心——《抽象》,我们要求编码z必须“稀疏”
X∈R(D,N),D是原始数据特征维度(mnist中的28*28),N是数据个数(mnist中1000),
coding矩阵W∈R(D,M),M是稀疏编码的过完备基向量个数(M>D),
Z=W.T*X,Z是稀疏编码矩阵∈R(M,N),每一列为z(i),需要让Z是一个稀疏矩阵,那么训练网络的目标函数更新为:即需要控制稀疏性(0越多越好),ρ函数需要可导。
L
(
A
,
Z
)
=
Σ
(
∣
∣
X
−
A
Z
∣
∣
2
+
η
ρ
(
Z
)
)
L(A,Z)=Σ(||X-AZ||²+ηρ(Z))
L(A,Z)=Σ(∣∣X−AZ∣∣2+ηρ(Z))
具体见书
交替优化
- 固定A,优化W(优化z)
- 固定W(固定z),优化A
- 交替进行
自编码器(Auto-Encoder)
自编码器的f和g由神经网络构成,可以将上一讲的稀疏编码中的线性的编码解码看做AE的一种特例,线性的W编码矩阵和A基向量矩阵决定了它不能够端到端训练(层数坍塌,两层坍塌为一层),需要交替优化。而在AE中,由于f和g一般都有activate函数,故为非线性的,目标函数仅进行最终的重构优化