如何从信号分析角度理解卷积神经网络的复杂机制?

简介: 随着复杂和高效的神经网络架构的出现,卷积神经网络(CNN)的性能已经优于传统的数字图像处理方法,如 SIFT 和 SURF。在计算机视觉领域,学者们开始将研究重点转移到 CNN,并相信 CNN 是这一领域的未来趋势。但是,人们对成效卓著的 CNN 背后的机理却缺乏了解。


随着复杂和高效的神经网络架构的出现,卷积神经网络(CNN)的性能已经优于传统的数字图像处理方法,如 SIFT 和 SURF。在计算机视觉领域,学者们开始将研究重点转移到 CNN,并相信 CNN 是这一领域的未来趋势。但是,人们对成效卓著的 CNN 背后的机理却缺乏了解。研究 CNN 的运行机理是当今一个热门话题。基本上,有三种主流观点:1>优化、2>近似、3>信号。前两种观点主要集中在纯数学分析,它们试图分析神经网络的统计属性和收敛性,而第三种观点信号尝试解决以下问题:1)为什么非线性激活函数(activation function)对所有中间层的过滤式输出(filter output)是必不可少的?2)双层级联系统(two-layer cascade system)比单层系统的优势在哪里?


球面修正相关性(REctified COrrelations on a Sphere/RECOS)


众所周知,前馈神经网络(FNN)可以被看作是一个万能的近似器,在给定包含有限数量神经元的单个隐藏层的情况下,它能够近似任何连续的函数。FNN 的特殊之处在于神经元的非线性激活函数。有的神经网络庞大且深度,但如果离开非线性激活函数,它们的复杂架构的效果与一个简单的单层线性模型没什么不同,都是将输入映射到另一个输出空间。具体来说,非线性激活函数学习到的输入的表征集合更适合解决实际问题。


CNN 只是 FNN 或 MLP(多层感知器/perceptron)的另一种类型。为了分析 CNN 的非线性,作者提出了一个数学模型来理解 CNN 的行为。在模型中,CNN 被视为由基本操作单元组成的一个网络,它们计算「球面修正相关(RECOS)」。因此,它被称为 RECOS 模型。在 CNN 训练期间,首先初始化核权重,然后通过梯度下降法(gradient descent)和反向传播(back propagation)算法进行调整。在 RECOS 模型中,权重被称为锚向量(anchor vector),以表示它们在聚类输入数据中的作用。也就是说,我们试图计算输入向量和锚向量之间的相关性,然后测量其相似度。


为什么用非线性激活函数?


微信图片_20211128163953.jpg


与 MLP 仅用 1 步考虑所有像素的交互作用不同,CNN 将输入图像分解成较小的图像块(patch),在某些层中又被称为节点的感受域(receptive field)。算法逐渐扩大感受域的范围以覆盖更大的图像。神经元计算输入向量与其锚向量之间的相关性,以测量它们的相似度。每个 RECOS 单元中有 K 个神经元。我们将模型表示为 Y = AX,其中 X 是输入向量,Y 是输出向量,A 是我们的锚向量(核过滤器(kernel filter)的权重矩阵)。这个方程表示 CNN 将输入映射到另一个空间。通过研究 RECOS 模型,我们可以立即得出结论:学习到的核权重倾向于将相似的对象映射到同一个区域。例如,如果 x_i 与 x_j 的欧式距离相近,则相应的输出 y_i 和 y_j 在新空间中也必须相近。对于用于捕获猫的特征的过滤器,学习到的锚向量 A 将所有代表猫特征的向量 X_cat 映射为 Y_cat,而其它代表狗特征的向量 X_dog 或代表车特征的向量 X_car 将永远不会出现在这个区域。这就是 CNN 能够有效识别不同对象的原因。


微信图片_20211128164011.jpg


但为什么我们必须使用非线性激活函数?考虑上面两幅图像:(左)原始的猫图像,(右)左图像的负片。从人的角度判断,这两个图像可以是一样的,但也可以是不同的。我们可以得出结论,两幅图中的猫是相同的猫,并且它们是负相关的。因为黑猫只是通过从白猫图像的像素值减去 255 来获得。那么 CNN 如何理解这两只猫呢?


微信图片_20211128164041.jpg


从上图中,我们可以看到使用非线性激活函数的必要性。X 是输入向量,a_1、a_2 和 a_3 是学习到的不同的锚向量。在 RECOS 模型中,线性运算 Y = AX 用于测量输入向量和锚向量之间相似度。因此,对于锚向量 a_1 和 a_3,可以看到 x 与两个锚向量之间的相似度在幅度上是相同的,但是符号相反。此时,对于 CNN 来说猫是不同的。但是例如在有两个卷积层的 LeNet5 中,当原始输入 x 通过两层之后,最终的输出结果将会被混淆:以下两种情况不能被没有非线性激活函数的系统正确区分:1)第一层的正响应遇到第二层的负过滤权重;和 2)第一层的负响应遇到第二层的正过滤权重。然而,通过使用非线性激活函数,CNN 可以很容易地排除负值的影响,从而得到鲁棒的系统。


此外,作者还进行了一个有趣的实验,结果如下:


我们用 MNIST 训练集训练了 LeNet-5 网络,在 MNIST 测试集上得到了 98.94% 的正确识别率。然后,我们将这个 LeNet-5 网络应用于如图 5 所示的灰度反转的测试图像。准确率下降为 37.36%。接下来,我们将 conv1 中的所有过滤权重改为负值,同时保持网络的其余部分不变。经过微修改的 LeNet-5 网络对灰度反转测试集的正确识别率为 98.94%,而原始测试集的准确率下降为 37.36%。


