什么事自动编码?看一张图:
解释就是将高维数据乘以一个参数矩阵( W W W)后边长一个低维code,叫做encode过程;然后将这个code乘以另一个参数矩阵( W T W^T WT)变回高维数据,即为decode;尽量使输入数据和输出数据相似。
我们发现这个模型和我们的神经网络很相似,和PCA降维也很相似。
在MNIST测试集上试一下:
# encoding=utf-8
import keras
import numpy as np
from keras.layers import Dense, Input
from keras.datasets import mnist
from keras.models import Model
import matplotlib.pyplot as plt
# 加载数据
(x_train, y_train), (x_valid, y_valid) = mnist.load_data()
x_train = x_train.astype('float32')