如何从信号角度理解卷积神经网络?
深度神经网络很大程度上还是一种黑箱中技术,我们还不完全清楚其如此有效的原因。南加利福尼亚大学的研究者 C.-C. Jay Kuo 提出了一种用于理解卷积神经网络的数学模型。机器之心技术分析师对该研究进行了解读,本文为解读的中文版。
论文地址:https://arxiv.org/abs/1609.04112
随着复杂又有效的神经网络架构的涌现,卷积神经网络的表现已经超越了 SIFT 和SURF 等传统的数字图像处理方法。在计算机视觉领域,学术界的研究重点已经转向了 CNN,并开始相信 CNN 就是这一领域的未来。但是,在 CNN 的实践成功背后,我们对其的理解还很少。因此,当今有很多热门课题都是研究其中的原理。基本而言,存在三种主流角度:优化角度、近似角度和信号角度。前两者主要关注纯数学的表示方式,以分析神经网络的统计学性质和收敛性。而信号角度的研究则是试图解决以下问题:
为什么非线性激活函数在所有中间层的过滤器输出处都很关键?两层级联系统相对于单层系统有什么优势?球面修正相关性(RECOS)
众所周知,给定包含有限数量神经元的单个隐藏层,前馈神经网络(FNN)可以被视为一种能够近似任意连续函数的通用近似器。FNN 的特别之处是神经元中的非线性激活函数。神经网络有时候很宽,有时候很深,但如果没有非线性激活,它们的复杂架构就会像简单的单层线性模型一样工作,即将输入映射到另一个输出空间。具体来说,非线性激活函数能为我们提供一个从输入表征学习到新集合,这更适合解决真实世界问题。
CNN 只是一类 FNN 或 MLP(多层感知器)。为了分析 CNN 中的分线性,这篇论文提出了一种用于理解 CNN 的行为的数学模型。CNN 可被视为一种由基本运算单元构成的网络,这些单元执行的是球面修正相关性(RECOS)。因此,它被称为 RECOS 模型。在 CNN 的训练期间,首先会对其核的权重进行初始化,然后这些权重会通过梯度下降方法和反向传播算法来调整。在 RECOS 模型中,权重被称为锚向量,代表它们在聚类输入数据上的作用。这就是说我们想要计算输入向量和锚向量之间的相关性,然后衡量其相似性。
为什么用非线性激活?
CNN 不会和 MLP 一样在一个步骤中考虑所有像素的交互,而是会将输入图像分解成更小的片,这被称为特定层的节点的感受野。CNN 会逐渐增大感受野以覆盖图像的更大范围。神经元会计算输入向量和锚向量之间的相关性以衡量它们之间的相似性。一个 RECOS 单元中存在 K 个神经元。我们可将我们的系统看作是 Y=AX,其中 X 是输入向量,Y 是输出向量,A 是锚向量(核过滤器的权重矩阵)。根据这个等式,我们可以看到 CNN 是将输入映射到另一个空间。在 RECOS 模型中,我们可以立即得出结论:学习得到的核权重往往会将相似的目标映射到同一个区域。举个例子,如果 x_i 和 x_j 在欧几里德距离上很相近,那么对应的输出 y_i 和 y_j 必然在新空间中也很相近。对于被用于获取猫的特征的过滤器,任何猫向量 X_cat 都会被这种类型的所学到的锚向量 A 映射到 Y_cat,而其它向量 X_dog 或 X_car 则永远不会出现在这片区域中。这就是 CNN 能够有效识别不同事物的原因。
但我们为何必须使用非线性激活呢?考虑上图:左为原图,右为反色后的图。根据人类知识,这两张图可能是同类,也可以是不同类。我们可以得出结论说它们都是猫,也可以说它们是反色相关的。因为这只黑猫是通过将白猫的像素减去 255 的值得到的。CNN 会怎么解读这两只猫?
我们可以从上图一窥对修正(rectification)的需求。X 是输入向量,a_1、a_2 和 a_3是所学习到的不同锚向量。在 RECOS 模型中,线性运算 Y=AX 是输入向量与锚向量之间的相似度的度量。因此,对于锚向量 a_1 和 a_3,我们可以看到 x 与这两个锚向量之间的相似度的幅度是一样的,但符号相反。此时在 CNN 看来这两只猫是不同的。但以 LeNet-5 为例,该网络有两个卷积层,如果原始输入 x 经过这两层,那么最后的结果会很混乱:没有修正的系统不能区分以下两种情况:“第一层正响应后第二层负过滤器权重”与“第一层负响应后第二层正过滤器权重”。但是,通过使用非线性激活,CNN 可以轻松排除负值的影响,保证系统的鲁棒性。
此外,作者还执行了一个有趣的实验,结果引述如下:
我们使用 MNIST 训练数据集训练了 LeNet-5,并在 MNIST 测试数据集上得到了 98.94% 的正确识别率。然后我们将同一网络应用到了经过灰度反色处理的测试图像上,如图 5 所示。准确度下降到了 37.36%。接下来,我们将 C1 中所有过滤器权重都改成了它们的负值,同时保持网络其它部分不变。这个经过稍微修改的 LeNet-5 在经过灰度反转的测试数据集上得到了 98.94% 的正确识别率,而在原始测试数据集上的正确识别率为 37.36%。
可以看到,在修改了第一个卷积层中所有的过滤器权重之后得到了对称的结果。这个结果表明添加激活会导致负相关性消失,如果我们将锚图像加倍来学习灰度反转的特征,我们能在这两个测试集上都得到较好的识别表现。
级联层的优势?
一般而言,随着CNN 加深,卷积核会尝试基于所有之前核的输出来构建自己的抽象特征。所以深度层能得到全局形义以及高级特征。这其中发生的情况是,作为 RECOS 模型,CNN 尝试利用一种序列修正变换来逐层地聚类相似的输入数据,这等价于相似度测量。输出层预测所有可能决策(比如目标类别)的可能性。训练样本能为图像与其决策标签提供一个关系。而且它们能引导 CNN 构建更合适的锚向量(由此得到更好的聚类),并将聚类后的数据与决策标签连接起来。
上图展现了深度网络的有效性,该实验的细节引述如下:
我们使用一个示例来阐述这一点。首先,我们对 MNIST 训练和测试数据集进行修改,做法是随机地向 MNIST 数据集中的原始手写数字添加十种不同的背景场景。对于这三列图像,最左列是输入数字图像、中间一列是 6 张来自卷积层和 ReLU 层的谱输出图像、右边两列是 16 张谱输出图像。由于背景的多样性,寻找第一层的优良的锚矩阵是很困难的。但是,这些图像中的背景场景在空间域中并不一致,而前景数字则是一致的。
使用不同的扭曲背景,CNN 能成功获取表征的模式。注意,在第一层中有大量冗余且不需要的信息,而通过又一次应用特征提取,CNN 能学习到全局模式而非局部细节。也就是说,对于输入向量 x,RECOS 变换会生成一组 K 个非负相关值作为维度为 K 的输出向量。这种表征能逐层实现反复的聚类。最后,标签会引导 CNN 在不同的设定中寻找到同一模式。
根据上面的分析,我们可以看到卷积层是一种用于自动特征选择的有用模型。无需任何人力工作,它就能度量相似度并将输入数据聚类到不同的区域。但全连接层的作用是什么?
将 CNN 分解成两个子网络是很常见的:特征提取(FE)子网络和决策(DM)子网络。FE 子网络由多个卷积层构成,而 DM 子网络则由几个全连接层构成。大致来说,FE 子网络是通过一系列 RECOS 变换来进行聚类,目标是新的表征。DM 子网络则是将数据表征连接到决策标签,作用类似于 MLP 中的分类。
到目前为止,我们都可以说 CNN 在计算机视觉领域都大幅优于经典的机器学习算法。因为 CNN 既能自动提取特征,又能基于这些特征来学习对输入分类,而随机森林(RF)和支持向量机(SVM)等经典算法非常依赖特征工程,但这些特征工程往往又难以执行。
总结
总而言之,RECOS 模型为我们提供了一个对卷积神经网络的信号角度的分析。从这个角度,我们可以看到激活和深度架构的有效性。但是,以下领域还需要更多研究努力:网络架构设计、弱监督学习、对错误标签的稳健性、数据集偏差和过拟合问题等。
一文读懂深度学习中的卷积运算与图像处理
华为人工智能认证讲师 袁梦在人工智能深度学习技术中,有一个很重要的概念就是卷积神经网络 CNN(Convolutional Neural Networks)。卷积神经网络被广泛地运用到计算机视觉中,用于提取图像数据的特征,其中发挥关键作用的步骤就是卷积层中的卷积运算。卷积到底是什么?深度学习中的卷积运算与传统的信号与系统中的卷积算子有什么不同?为什么卷积运算可以提取图像的特征呢?下面一文三分钟让你读懂卷积运算与图像处理。
了解卷积运算
卷积一词最开始出现在信号与系统中,是指两个原函数产生一个新的函数的一种算子。卷积运算在运算过程可以概括为翻转、平移再加权求和三个步骤,其中的加权求和就是乘加操作。另外,卷积运算还有一个重要的特性:空间域卷积=频域乘积,这一点可以解释为什么卷积运算可以自动地提取图像的特征。
在卷积神经网络中,对数字图像做卷积操作其实就是利用卷积核(黄底部分)在图像(绿底部分)上滑动,将图像上的像素灰度值与对应卷积核上的数值相乘,然后将所有相乘后的值相加作为此时的输出值(红底部分),并最终滑动遍历完整副图像的过程。
动图来源于:stanford.edu, Feature extraction using convolution
大家仔细观察上述动图,图像中的卷积操作相比于信号与系统中的卷积是不是少了点什么?我们可以看到,图像中卷积的计算过程相对于信号与系统中的卷积算子缺少了翻转这一步,只有平移和乘加两个步骤。那么图像的卷积操作是否需要进行翻转呢?
事实上,深度学习中卷积核其实无需进行翻转的,因为卷积核中的所有权重都是随机初始化,开始是不确定的。网络每次更新迭代都是为了去寻找一个最合适的卷积核权重值,所以是否翻转也就无关紧要了;另一个原因是在图像处理中的卷积核一般是对称的,翻转也就显得不那么必要。
以上是传统信号与系统中的卷积算子与卷积神经网络中的卷积运算的异同点。而卷积神经网络被广泛运用到计算机视觉的最大一个原因就是卷积层可以自动地提取图像特征。
提取图像特征
图像中的特征通常指代图像中物体的轮廓与纹理信息,而通常物体的细节(可以简单地理解为图像中像素点灰度值变换缓慢的地方)带来的信息量较少。我们通常所说的图像特征提取的过程是在保留图像轮廓和纹理的同时,去掉冗余信息的过程。
物体轮廓
物体纹理
图片来源:CMU, Computational Photography, Fall 2019
那么如何区分图像的特征与图像的冗余信息量呢?如下面这幅人物图像,如果我们不对原始图像做处理,很难将图像的特征与冗余信息量区分开来。我们可以换一个角度,不从时空域来区分,而是抓住图像细节和图像轮廓纹理的频率不一样这一特征,把一副图像放在频域中以区分图像的细节与图像的轮廓纹理。我们将这幅人物图像(左)转换到频域中得到频域中的该图像(右),离中心点越近的分量频率越低,离中心点越远的分量频率越高。
原图
频域图像
图片来源:CMU, Computational Photography, Fall 2019
现在我们将用一个模板来分离高低频分量。如左图所示的模板1中,其数值取值范围为0到1。模板中的点越黑其数值月接近于0,越白越接近于1。将模板1与频域图像相乘后,就可以只保留高频部分去除离中心点较近的低频分量,再将图像转换回到空间域中,可以看到图像的高频分量(右)是轮廓和纹理特征。
从左到右(模板1、高频分量)
图片来源:CMU, Computational Photography, Fall 2019
同样的操作方式,将模板2与频域图像相乘,频域图中的低频分量可以被选取出来,再将低频分量转换到空间域中,可以看到低频分量代表着细节特征。这时我们就可以成功地将图像的轮廓纹理与细节信息从频率的角度区分开来了。
从左到右(模板2、低频分量)
图片来源:CMU, Computational Photography, Fall 2019
以上处理过程,实际就是在频域中将模板与频域图像相乘,以区分图像轮廓纹理与细节信息的过程。而频域相乘就等于空间域卷积,这是我们刚才提及到的卷积的重要特性。那么上述在频域中的操作等同于空间域中的图像与空间域中的模板做卷积,这样我们从频域的角度,就可以解释卷积操作能够提取图像特征的原因。
想学习更多关于深度学习的知识吗?想在人工智能领域有所作为吗?华为推出人工智能认证,目前已发布HCIA-AI、HCIP-AI HiAI Developer 、HCIP-AI EI Developer。学习华为人工智能认证,你将理解深度学习、计算机视觉、语音识别和自然语音处理等理论;具备基于华为移动终端AI和企业AI平台的应用开发能力;具备基于业界主流AI开源框架的应用开发能力。
了解更多关于华为人工智能认证的知识,请点击扩展链接 。
关于卷积运算与图像处理或华为人工智能认证,你有什么想问想说的?欢迎在下方评论区留言,华为专家将亲自为你解答。
相关问答
【数字信号处理循环卷积的手工求解步骤最好例题说明不要简简...
[最佳回答]两个信号X1X2循环卷积,长度分别为N1N2,第一个数不变,第二个数周期延拓,注意一点,两个数循环卷积,长度N必须一样,卷积以后的长度也是N,所以把X1的...
本人是数字信号的初学者,求高手帮忙总结求两个单位阶跃函数...
[最佳回答]与阶跃函数的卷积就是该函数的变上限积分,阶跃函数是个理想积分器.f(t)*u(t)=∫f(x)dx,下限是负无穷,上限是t,结果仍是以t为自变量的.所以,两个单位...
数字信号处理中循环卷积的物理意义怎么解释?
简单的说,线性卷积表示一个信号通过一个系统的输出,这个信号可以是无限长的,也可以是有限长的,可以的离散的也可以是连续的。周期卷积和循环卷积都是针对离...
序列线性卷积的主要运算步骤有?
为将两个离散信号序列进行卷积来得到一个新的序列。如下:1.将信号序列翻转,得到第一个信号的倒序序列2.将第二个信号序列按照卷积的起始位置从右向左依次...
信号与系统卷积原理?
卷积原理是信号与系统中最基本的概念之一。它描述了两个信号在时间域上的乘积转换到频域上的卷积,这是在数字信号处理中很常见的运算。卷积原理可以用来计算...
什么叫卷积运算?
卷积运算是一种在信号和图像处理、机器学习和深度学习等领域中常用的数学运算方法。它用于对输入数据与卷积核(也称为滤波器或特征检测器)进行操作,从而产生输...
两个连续信号的卷积是什么?
在泛函分析中,卷积(旋积或摺积,英语:Convolution)是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与经过翻转和平移的g的重叠部分的累积。如...
两阶跃信号进行卷积等于什么?
与阶跃函数的卷积就是该函数的变上限积分,阶跃函数是个理想积分器。f(t)*u(t)=∫f(x)dx,下限是负无穷,上限是t,结果仍是以t为自变量的。所以,两个单位阶跃...
卷积特性?
Z变换具有许多重要的特性:如线性、时移性、微分性、序列卷积特性和复卷积定理等等。这些性质在解决信号处理问题时都具有重要的作用。其中最具有典型意义的是...
两个相同门函数卷积怎么算?
两个相同门函数的卷积可以通过将两个门函数进行叠加来计算。假设我们有两个相同的门函数,可以表示为f(t)和g(t),它们的卷积可以表示为:(f*g)(t)=∫[a,...