Arac作者Junpei Zhong、Xiang Chen、Panda参与

如何从信号角度理解卷积神经网络?

深度神经网络很大程度上还是一种黑箱中技术,我们还不完全清楚其如此有效的原因。南加利福尼亚大学的研究者 C.-C. Jay Kuo 提出了一种用于理解卷积神经网络的数学模型。机器之心技术分析师对该研究进行了解读,本文为解读的中文版。

论文地址:https://arxiv.org/abs/1609.04112

随着复杂又有效的神经网络架构的涌现,卷积神经网络的表现已经超越了 SIFT 和SURF 等传统的数字图像处理方法。在计算机视觉领域,学术界的研究重点已经转向了 CNN,并开始相信 CNN 就是这一领域的未来。但是,在 CNN 的实践成功背后,我们对其的理解还很少。因此,当今有很多热门课题都是研究其中的原理。基本而言,存在三种主流角度:优化角度、近似角度和信号角度。前两者主要关注纯数学的表示方式,以分析神经网络的统计学性质和收敛性。而信号角度的研究则是试图解决以下问题:

  1. 为什么非线性激活函数在所有中间层的过滤器输出处都很关键?
  2. 两层级联系统相对于单层系统有什么优势?

球面修正相关性(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计算机视觉领域卷积神经网络
1
相关数据
激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

多层感知机技术

感知机(Perceptron)一般只有一个输入层与一个输出层,导致了学习能力有限而只能解决线性可分问题。多层感知机(Multilayer Perceptron)是一类前馈(人工)神经网络及感知机的延伸,它至少由三层功能神经元(functional neuron)组成(输入层,隐层,输出层),每层神经元与下一层神经元全互连,神经元之间不存在同层连接或跨层连接,其中隐层或隐含层(hidden layer)介于输入层与输出层之间的,主要通过非线性的函数复合对信号进行逐步加工,特征提取以及表示学习。多层感知机的强大学习能力在于,虽然训练数据没有指明每层的功能,但网络的层数、每层的神经元的个数、神经元的激活函数均为可调且由模型选择预先决定,学习算法只需通过模型训练决定网络参数(连接权重与阈值),即可最好地实现对于目标函数的近似,故也被称为函数的泛逼近器(universal function approximator)。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

表征学习技术

在机器学习领域,表征学习(或特征学习)是一种将原始数据转换成为能够被机器学习有效开发的一种技术的集合。在特征学习算法出现之前,机器学习研究人员需要利用手动特征工程(manual feature learning)等技术从原始数据的领域知识(domain knowledge)建立特征,然后再部署相关的机器学习算法。虽然手动特征工程对于应用机器学习很有效,但它同时也是很困难、很昂贵、很耗时、并依赖于强大专业知识。特征学习弥补了这一点,它使得机器不仅能学习到数据的特征,并能利用这些特征来完成一个具体的任务。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

LeNet技术

LeNet 诞生于 1994 年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。自从 1988 年开始,在许多次成功的迭代后,这项由 Yann LeCun 完成的开拓性成果被命名为 LeNet5。LeNet5 的架构基于这样的观点:(尤其是)图像的特征分布在整张图像上,以及带有可学习参数的卷积是一种用少量参数在多个位置上提取相似特征的有效方式。在那时候,没有 GPU 帮助训练,甚至 CPU 的速度也很慢。因此,能够保存参数以及计算过程是一个关键进展。这和将每个像素用作一个大型多层神经网络的单独输入相反。LeNet5 阐述了那些像素不应该被使用在第一层,因为图像具有很强的空间相关性,而使用图像中独立的像素作为不同的输入特征则利用不到这些相关性。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

随机森林技术

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method" 以建造决策树的集合。

反向传播算法技术

反向传播(英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法计算对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。 在神经网络上执行梯度下降法的主要算法。该算法会先按前向传播方式计算(并缓存)每个节点的输出值,然后再按反向传播遍历图的方式计算损失函数值相对于每个参数的偏导数。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

图像处理技术

图像处理是指对图像进行分析、加工和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

前馈神经网络技术

前馈神经网络(FNN)是人工智能领域中最早发明的简单人工神经网络类型。在它内部,参数从输入层经过隐含层向输出层单向传播。与递归神经网络不同,在它内部不会构成有向环。FNN由一个输入层、一个(浅层网络)或多个(深层网络,因此叫作深度学习)隐藏层,和一个输出层构成。每个层(除输出层以外)与下一层连接。这种连接是 FNN 架构的关键,具有两个主要特征:加权平均值和激活函数。

特征选择技术

在机器学习和统计学中,特征选择(英语:feature selection)也被称为变量选择、属性选择或变量子集选择。 它是指:为了构建模型而选择相关特征(即属性、指标)子集的过程。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
暂无评论
暂无评论~