对于图像分类任务,堆叠式自动编码器如何帮助传统的卷积神经网络?
正如论文中提到的,我们可以使用预训练的权重来初始化 CNN 层,虽然这基本上不会给 CNN 添加任何内容,但它通常有助于为训练设置一个良好的起点(尤其是在标记数据量不足的情况下) )。
在第一次卷积操作之前的任何预训练步骤(如降维或自动编码器输出)都可以用作输入图像,而不是 CNN 中的真实图像数据
由于 CNN 的局部连通性,如果降维后数据的拓扑结构丢失,那么 CNN 将不再适用。
例如,假设我们的数据是图像,如果我们将每个像素视为一个维度,并使用 PCA 进行降维,那么图像的新表示将是一个向量,不再保留原始的 2D 拓扑(以及相邻图像之间的相关性)像素)。所以在这种情况下,它不能直接与 2D CNN 一起使用(尽管有一些方法可以恢复拓扑)。
使用 AutoEncoder 输出应该可以很好地与 CNN 配合使用,因为它可以看作是在 CNN 和输入之间添加了一个额外的层(具有固定参数)。
在图像分类任务的上下文中它对卷积神经网络的性能有多大影响
我碰巧在大学做过一个相关的项目,在那里我试图将图像的每个部分标记为道路、天空或其他。尽管结果远不能令人满意,但它可能会提供一些关于这些预处理技术如何影响性能的想法。
(1) 清晰道路的图像 (2) 简单的两层 CNN 的结果
(3) 第一层由预训练 CAE 初始化的 CNN (4) 带有ZCA 白化的 CNN
CNN 使用具有固定学习率的 SGD 进行训练。在KITTI道路类别数据集上测试,方法(2)的错误率在14%左右,方法(3)和(4)的错误率在12%左右。
请纠正我哪里错了。:)