一、自编码器简介
无监督特征学习(Unsupervised Feature Learning)是一种仿人脑的对特征逐层抽象提取的过程,学习过程中有两点:一是无监督学习,即对训练数据不需要进行标签化标注,这种学习是对数据内容的组织形式的学习,提取的是频繁出现的特征;二是逐层抽象,特征是需要不断抽象的。
自编码器(AutoEncoder),即可以使用自身的高阶特征自我编码,自编码器其实也是一种神经网络,其输入和输出是一致的,借助了稀疏编码的思想,目标是使用稀疏的高阶特征重新组合来重构自己。
二、完整代码
import numpy as np
np.random.seed(1337) # for reproducibility
from keras.datasets import mnist
from keras.models import Model #泛型模型
from keras.layers import Dense, Input
import matplotlib.pyplot as plt
# X shape (60,000 28x28), y shape (10,000, )
(x_train, _), (x_test, y_test) = mnist.load_data()
# 数据预处理
x_train = x_train.astype('float32') / 255. - 0.5 # minmax_normalized
x_test = x_test.astype('float32') / 255. - 0.5 # minmax_normalized
x