Auto Encoder

自编码(Autoencoder)

自编码(Autoencoder)-深度学习 AUtoEncoder相当于reconstruction,需注意并不是重建所有的样本,只是重建符合数据分布的X。 隐藏层的节点比输入层少,相当于做了压缩,如果激活函数不是sigmoid函数,而是线性的话,则等价于PCA。

【Deep Learning】林轩田机器学习技法

sparse autoEncoder

稀疏AUtoEncoder是对模型加了L1范数,导致隐藏层很多节点为0 ,注意是隐藏层的输出为0

优化目标函数:

h=WTxminimize(Whx)22+λh1+γW22s.t.WjTWj1h = W^T x \\ minimize \qquad \left \| (Wh-x) \right \|_2^2 + \lambda \left \| h \right \|_1 + \gamma \left \| W \right \|_2^2 \\ s.t. \qquad W_j^T W_j \le 1

这里是对h做L1范数 x为样本数据,h为一个用于表示样本数据的稀疏特征集,W为一个将特征集从特征空间转换到样本数据空间的基向量。

算法过程

有了以上两种技巧,稀疏编码算法修改如下: 1. 随机初始化A 2. 重复以下步骤直至收敛 1. 随机选取一个有2000个patches的迷你块 2. 如上所述,初始化s 3. 根据上一步给定的A,求解能够最小化J(A,s)的s 4. 根据上一步得到的s,求解能够最小化J(A,s)的A 通过上述方法,可以相对快速的得到局部最优解。

稀疏编码获取的完备的基向量不一定线性无关。

Stacked AutoEncoder

就是多个隐藏层,逐层贪婪的学习。

稀疏编码自编码表达 稀疏编码(Sparse Coding)的前世今生(一)

Variational Autoencoders