纯干货:深度学习实现之空间变换网络-part2

简介: 本文详细介绍了空间变换网络及其工作原理,最后将整个机制归结为两个熟悉的概念:仿射变换和双线性插值。

1eb0f09986c22b9f0012dee7c79efe791fb622bb

    

第一部分中,我们主要介绍了两个非常重要的概念:仿射变换双线性插值,并了解到这两个概念对于理解空间变换网络( Spatial Transformer Networks )非常重要。

在这篇文章中,我们将详细介绍一篇空间变压器网络这一论文——Google Deepmind的研究人员Max JaderbergKaren SimonyanAndrew ZissermanKoray Kavukcuoglu最早提出了这一概念。

读完本文,希望你能够对这个模型有一个清晰的认识和理解。我们将在后续第三部分中使用Tensorflow实现该网络。

目的

在进行分类任务时,我们通常希望系统对变化的输入具有较强的鲁棒性。 也就是说,如果输入需要经过某种转换,我们的分类模型理论上应该在转换之前输出相同的类标签。一般情况下,图像分类模型可能会面临以下挑战

1.规模变化:现实世界和图像中的尺寸变化。

2.视角变化:随着观察者的角度变化,物体的取向不同。

3.变形:非刚体可以变形并扭曲成不寻常的形状。

d2a4bdb5e0a1359901a21ac105f4c7cb1a2af2f7

对于人类来说,将上图中的对象进行分类,这很简单。但是,计算机算法仅适用于原始3维亮度值数组,因此输入图像的微小变化也可能会改变相应数组中的像素值。因此,理想的图像分类模型理论上应该能够从纹理和形状中分离出物体的形态和变形如下面的猫咪图像。

5dadc514a1676dc4bfbab2b60701145bbe6d741d0e5921fbc086c68266c7896c3e5168ee214f1c23

78df14f43081ebf8912968c6e974acba67084aecf804a812bb0f49e6343c0d0f689ac180a55d06c1

左图:较难分类的猫咪图像。 右图:生成简化分类管道的转换图像。

如果我们的模型可以使用某种组合来从左到右执行,从而简化后续的分类任务,那么这是不是非常理想?

池化层

事实证明,我们在神经网络架构中使用池化层,这使模型具有一定程度的空间恒定性。池化操作也是一种降采样机制,它逐层降低了深度维度上特征映射的空间大小,同时也减少了参数数量和计算成本。

726ca494213a9b749282d9b2d735693c6c008c5f

池化层在空间上对数组进行下采样。上图中,左图为大小为[224*224*64]的输入数组与维度为2、步长为2的滤波器做最大池化操作,输出大小为[112*112*64]的数组。右图为2*2的最大池化数组。

它是如何具有恒定性的?我们可以这样理解,池化的思想是采用复杂的输入,将其分解为一个个单元,并将这些复杂单元中的信息池化,产生一组更简单的单元集,来描述输出。举例来说,假设我们有3张数字7的图片,每张图片的方向不同。我们通过聚合像素值可以捕获到大致相同的信息,因此不管数字在网格中的哪个位置,每张图像网格上的池化都会检测到数字7

池化之所以不受欢迎,有以下限制因素。首先,池化具有破坏性。在使用池化时,75%的特征激活会面临丢失,这就意味着我们会丢失确切的位置信息。由于我们之前提到过,池化赋予了网络一定的空间鲁棒性,而位置信息在视觉识别中尤为重要。想想上面提到的猫咪分类器,相对于鼻子的位置,知道胡须的位置可能更重要。当我们使用最大池化时,这些信息就已经丢失了。

池化的另一个限制因素是,它是本地和预定义的。由于感受野较小,池化操作只会对网络的更深层产生影响,这就意味着中间特征映射可能会有更大的输入失真。请记住,由于只增加感受野会过于降低我们的特征映射,因此,我们不能随意的只增加感受野。

另外一个主要的问题就是,对于相对较大的输入失真,卷积网络并不是恒定的。这种限制源于,只有一个用于处理数据空间变化的受限预定义池化机制。这就是空间变换网络发挥作用的地方!

Geoffrey Hinton曾表示:在卷积神经网络中使用池化操作是一个很大的错误,并且网络能够稳定运作本身也是一场灾难。

