UFLDL教程总结(4) Self-Taught learning

自主学习,就是用Autoencoder学到的特征作为输入,来完成一些机器学习算法,比如分类.

自学特征

这是一个Autoencoder:

训练好Autoencoder后,我们去掉这个网络的最后一层,那么第二层神经元的激活就成了特征,如下图.这些特征可以替代我们以前的样本,也可以与以前的样本联合起来.前者叫replace,即把\(\textstyle { (x_l^{(1)}, y^{(1)}), (x_l^{(2)}, y^{(2)}), \ldots (x_l^{(m_l)}, y^{(m_l)}) }\)换成\( \textstyle { (a_l^{(1)}, y^{(1)}), (a_l^{(2)}, y^{(2)}), \ldots (a_l^{(m_l)}, y^{(m_l)}) }\);后者叫concatenate,即\( \textstyle { ((x_l^{(1)}, a_l^{(1)}), y^{(1)}), ((x_l^{(2)}, a_l^{(1)}), y^{(2)}), \ldots, ((x_l^{(m_l)}, a_l^{(1)}), y^{(m_l)}) }\).

数据预处理时要记着的东西

之前我们对数据进行PCA或者ZCA白化处理时,用到了样本的均值和,还有计算出的特征向量组成的矩阵U,这些参数应该保存下来.当对这个训练好的模型输入新的数据做判断时,应该用这些参数对这个新数据做同样的处理.

实验

这个实验还是在MNIST上,用标签为5-9的数据来当作无标签数据,训练了一个autoencoder,再使用标签为0-4的数据作为输入,加上一个softmax分类器,用监督的方法来训练这个分类器,实现0-4这5类数字的判别.