我不明白卷积自动编码器是如何实现降维的。对于基于FFNN的自动编码器,其约简容易理解:输入层有N个神经元,隐藏层有M个神经元,N大于M,在卷积型自动编码器中,输入图像又宽又薄,变小而厚。它会产生比最初的信息量更大的信息量。
我报告了一个实际例子,以更好地解释我的意思:
# INPUT: 28 x 28 x 1 (wide and thin)
conv1 = Conv2D(32, (3, 3), activation='relu', padding='same')(input_img) #28 x 28 x 32
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1) #14 x 14 x 32
conv2 = Conv2D(64, (3, 3), activation='relu', padding='same')(pool1) #14 x 14 x 64
pool2 = MaxPooling2D(pool_size=(2, 2))(conv2) #7 x 7 x 64
conv3 = Conv2D(128, (3, 3), activation='relu', padding='same')(pool2)
# OUTPUT: 7 x 7 x 128 (small and thick)在这个例子中,我们从一个28x28单通道图像(784)开始,编码器输出将是7x7x128 (6272)。这是降维吗?
发布于 2021-02-05 10:25:56
为什么不在最后一次卷积中使用较低数目的滤波器呢?而不是128,你可以选择任何你想要的数字,例如10。
另外,通常在卷积层(和池层)之后,您会平缓输出(因此丢失空间信息),然后将密集层投影到最终表示空间上。你可以用最后密集层矩阵的形状来控制表示空间的维数。
https://datascience.stackexchange.com/questions/88969
复制相似问题