卷积神经网络架构案例与可视化学习
1. 卷积神经网络深度的重要性
近年来,研究的一个重要焦点是通过算法改进来增加神经网络架构的深度,因为深度与错误率的改善密切相关。卷积神经网络是所有神经网络类别中最深的类型之一。有趣的是,在其他领域,传统的前馈网络在大多数分类等应用中并不需要很深。“深度学习”这一术语的提出,很大程度上源于卷积神经网络令人印象深刻的性能,以及随着深度增加所带来的显著改进。
2. 预训练模型
在图像领域,分析师面临的一个挑战是特定应用可能没有可用的带标签训练数据。比如在图像检索应用中,没有标签,但特征需要具有语义连贯性。还有些情况下,人们希望对具有特定标签的数据集进行分类,而这些标签数据可能有限,且与 ImageNet 等大型资源不同。由于神经网络从头构建需要大量训练数据,这些情况会带来问题。
不过,图像数据有一个关键特性,即从特定数据集提取的特征在不同数据源之间具有高度可复用性。例如,只要不同数据源使用相同数量的像素和颜色通道,猫的表示方式不会有太大差异。像 ImageNet 数据集包含来自 1000 个日常生活类别的超过一百万张图像,其选择的 1000 个类别和大量多样的图像具有代表性和全面性,可用于提取通用图像特征。
可以将 ImageNet 数据提取的特征用于表示完全不同的图像数据集,方法是将其通过预训练的卷积神经网络(如 AlexNet),并从全连接层提取多维特征。这种新表示可用于聚类或检索等不同应用。这种现成的特征提取方法很常见,人们很少从头训练卷积神经网络。从倒数第二层提取的特征通常称为 FC7 特征,这一名称源于 AlexNet 中的层名。
这种特征提取方法可视为一种迁移学习,因为我们利用 ImageNet 等公共资源提取特征,以解决训练数据不足情况下的不同问题。这种方法已成为许多图像识别任务的标准做法,许多软件框架(如 Caffe)提供了对这些特征的便捷访问。如果有额外的训练数据,可以仅对较深的层(即靠近输出层的层)进行微调,早期层(靠近输入层)的权重固定。这是因为早期层捕捉的是边缘等原始特征,这些特征在不同应用中变化不大,而较深层捕捉的是更复杂、特定于数据集的特征。
以下是使用预训练模型的步骤:
1. 选择合适的预训练模型,如 AlexNet。
2. 准备要处理的图像数据集。
3. 将图像数据集输入预训练模型。
4. 从全连接层提取多维特征。
5. 将提取的特征用于所需的应用,如聚类或检索。
3. 可视化和无监督学习
卷积神经网络的一个有趣特性是,它所学习的特征类型具有很高的可解释性,但实际解释这些特征需要一些努力。一种直观的方法是可视化滤波器的二维(空间)组件,这种方法可以展示神经网络第一层学习到的原始边缘和线条,但对后续层不太有用。因为在第一层,滤波器直接作用于输入图像,往往看起来像图像的原始部分(如边缘),而后续层的滤波器作用于已经经过卷积操作的输入体积,可视化较为复杂。可视化的目标通常是识别和突出特定隐藏特征所响应的输入图像部分。
图像的编码和解码有两种主要设置:
-
有监督设置
:使用前面提到的任何监督模型学习压缩特征图。网络经过有监督训练后,尝试重建最能激活给定特征的图像部分,并识别最可能激活特定隐藏特征或类别的图像部分。这可以通过各种反向传播和优化公式实现。
-
无监督设置
:将卷积网络(编码器)与反卷积网络(解码器)连接。解码器也是一种转置卷积,类似于反向传播。在这种情况下,编码器和解码器的权重联合学习,以最小化重建误差。有监督设置相对简单,因为编码器已经过有监督训练,只需了解输入字段不同部分对各种隐藏特征的影响;而无监督设置需要从头开始进行整个网络的训练和权重学习。
4. 可视化训练网络的特征
考虑一个使用像 ImageNet 这样的大型数据集训练的神经网络,我们希望可视化和理解输入图像不同部分(即感受野)对隐藏层和输出层各种特征的影响。具体有以下两个问题:
1. 对于特定输入图像,给定神经网络中某个特征的激活,可视化该特征响应最强烈的输入部分。该特征可能是空间排列层中的隐藏特征、全连接隐藏层(如 FC7)中的特征,甚至是 softmax 输出之一。例如,如果输入图像激活了“香蕉”标签,我们希望看到该输入图像中最像香蕉的部分。
2. 给定神经网络中的某个特定特征,找到最可能激活该特征的幻想图像。同样,该特征可能是隐藏特征或 softmax 输出之一。例如,想知道在当前训练网络中,什么样的幻想图像最可能被分类为“香蕉”。
在这两种情况下,可视化特定特征影响的最简单方法是使用基于梯度的方法。第二个目标较难实现,通常需要仔细的正则化才能获得满意的可视化效果。
5. 基于梯度的激活特征可视化
用于训练神经网络的反向传播算法对基于梯度的可视化也很有帮助。反向传播的梯度计算是一种转置卷积,在传统自编码器中,解码器常使用编码器层转置后的权重矩阵。因此,反向传播和特征重建之间的联系很紧密,适用于所有类型的神经网络。与传统反向传播设置的主要区别在于,我们的最终目标是确定隐藏/输出特征相对于输入图像不同像素的敏感性,而不是相对于权重的敏感性。
当计算输出 o 相对于输入像素的敏感性时,将这种敏感性在相应像素上的可视化称为显著性图。例如,输出 o 可能是“香蕉”类别的 softmax 概率(或应用 softmax 之前的未归一化分数)。对于图像中的每个像素 xi,我们需要确定 ∂o/∂xi 的值,这可以通过直接反向传播到输入层来计算。“香蕉”的 softmax 概率对与香蕉识别无关的图像部分的小变化相对不敏感,因此这些部分的 ∂o/∂xi 值接近 0,而定义香蕉的图像部分的 ∂o/∂xi 值较大。
这种方法也用于可视化特定隐藏特征的激活。对于特定输入图像的隐藏变量 h,我们想知道它在当前激活水平下如何响应输入图像。如果稍微增加或减少某些像素的颜色强度,h 的值会比其他像素更受影响。隐藏变量 h 会受到图像的一个小矩形部分(即感受野)的影响,早期层中的 h 感受野很小,而后期层中的感受野较大。例如,在 VGG 中,从第一个隐藏层选择的 h 的感受野可能只有 3×3 大小。
为了可视化隐藏特征对输入图像的响应,通常计算 ∂h/∂xi 并可视化梯度值较大的像素。有时会使用“反卷积网络”和引导反向传播,而不是传统的反向传播。这三种反向传播的区别如下表所示:
| 反向传播类型 | 传播条件 |
| ---- | ---- |
| 传统反向传播 | 若 ReLU 输入为正,则复制偏导数;否则设为 0 |
| 反卷积网络 | 若偏导数本身大于 0,则复制偏导数 |
| 引导反向传播 | 结合传统反向传播和 ReLU 的条件,即 gi = gi+1 ⊙I(zi > 0) ⊙I(gi+1 > 0) |
引导反向传播被认为比“反卷积网络”能提供更好的可视化效果,而“反卷积网络”又比传统反向传播效果好。
以下是可视化激活特征的步骤:
1. 选择要可视化的特征,如隐藏特征或 softmax 输出。
2. 计算该特征相对于输入图像像素的梯度。
3. 根据梯度值生成显著性图或可视化相应的图像区域。
4. 根据需要选择合适的反向传播方法,如引导反向传播。
6. 不同可视化方法的特点
不同的可视化方法有不同的特点。例如,某些可视化方法中,早期层的隐藏特征对应原始线条,后期层的特征变得越来越复杂。这也是卷积神经网络被视为创建分层特征的方法之一,早期层的特征更通用,可用于更多不同的数据集,而后期层的特征更特定于单个数据集。这一特性在迁移学习应用中得到了关键利用,预训练网络被广泛使用,仅对后期层进行特定于数据集和应用的微调。
mermaid 流程图展示可视化激活特征的流程:
graph LR
A[选择要可视化的特征] --> B[计算特征相对于输入像素的梯度]
B --> C[生成显著性图或可视化图像区域]
C --> D{选择反向传播方法}
D -- 传统反向传播 --> E[按传统规则传播梯度]
D -- 反卷积网络 --> F[按反卷积网络规则传播梯度]
D -- 引导反向传播 --> G[按引导反向传播规则传播梯度]
综上所述,卷积神经网络在深度、预训练模型、可视化和无监督学习等方面都有独特的特点和应用方法。通过合理利用这些特性,可以更好地处理图像数据,解决各种实际问题。
卷积神经网络架构案例与可视化学习
7. 可视化示例分析
不同的研究工作给出了许多可视化的示例,这些示例能帮助我们更直观地理解卷积神经网络中特征的响应情况。
例如,在一些可视化结果中,展示了特定类标签激活的图像部分。通过计算输出(如“香蕉”类别的 softmax 概率)相对于输入像素的敏感性,将其可视化成显著性图。图中明亮的部分表示与该类别相关的图像区域,这有助于我们了解输入图像中哪些部分对特定类别的识别起到关键作用。
另外,对于隐藏特征的可视化也有相关示例。在某些研究中,确定了特定输入图像中隐藏层里高度激活的神经元,并展示了对应这些神经元感受野的图像矩形区域。图像的左侧展示了激发特定神经元的图像具体特征,右侧则是对应隐藏层神经元的输入区域。可以看到,早期层的隐藏特征对应的图像区域较小且简单,而后期层对应的区域更大且包含更复杂的形状。
以下是不同层隐藏特征可视化的特点对比表格:
| 层位置 | 特征特点 | 对应图像区域 |
| ---- | ---- | ---- |
| 早期层 | 对应原始线条等简单特征,更通用 | 较小,如 3×3 大小(以 VGG 为例) |
| 后期层 | 特征更复杂,更特定于数据集 | 较大,包含更复杂的形状 |
8. 不同反向传播方法的对比
前面提到了传统反向传播、“反卷积网络”和引导反向传播三种方法,它们在处理 ReLU 非线性时有所不同,这也导致了不同的可视化效果。
传统反向传播在处理 ReLU 单元时,如果输入为正,则复制偏导数;否则设为 0。“反卷积网络”则是当偏导数本身大于 0 时复制偏导数,相当于在反向传播的梯度上应用 ReLU。引导反向传播结合了传统反向传播和 ReLU 的条件,使得传播的梯度更具选择性。
下面通过一个简单的示例来对比这三种方法:
假设输入到 ReLU 单元的前向激活值为 [2, 4, 1, -1, -2, 3, -2, 1, 3],经过 ReLU 后变为 [2, 4, 1, 0, 0, 3, 0, 1, 3]。
-
传统反向传播
:如果后续层的梯度为 [-1, 2, -3, 2, -1, 2, 1, 2, -4],则经过传统反向传播后,当前层的梯度为 [-1, 2, -3, 0, 0, 2, 0, 2, -4]。
-
反卷积网络
:同样的后续层梯度,经过“反卷积网络”处理后,当前层梯度为 [0, 2, 0, 2, 0, 2, 0, 2, 0]。
-
引导反向传播
:经过引导反向传播后,当前层梯度为 [0, 2, 0, 0, 0, 2, 0, 2, 0]。
这种对比可以更清晰地看到三种方法在处理梯度传播时的差异,也解释了为什么引导反向传播通常能给出更好的可视化效果。
9. 预训练模型的优势与应用拓展
预训练模型在图像领域具有显著的优势。由于图像数据特征的可复用性,利用像 ImageNet 这样的大型公共数据集训练的模型,可以提取出适用于各种不同任务的特征。这种迁移学习的方法避免了从头训练卷积神经网络所需的大量时间和数据。
在实际应用中,预训练模型的应用场景不断拓展。除了前面提到的图像聚类和检索,还可以用于图像分类、目标检测等任务。例如,在图像分类任务中,将提取的特征输入到分类器中,就能快速对新的图像进行分类。在目标检测任务中,预训练模型提取的特征可以帮助定位图像中的目标物体。
以下是预训练模型在不同任务中的应用步骤列表:
-
图像聚类
:
1. 选择合适的预训练模型。
2. 提取图像特征。
3. 使用聚类算法(如 K - Means)对特征进行聚类。
-
图像检索
:
1. 提取图像特征。
2. 计算查询图像与数据库中图像特征的相似度。
3. 根据相似度排序,返回检索结果。
-
图像分类
:
1. 提取图像特征。
2. 训练分类器(如支持向量机)。
3. 使用分类器对新图像进行分类。
-
目标检测
:
1. 提取图像特征。
2. 使用目标检测算法(如 Faster R - CNN)进行目标定位和分类。
10. 可视化与无监督学习的结合
可视化和无监督学习在卷积神经网络中有着紧密的联系。在无监督设置中,将卷积网络(编码器)与反卷积网络(解码器)连接,通过联合学习编码器和解码器的权重来最小化重建误差。
可视化在这个过程中起到了重要的作用。通过可视化编码器学习到的特征,可以了解网络是如何对输入图像进行编码的。同时,可视化解码器重建的图像,可以评估重建的质量,进而调整编码器和解码器的参数。
mermaid 流程图展示无监督学习中可视化与训练的流程:
graph LR
A[输入图像] --> B[编码器]
B --> C[提取特征]
C --> D[解码器]
D --> E[重建图像]
E --> F[计算重建误差]
F --> G{误差是否满足要求}
G -- 否 --> H[调整编码器和解码器权重]
H --> B
G -- 是 --> I[可视化特征和重建图像]
在这个流程中,不断地调整权重直到重建误差满足要求,然后进行特征和重建图像的可视化,帮助我们理解无监督学习的效果。
11. 总结与展望
卷积神经网络在深度、预训练模型、可视化和无监督学习等方面展现出了强大的能力和独特的优势。深度的增加有助于提高模型的性能,预训练模型通过迁移学习解决了训练数据不足的问题,可视化帮助我们理解模型学习到的特征,无监督学习则为处理无标签数据提供了方法。
未来,随着技术的不断发展,卷积神经网络可能会在更多领域得到应用。例如,在医学图像分析中,利用预训练模型和可视化技术可以更好地识别疾病特征;在自动驾驶领域,无监督学习和可视化有助于车辆对复杂环境的感知和理解。同时,对于卷积神经网络的研究也会不断深入,可能会出现更高效的可视化方法和更强大的无监督学习算法。
超级会员免费看
11万+

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



