随着复杂和高效的神经网络架构的出现,卷积神经网络(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),以表示它们在聚类输入数据中的作用。也就是说,我们试图计算输入向量和锚向量之间的相关性,然后测量其相似度。
为什么用非线性激活函数?
与 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 能够有效识别不同对象的原因。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