趋近智
编码器构成自编码器架构的前半部分。它的主要作用是将高维输入数据(表示为 x)转换为紧凑的低维表示,通常称为潜在编码或潜在变量(表示为 z)。这个过程本质上是压缩,目的是捕获数据中最突出的特征或潜在的变异因素,同时丢弃噪声或冗余信息。可以将其视为对输入进行有效归纳。
在数学上,我们可以将编码器表示为一个函数 f。该函数将输入空间 X 映射到潜在空间 Z: z=f(x) 通常,潜在空间的维度远小于输入空间的维度,即 dim(z)≪dim(x)。这种降维操作使得网络必须学习一种压缩表示。
编码器网络的具体架构在很大程度上取决于其需要处理的输入数据类型。
全连接网络 (MLP): 对于本质上是向量或表格形式的输入数据(例如传感器特征向量、用户配置文件或扁平化图像),标准多层感知器 (MLP) 通常足够。编码器通常由一系列全连接(密集)层组成。后续的每个层通常比前一个层拥有更少的神经元,逐步降低维度,直到最终层输出潜在编码 z。
典型的基于 MLP 的编码器结构,展示了层数逐渐减小,最终得到潜在表示 z。
卷积神经网络 (CNN): 当处理网格状数据,特别是图像时,卷积神经网络 (CNN) 是编码器的优先选择。CNN 能有效借助空间层级和参数共享。编码器通常由一系列卷积层组成,其后常跟池化层(如最大池化)。卷积层提取空间特征,而池化层则降低空间维度(高度和宽度)。随着空间维度减小,特征通道数(深度)通常会增加,将信息集中到更密集的特征表示中,然后可能被展平并通过全连接层,以生成最终的潜在编码 z。
设计一个有效的编码器需要考虑几个因素:
编码器网络的最终输出是向量 z。该向量存在于潜在空间中,作为输入 x 的压缩归纳。它包含了自编码器认为对重建重要的学习特征。然后,这个潜在编码 z 会直接传递给解码器网络,解码器将尝试仅凭这些压缩信息来重建原始输入 x^。整个自编码器的效能取决于编码器学习到的表示质量。
在实践中,实现编码器需要使用 TensorFlow/Keras 或 PyTorch 等深度学习框架的 API 定义一系列层。例如,在 Keras 中,一个简单的 MLP 编码器可以使用顺序堆叠的 tf.keras.layers.Dense 层来定义。接下来的章节将阐述瓶颈层本身以及相应解码器网络的设计。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造