深入浅出:自动编码器的原理、实现与应用
一、自动编码器基础
1.1 欠完备自动编码器与降维
自动编码器会在重构结果与输入不同时产生重构损失。当内部表示的维度低于输入数据时(例如将 3D 数据转换为 2D),这种自动编码器被称为欠完备自动编码器。它不能简单地将输入复制到编码中,而是被迫学习输入数据中最重要的特征,舍弃不重要的特征。
我们可以通过以下代码实现一个简单的欠完备线性自动编码器进行主成分分析(PCA):
from tensorflow import keras
encoder = keras.models.Sequential([keras.layers.Dense(2, input_shape=[3])])
decoder = keras.models.Sequential([keras.layers.Dense(3, input_shape=[2])])
autoencoder = keras.models.Sequential([encoder, decoder])
autoencoder.compile(loss="mse", optimizer=keras.optimizers.SGD(lr=0.1))
history = autoencoder.fit(X_train, X_train, epochs=20)
codings = encoder.predict(X_train)
这里有几点需要注意:
- 自动编码器分为编码器和解码器两个子组件,都是常规的顺序模型,自动编码器按顺序包含编码器和解码器。
- 自动编码器的输出数量
超级会员免费看
订阅专栏 解锁全文
2610

被折叠的 条评论
为什么被折叠?



