深入探索自编码器:从基础到高级应用
1. 自编码器概述
自编码器可以被视为一种自监督学习的形式,即使用自动生成标签的监督学习技术,在这种情况下,标签简单地等同于输入。
2. 堆叠自编码器
2.1 堆叠自编码器的结构
和其他神经网络一样,自编码器可以有多个隐藏层,这种情况下被称为堆叠自编码器(或深度自编码器)。增加更多层有助于自编码器学习更复杂的编码。不过,要注意不能让自编码器过于强大。例如,一个强大的编码器可能只是将每个输入映射到一个任意数字,解码器学习反向映射,这样虽然能完美重构训练数据,但无法学习到有用的数据表示,也难以泛化到新实例。
堆叠自编码器的架构通常关于中心隐藏层(编码层)对称,就像一个三明治。以MNIST数据集的自编码器为例,可能有784个输入,接着是一个有100个神经元的隐藏层,然后是一个有30个神经元的中心隐藏层,再是另一个有100个神经元的隐藏层,最后是一个有784个神经元的输出层。
2.2 使用Keras实现堆叠自编码器
以下是使用Keras为Fashion MNIST数据集构建堆叠自编码器的代码:
import keras
stacked_encoder = keras.models.Sequential([
keras.layers.Flatten(input_shape=[28, 28]),
keras.layers.Dense(100, activation="selu"),
keras.layers.Dense(30, activation="s
超级会员免费看
订阅专栏 解锁全文

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



