卷积神经网络的可视化、无监督学习及应用
1. 激活特征的合成图像
在探讨特定图像中对特定神经元影响最大的部分后,一个更普遍的问题是:什么样的图像块能最大程度地激活特定神经元?为便于讨论,我们聚焦于神经元是特定类别输出值 $o$(即应用 softmax 之前的未归一化输出)的情况。例如,$o$ 的值可能是“香蕉”的未归一化得分。当然,这种方法也可应用于中间神经元,而非仅局限于类别得分。
我们的目标是学习输入图像 $x$,使输出 $o$ 最大化,同时对 $x$ 应用正则化:
$$\text{Maximize}_x J(x) = (o - \lambda||x||^2)$$
其中,$\lambda$ 是正则化参数,对于提取具有语义可解释性的图像至关重要。我们可以结合梯度上升和反向传播来学习使上述目标函数最大化的输入图像 $x$。具体操作是,从零图像 $x$ 开始,根据以下更新规则更新 $x$:
$$x \Leftarrow x + \alpha\nabla_x J(x)$$
这里,$\alpha$ 是学习率。关键在于,反向传播以一种不寻常的方式被用于更新图像像素,同时保持(已学习的)权重固定。
2. 卷积自编码器
传统神经网络中自编码器的使用原理是将数据点经过压缩阶段后进行重建。在某些情况下,数据虽未被压缩,但表示是稀疏的。架构中最压缩层之前的部分称为编码器,压缩部分之后的部分称为解码器。
卷积自编码器也有类似的原理,它在图像经过压缩阶段后进行重建。与传统自编码器的主要区别在于,卷积自编码器专注于利用点之间的空间关系来提取具有视觉解释性的特征,中间层的空间卷积操作正是为了实现这一目标。
以下是传统自编码器和卷积自编码器的对比:
| 线性操作 | 传统神经网络 | 卷积神经网络 |
| ---- | ---- | ---- |
| 前向传播 | 矩阵乘法 | 卷积 |
| 反向传播 | 转置矩阵乘法 | 转置卷积 |
| 解码器层 | 转置矩阵乘法 | 转置卷积(与反向传播相同) |
卷积自编码器的基本架构如下:
graph LR
A[输入图像] --> B[卷积]
B --> C[ReLU]
C --> D[最大池化]
D --> E[编码]
E --> F[反池化]
F --> G[ReLU]
G --> H[反卷积]
H --> I[重建图像]
虽然通常希望在解码器中使用编码器操作的逆操作,但 ReLU 函数不是可逆的,因为值为 0 有多种可能的逆。因此,在解码器层中,ReLU 通常被另一个 ReLU 取代(当然也有其他选择)。
在卷积和反卷积操作中,需要注意的是,卷积层和对应的反卷积层的填充总和必须为 $F_1 - 1$,以保持卷积 - 反卷积对中图层的空间大小。例如,编码器第一层使用 $d_2$ 个大小为 $F_1 \times F_1 \times d_1$ 的方形滤波器,若卷积层使用半填充(填充量为 $F_1 - 1$),则可使第二层的特征图大小与第一层相同。
池化操作会不可逆地丢失一些信息,因此无法精确反转。最大反池化操作借助开关来实现,在池化时存储最大值的精确位置,反池化时将这些位置的值从先前层复制过来,其他值设为 0。
损失函数由所有 $L_1 \times L_1 \times d_1$ 像素的重建误差定义:
$$E = \sum_{i=1}^{L_1} \sum_{j=1}^{L_1} \sum_{k=1}^{d_1} (h_{ijk}^{(1)} - h_{ijk}^{(7)})^2$$
也可使用其他类型的误差函数,如 $L_1$ 损失和负对数似然。我们可以使用传统的反向传播来训练卷积自编码器,反向传播通过反卷积或 ReLU 与通过卷积的情况并无太大不同。在最大反池化的情况下,梯度仅通过开关以不变的方式流动。由于编码器和解码器的参数是相关的,在梯度下降过程中,需要对两层中匹配参数的梯度进行求和。
这种基本的自编码器可以轻松扩展到使用多个卷积、池化和 ReLU 的情况。为提高性能,还可采用一些架构设计选择,例如:
- 用步幅卷积代替最大池化来减少编码器中的空间占用,并在解码器中使用分数步幅卷积进行平衡。
- 在卷积时,通过在每对行之间插入 $S - 1$ 行零,在每对列之间插入 $S - 1$ 列零来拉伸输入体积,然后再应用滤波器。
- 也可在输入体积的原始条目之间插入插值值(而不是零)来拉伸输入体积。
- 有时还会结合拉伸滤波器的方法,即在滤波器中插入零,这被称为膨胀卷积。
3. 无监督学习在监督学习中的应用
无监督学习方法在提升监督学习效果方面有一定应用,其中最常见的是预训练。在卷积神经网络中,预训练的基本原理与传统神经网络差别不大。预训练可以通过从训练好的深度信念卷积网络中导出权重来完成,这类似于传统神经网络中使用堆叠玻尔兹曼机进行预训练的方法。
4. 卷积网络的应用
卷积神经网络在目标检测、定位、视频和文本处理等多个领域都有广泛应用,其成功程度几乎超过了其他任何类型的神经网络。近年来,甚至在传统上属于循环网络领域的序列到序列学习中,也出现了有竞争力的卷积网络方法。
4.1 基于内容的图像检索
在基于内容的图像检索中,首先使用预训练的分类器(如 AlexNet)将每个图像转换为一组多维特征。预训练通常使用像 ImageNet 这样的大型数据集提前完成,并且有大量的预训练分类器可供选择。具体操作步骤如下:
1. 选择预训练分类器 :从众多预训练分类器中挑选合适的,如 AlexNet。
2. 特征提取 :利用所选分类器的全连接层提取图像的特征,形成图像的多维表示。
3. 检索操作 :将这些多维表示与任何多维检索系统结合使用,以提供高质量的检索结果。
这种方法之所以有效,是因为从 AlexNet 中提取的特征对数据中不同类型的形状具有语义意义,因此使用这些特征进行检索时,通常能获得较高的质量。
综上所述,卷积神经网络在可视化、无监督学习以及多种应用场景中都展现出了强大的能力。从激活特征的合成图像到卷积自编码器的构建,再到无监督学习在监督学习中的应用以及基于内容的图像检索等应用,卷积神经网络为解决各种复杂问题提供了有效的手段。同时,不同的架构设计选择和操作技巧可以进一步提升其性能,使其在更多领域发挥更大的作用。
以下是一个总结卷积自编码器关键操作和参数的表格:
| 操作/参数 | 说明 |
| ---- | ---- |
| 卷积 | 编码器中使用卷积操作提取特征,滤波器大小为 $F_1 \times F_1 \times d_1$ 等,可使用半填充等方式控制特征图大小 |
| 反卷积 | 解码器中使用反卷积操作重建图像,与卷积操作相关,卷积和反卷积层填充总和为 $F_1 - 1$ |
| ReLU | 编码器和解码器中使用,解码器中可使用另一个 ReLU 替代 |
| 最大池化 | 编码器中减少空间占用,不可逆操作,丢失部分信息 |
| 最大反池化 | 解码器中借助开关实现,恢复部分空间信息 |
| 损失函数 | $E = \sum_{i=1}^{L_1} \sum_{j=1}^{L_1} \sum_{k=1}^{d_1} (h_{ijk}^{(1)} - h_{ijk}^{(7)})^2$ 等 |
| 预训练 | 可从深度信念卷积网络导出权重用于监督学习 |
下面是一个简单的流程图,展示基于内容的图像检索的流程:
graph LR
A[原始图像] --> B[预训练分类器(如 AlexNet)]
B --> C[提取全连接层特征]
C --> D[形成多维表示]
D --> E[多维检索系统]
E --> F[检索结果]
通过这些内容,我们对卷积神经网络的相关技术和应用有了更深入的了解,也为进一步探索和应用这些技术提供了基础。
超级会员免费看
1313

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