空间变换网络(STNs

通过为卷积神经网络提供确切的空间变换,空间变换机制解决了上述问题它拥有3个属性。

1.模块化:只需要进行微小的调整,就可以将空间变换网络插入到现有体系结构的任何地方。

2.可区分性:可以使用反向传播算法进行训练,允许对所插入的模型进行端到端的训练。

3.动态的:在每个输入样本的特征映射上执行主动空间变换,而池化层则是对所有输入样本进行操作。

正如你所看到的,空间变换在所有方面都优于池化运算符。那么,什么是空间变换呢?

2083f07a98ed6a2b5d8beeca6020c80a71d65d02

如上图所示,空间变换模块由三个部分组成:一个定位网络( localisation network),一个网格生成器(grid generator )和一个采样器(sampler)。我们不能盲目的对输入图像进行仿射变换,首先需要创建一个采样网格,对其进行转换,然后使用网格对输入图像进行采样,这一点非常重要。下面我们来看一下空间变换的核心部分。

定位网络

定位网络是作用于输入特征映射,输出仿射变换参数θ。其定义如下:

1.输入:形状为(HWC)的特征映射U

2.输出:形状为(6,)的变换矩阵θ

3.架构:全连接网络或卷积网络。

在训练网络时,我们希望定位网络能够输出越来越精确的θ精确意味着什么呢?试想一下数字7逆时针旋转90度。经过2次训练以后,定位网络能够输出一个变换矩阵,来执行45度的顺时针旋转,经过5次训练以后,实际上可以学习完成90度的顺时针旋转。我们的输出图像看起来就像一个标准数字7,这是我们的神经网络在训练数据中看到的,并且可以对其进行轻松的分类。

另一种方式则是,定位网络学习存储如何将每个训练样本转换为其所在层的权重。

参数化的采样网格

网格生成器的作用是输出一个参数化的采样网格,这是一组点集,即输入映射经过采样产生期望的转换输出。

具体来说,网格生成器首先创建与输入图像U(格式为(HW))相同大小的归一化网格,即覆盖整个输入特征映射的一个索引集(xtyt)映射(上标t代表输出特征映射的目标坐标)。由于我们对这个网格做了仿射变换,并且想要使用变换,我们继续在坐标矢量上添加一行进行计算。最后,我们将6个参数θ塑造为一个2*3矩阵,并执行下面的乘法运算,就会得到我们所需要的参数化采样网格。

089efdb9c451959bfc71ef77b89eda08636a9051 

输出的列向量包含一组索引,告诉我们应该在哪里对输入进行采样,就能得到所需的转换输出。但是,如果这些指数是分数呢?这就是即将要介绍双线性插值的原因。

可微分的图像采样

由于双线性插值是可微的,因此非常适用于空间变换网络。通过输入特征映射和参数化采样网格,我们进行双线性采样并获得形状为(H'W'C')的输出特征映射V。这就意味着,我们可以通过指定采样网格的形状,来执行下采样和上采样。我们绝对不仅限于双线性采样,还可以使用其他的采样内核,但重要的一点是:它必须是可微的,以便允许损失梯度一直流回的定位网络。

deff4b0465a3cf60c1727136866a98f6659cf9d7

图为将参数化采样网格应用于图像U(输出为V)的两个例子。(a)恒等变换(即U = V)(2)仿射变换(即旋转)

上述为空间变换的内部工作原理,可将其归结为我们一直在谈论的个关键概念:仿射变换双线性插值。我们让网络学习最佳的仿射变换参数,这将有助于独立完成分类任务。

有趣的空间变换

最后,我们来举个例子,说明下空间变换的应用

失真MINIST数据集

下图是将空间变换作为全连接网络的第一层,对失真MNIST数据集的数字进行分类的结果。

45ab8c4dad956f6d701fb1c9b981f8dfda93d150

注意它是怎样学会理想的鲁棒性图像分类模型?通过放大和消除杂乱的背景,将输入进行标准化进行分类。如果你想查看变换的实时动画,请点击这里

德国交通标志识别GTSRB数据集

f810cb0a24631d7017bd80010ffa1643d1c9730190424eac3d1e2a1cc7a3d6362d8961ebfcf508bd

左图:训练期间空间变换的行为。注意它是如何逐渐消除背景来学习交通标志。右图为不同输入图像的输出。请注意,无论输入如何变化和失真,输出都保持近似恒定。

总结

本文概览了Google Deepmind的空间变换网络论文。我们首先介绍了分类模型所面临的挑战,主要是输入图像失真导致分类失败。一种解决方案是使用池化层,但是有明显的局限性——使用率很低。另一个解决方案就是本文的空间变换网络

其中包含一个可的模块,可以插入到卷积网络中任何一个位置以增加其几何不变性。它赋予网络空间变换特征映射,而无需额外增加数据或监督成本。最后,整个机制归结为两个熟悉的概念:仿射变换和双线性插值。

参考资料

1.The original Deepmind paper[链接]

2.Kudos to the Torch blog post on STNs which really helped me during the learning process[链接]

3.Torch Implementation also helped me grasp the inner workings of STNs[链接]

4.Stanford’s CS231n as always[链接] 

 数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《Deep Learning Paper Implementations: Spatial Transformer Networks - Part II》,译者:Mags,审校:袁虎。

文章为简译,更为详细的内容,请查看原文 

相关文章
|
22小时前
|
机器学习/深度学习 传感器 人工智能
探索人工智能的未来:深度学习与神经网络的融合
随着科技的进步,人工智能已经逐渐渗透到我们日常生活的方方面面。本文将深入探讨深度学习和神经网络的结合如何推动AI技术的发展,以及这种结合对未来技术趋势的影响。我们将通过具体的实例来揭示这一领域的最新研究成果,并分析其在实际应用中的潜在价值。
|
10天前
|
机器学习/深度学习 人工智能 自然语言处理
深入神经网络:从感知机到深度学习
【7月更文第17天】当我们谈论人工智能时,神经网络常常是那个闪亮的明星。从最初的简单模型——感知机,到当今复杂而强大的深度学习系统,这场技术革命正以前所未有的方式改变着我们的世界。今天,咱们就用通俗易懂的语言,搭配一些简单的代码示例,来一场《深入神经网络:从感知机到深度学习》的探索之旅。
28 8
|
13天前
|
机器学习/深度学习 PyTorch 算法框架/工具
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
图神经网络是一类用于处理图结构数据的神经网络。与传统的深度学习模型(如卷积神经网络CNN和循环神经网络RNN)不同,
|
16天前
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能的未来:深度学习与神经网络的融合
【7月更文挑战第11天】随着科技的不断进步,人工智能(AI)领域正迎来前所未有的发展机遇。本文将深入探讨深度学习和神经网络这两大技术如何相互融合,共同推动AI的未来走向。我们将从基础概念出发,逐步解析它们在实际应用中的协同效应,并预测未来可能的发展趋势。
|
5天前
|
机器学习/深度学习 算法 BI
基于深度学习网络的USB摄像头实时视频采集与手势检测识别matlab仿真
**摘要:** 本文介绍了使用MATLAB2022a实现的基于GoogLeNet的USB摄像头手势识别系统。系统通过摄像头捕获视频,利用深度学习的卷积神经网络进行手势检测与识别。GoogLeNet网络的Inception模块优化了计算效率,避免过拟合。手势检测涉及RPN生成候选框,送入网络进行分类。系统架构包括视频采集、手势检测与识别、以及决策反馈。通过GPU加速和模型优化保证实时性能,应用于智能家居等场景。
|
13天前
|
机器学习/深度学习 PyTorch TensorFlow
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
在深度学习中,数据增强是一种常用的技术,用于通过增加训练数据的多样性来提高模型的泛化能力。`albumentations`是一个强大的Python库,用于图像增强,支持多种图像变换操作,并且可以与深度学习框架(如PyTorch、TensorFlow等)无缝集成。
|
21天前
|
机器学习/深度学习 人工智能 计算机视觉
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
好的资源-----打卡机+Arm+Qt+OpenCV嵌入式项目-基于人脸识别的考勤系统-----B站神经网络与深度学习,商城
|
21天前
|
机器学习/深度学习 物联网 区块链
未来触手可及:探索区块链、物联网和虚拟现实的革新之路探索深度学习中的卷积神经网络(CNN)
随着科技的飞速发展,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正不断重塑我们的工作和生活方式。本文将深入探讨这些技术的最新发展趋势,分析它们如何在不同行业实现应用革新,并预测其未来的融合潜力。我们将从技术的基本原理出发,通过案例研究,揭示它们在现实世界中的创新应用场景,并讨论面临的挑战与机遇。 在机器学习领域,卷积神经网络(CNN)已成为图像识别和处理的基石。本文深入探讨了CNN的核心原理、架构以及在多个领域的应用实例,旨在为读者提供从理论到实践的全面理解。
|
21天前
|
机器学习/深度学习 传感器 人工智能
探索人工智能的未来:深度学习与神经网络的融合
本文旨在探讨人工智能领域的最新趋势,特别是深度学习和神经网络如何相互融合,推动技术革新。我们将通过具体的案例分析,展示这些技术在现实世界中的应用,并讨论其对社会的潜在影响。文章将提供对当前研究进展的深入理解,以及对未来发展的预测。
26 0
|
2天前
|
存储 安全 网络安全
云计算与网络安全:技术演进与挑战
在数字化时代的浪潮中,云计算以其高效、灵活和成本效益显著的优势成为企业数字化转型的核心驱动力。然而,随着云服务的广泛应用,网络安全问题也愈发凸显,成为制约云计算发展的关键因素。本文从云计算服务的基本概念出发,深入探讨了网络安全的重要性,并详细分析了云环境下的信息安全威胁。通过对比传统网络环境和云计算环境的安全挑战,本文揭示了云计算特有的安全风险,并提出了相应的防护策略。最后,本文展望了云计算与网络安全的未来发展趋势,旨在为相关领域的专业人士提供参考和启示。
16 0

热门文章

最新文章