本实验是用线性解码器的sparse autoencoder来训练stl-10数据库图片中8*8大小RGB patch块的特征。之前的试验中,我们的训练图像都是灰度图像,对于RGB图像可以采用相同的方法,只需把RGB图像的三个通道向量按照rgb的顺序排列更长的向量即可。
1、 线性解码器简介
线性解码器和 稀疏自动编码的整体结构都是类似的,只是线性解码器的输出层的激励函数为 恒等式f(z) = z,而稀疏自动编码为 非线性函数,比如sigmoid函数、tanh函数等,那为什么为出现两者不同的激励函数呢。我们以三层神经网络为例,输出层的计算公式如下:
其中a(3)是第二层的输出,在自编码器中,我们希望a(3)近似重构了输入x=a(1)。
我们在稀疏自动编码采用sigmoid激励函数,把输出数据控制在[0,1]范围,如果输入数据能够方便缩放到 [0,1] 中(MNIST手写数字数据集),那稀疏自动编码可以满足要求。但是,有些数据很难把数据缩放到[0,1]之间(比如PCA 白化处理的输入),如果此时输入数据的范围为[0,10],仍然使用sigmoid激励函数保证输出为[0,1],此时不能得到输出重构输入的要求,在这种情况下,线性解码器的优势就体现出来了。