一、工作原理
- 自编码器一般包含编码器和解码器,编码阶段用于找到原始输入的
高阶特征表示(更好的去分类)
,解码阶段用于产生和原始输入尺寸相同的原始数据表示
,通过不断减小原始数据和解码后的原始数据表示来得到更好的编码后的高阶特征表示,最后利用此特征去做分类(SVM、Logistic Regression etc)
- 如果中间隐藏层节点的数量小于输入/输出节点的数量,那么此过程就相当于
降维
# 解码器输出层神经元数量必须等于输入数据的 units 数量
n_output_units = n_input_units
# 损失函数
with tf.name_scope('Loss'):
Loss = tf.reduce_mean(tf.pow(X_Origin - X_decode, 2))
# 对原始数据添加高斯噪声,使得 model 鲁棒性更强
noise_x = x + scale * tf.random_normal((n_input,))
二、分类