可以看到,改变第一个卷积层中的所有过滤权重将得到对称的结果。该结果表明,引入激活函数将消除负相关关系,若我们在学习灰度反转图像的特征时不仅保留学习原图像的锚向量同时加入灰度翻转图像的锚向量,则对两个测试集均能够达到高识别效果。


级联层的优势是什么?


通常来讲,随着 CNN 层数的深入,核函数会试图基于所有之前核函数的输出来构建自己的抽象特征。所以相比浅层,深层可以捕捉全局语义和高级特征。在 RECOS 模型中,CNN 利用与测量相似度类似的一系列非线性变换来逐层聚类相似的输入数据。输出层预测所有可能决策(如,对象的类)的似然值。训练样本含有图像与其决策标签之间的关系,并能够帮助 CNN 生成更适合的锚向量(从而形成更好的聚类),最终将聚类数据与决策标签联系起来。


微信图片_20211128164107.jpg


上图显示了深度网络的有效性,实验细节如下:


我们用一个例子来说明这一点。首先,我们通过在 MNIST 数据集的原始手写数字上随机添加 10 个不同的背景来修改 MNIST 的训练集和测试集。对上面的三行图像,每行最左边的列显示 3 个数字图像输入,中间列是分别来自卷积层和 ReLU 层的 6 个谱图像(spectral image)输出,最右边两列是分别来自卷积层和 ReLU 层的 16 个谱图像输出。由于背景的多样性,难以为第一层找到的良好的锚向量矩阵。然而,这些图像的背景在空间域中是不一致的,而它们的前景数字是一致的。


对于不同的变形背景,CNN 成功地捕捉到了代表性模式。值得注意的是,第一层含有很多冗余和无关的信息,通过在级联层运用特征提取,CNN 学习到了全局样式而不是局部细节。也就是说,对于输入向量 x,RECOS 变换产生一组 K 个非负相关值作为 K 维度的输出向量。这种方式实现了逐层重复聚类。最后,训练图像的标签帮助 CNN 在不同背景的图像中找到相同的模式。


从上面的分析可以看出,卷积层模型对于自动选择特征是很有用的。它能在没有人工干预的情况下测量输入数据的相似性并将其聚类到不同区域。


那么完全连接层的作用是什么?


通常 CNN 被分解为两个子网络:特征提取(FE)子网络和决策(DM)子网络。FE 子网络由多个卷积层组成,而 DM 子网络由几个完全连接层组成。简而言之,FE 子网络通过一系列 RECOS 变换以形成用于聚类的新表征。DM 子网络将数据表征与决策标签联系起来,它的作用与 MLP 的分类作用类似。


到这里我们可以得出结论,CNN 比计算机视觉中经典的机器学习算法要好得多。因为 CNN 可以自动提取特征并且基于这些特征学习分类输入数据,而随机森林(RF)和支持向量机(SVM)则非常依赖于特征工程,而这种特征工程往往很难操作。


结论


总而言之,RECOS 模型用信号分析的角度为我们剖析了卷积神经网络。从这个角度来看,我们可以看到激活函数和深度架构的有效性。然而,以下几个方面仍需要重点研究:网络架构设计、弱监督学习、对错误标签的鲁棒性、数据集偏差和过拟合问题等。


相关文章
|
2天前
|
机器学习/深度学习 计算机视觉 网络架构
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
纵观近年的顶会论文和研究热点,我们不得不承认一个现实:CNN相关的研究论文正在减少,曾经的"主角"似乎正逐渐淡出研究者的视野。
21 11
为什么卷积现在不火了:CNN研究热度降温的深层原因分析
|
9天前
|
机器学习/深度学习 计算机视觉 Python
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力本文提出了一种简单且高效的卷积神经网络(ConvNets)注意力模块——SimAM。与现有模块不同,SimAM通过优化能量函数推断特征图的3D注意力权重,无需添加额外参数。SimAM基于空间抑制理论设计,通过简单的解决方案实现高效计算,提升卷积神经网络的表征能力。代码已在Pytorch-SimAM开源。
【YOLOv11改进 - 注意力机制】SimAM:轻量级注意力机制,解锁卷积神经网络新潜力
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络:从理论到实践
【10月更文挑战第35天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力成为科技界的宠儿。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,在图像识别和视频分析等领域展现出了惊人的潜力。本文将深入浅出地介绍CNN的工作原理,并结合实际代码示例,带领读者从零开始构建一个简单的CNN模型,探索其在图像分类任务中的应用。通过本文,读者不仅能够理解CNN背后的数学原理,还能学会如何利用现代深度学习框架实现自己的CNN模型。
|
1天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
2天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
3天前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
12 1
|
12天前
|
机器学习/深度学习 监控 自动驾驶
卷积神经网络有什么应用场景
【10月更文挑战第23天】卷积神经网络有什么应用场景
15 2
|
12天前
|
机器学习/深度学习 自然语言处理 算法
什么是卷积神经网络
【10月更文挑战第23天】什么是卷积神经网络
20 1
|
2天前
|
机器学习/深度学习 人工智能 自动驾驶
深入解析深度学习中的卷积神经网络(CNN)
深入解析深度学习中的卷积神经网络(CNN)
9 0
|
5天前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第32天】本文将介绍深度学习中的一个重要分支——卷积神经网络(CNN),以及其在图像识别领域的应用。我们将通过一个简单的代码示例,展示如何使用Python和TensorFlow库构建一个基本的CNN模型,并对其进行训练和测试。

热门文章

最新文章

下一篇
无影云桌面