前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >CNN卷积神经网络的改进(15年最新paper)

CNN卷积神经网络的改进(15年最新paper)

作者头像
码科智能
发布于 2019-05-26 02:04:11
发布于 2019-05-26 02:04:11
2.5K0
举报

回归正题,今天要跟大家分享的是一些 Convolutional Neural Networks(CNN)的工作。大家都知道,CNN 最早提出时,是以一定的人眼生理结构为基础,然后逐渐定下来了一些经典的架构——convolutional 和 pooling 的交替,最后再加上几个 fully-connected layers 用作最后做 prediction 等的输出。然而,如果我们能“反思”经典,深入剖析这些经典架构中的不同 component 的作用,甚至去改进它们,有时候可能有更多的发现。所以,今天分享的内容,便是改进 CNN 的一些工作。

Striving For Simplicity:The All Convolutional Net

先说一篇探究 CNN 中不同 component 的重要性和作用的工作。这篇工作发表于 ICLR 2015,已经有一年多的时间了。个人觉得它应该受到更大的关注。这篇工作最大的贡献是,把经典架构的 CNN 中的 pooling 层,用 stride convolutional 层给替换掉了,也就是去掉了 deterministic 层。并且,通过数学公式和实验结果证明,这样的替换是完全不会损伤性能的。而加入 pooling 层,如果不慎,甚至是有伤性能的。

具体来看,CNN 中的每次 feature map 表达,都可以看做一个 W*H*N 的三维结构。在这个三维结构下,pooling 这种 subsampling 的操作,可以看成是一个用 p-norm(当 p 趋向于正无穷时,就是我们最常见的 max-pooling)当做 activation function 的 convolutional 操作。有了这样的解释,自然而然地,就会提出一个问题:那么引入这样的 pooling 操作,有什么意义呢?真的有必要么?在过去的工作中,大家普遍认为,pooling 层有三种可能的功效:(1)提取更 invariant 的 feature;(2)抽取更广范围的(global)的 feature——即 spatially dimension reduction;(3)更方便优化。这篇作者认为,其中(2)是对 CNN 最重要的。基于此,它们就提出,那么我只要在去掉 pooling 层的同时,保证这种 spatially dimension reduction——是否就可以构造出一个 all convolutional net,同时这个 net 的效果还不比 convolutional + pooling 交替的差?

最后,果然,如他们所料。它们的 all convolutional net 达到了甚至有时候超过了 state-of-art,同时他们还发现有时候加入 pooling 反而不如不加。这篇工作的另外一个贡献是他们提出了一种新的 visualizing CNN 的方法,效果更直观更有分辨性。总结来说,这篇工作提出的 all convolutional net 可以实现自主 downsampling,并且效果不差;其二,它不是在说 pooling 不好,我们一定要抛弃;而是对于 minimum necessary ingredients for CNN 进行了探究。

Network in Network

第一个要分享的是如何去 replace pooling layer after convolutional layer,接下来要分享的是 replace fully-connected layer on the top of CNN。这个也是经典的 CNN 架构中的一个组成部分。也许这个东西大家还不熟悉,但是提到另一个词,大家就会很熟悉了。那就是,dropout。已经有非常多的工作,在 CNN 的 fully-connected layer 中,加入 dropout,来避免 overfitting。受此启发,后来又有了一个 sparse convolutional neural networks 的工作。然而,更具开创性的工作是,《Network in Network》这篇,提出了用 global averaging pooling layer 替代 fully-connected layer.

这样的 global averaging pooling layer 显然,可以把 input/feature map 和 output/category,也就可以达到减少 overfitting 的作用(和 dropout 一样)。

现在,global average pooling 已经被用得很广泛,比如在《Going Deeper with Convolutions》中,作者指出: We found that a move from fully connected layers to average pooling improved the top-1 accuracy by about 0.6%, however the use of dropout remained essential even after removing the fully connected layers. 当然它也有它自己的一定弊端,比如 convergence 会变慢。但是关于 fully-connected layer 是否一定是必须的这个问题,却在被各种工作和各种场景探究。比如 Google 去年非常火的 inceptionism 的工作中,也放弃了 fully-connected layer,并达到了很好的效果。 所以,关于这点,小S 是认为,我们不要光看表面的 dropout or global averaging pooling 这些技术,而是要去思考它们的共同之处和它们的原理。从它们带给网络结构的变化入手。也许现在来看,最初的结论还是对的,deeper is better,我们暂时要解决的是如何 deeper。

Spatial Transformer Networks

这篇是 NIPS 2015 中,来自 Google DeepMind 的工作。这篇也被前几天 huho larochelle 评选出的 Top 10 arXiv 2015 Deep Learning Papers 收录(另外提一下,昨天看到这个评选,发现大部分我都写过笔记了,大家如果感兴趣,我可以单独整理一份,以供大家查阅)。回到这篇工作上来,它主要是说,尽管 CNN 一直号称可以做 spatial invariant feature extraction,但是这种 invariant 是很有局限性的。因为 CNN 的 max-pooling 首先只是在一个非常小的、rigid 的范围内(2×2 pixels)进行,其次即使是 stacked 以后,也需要非常 deep 才可以得到大一点范围的 invariant feature,三者来说,相比 attention 那种只能抽取 relevant 的 feature,我们需要的是更广范围的、更 canonical 的 features。为此它们提出了一种新的完全 self-contained transformation module,可以加入在网络中的任何地方,灵活高效地提取 invariant image features.

具体上,这个 module 就叫做 Spatial Transformers,由三个部分组成: Localization Network, Grid generator 和 Sampler。Localization Network 非常灵活,可以认为是一个非常 general 的进一步生成 feature map 和 map 对应的 parameter 的网络。因此,它不局限于用某一种特定的 network,但是它要求在 network 最后有一层 regression,因为需要将 feature map 的 parameter 输出到下一个部分:Grid generator。Grid generator 可以说是 Spatial Transformers 的核心,它主要就是生成一种“蒙版”,用于“抠图”(Photoshop 附体……)。Grid generator 定义了 Transformer function,这个 function 的决定了能不能提取好 invariant features。如果是 regular grid,就好像一张四四方方没有倾斜的蒙版,是 affined grid,就可以把蒙版“扭曲”变换,从而提取出和这个蒙版“变换”一致的特征。在这个工作中,只需要六个参数就可以把 cropping, translation, rotation, scale and skew 这几种 transformation 都涵盖进去,还是很强大的;而最后的 Sampler 就很好理解了,就是用于把“图”抠出来。

这个工作有非常多的优点:(1)它是 self-contained module,可以加在网络中的任何地方,加任何数量,不需要改变原网络;(2)它是 differentiable 的,所以可以直接进行各种 end-to-end 的训练;(3)它这个 differentiable simple and fast,所以不会使得原有网络变慢;(4)相比于 pooling 和 attention 机制,它抽取出的 invariant features 更 general。

Stacked What-Where Auto-encoders

这篇文章来自 NYU,Yann LeCun 组,已投稿到 ICLR 2016。与之前整理过的 improving information flow in Seq2Seq between encoder-decoder 类似的是,这篇文章主要是改进了基于 CNN 的 encoder-decoder,并非常 intuitive 的讨论了不同 regularizer 的区别。架构图可以直接看 Figure 1 的右侧,会比较清晰。具体来讲,Stacked What-Where Auto-encoders(SWWAE) 基于前向 Convnet 和前向 Deconvnet,并将 max-pooling 的输出称为 “what”,其实就是将 max function 的 content 和 position 传给下一层;同时,max-pooling 中的 position/location 信息,也就是 argmax function,作为 “where” 要“横向”传给 decoder。这样,在进行 decoder reconstruct 的过程时,则更能基于 where + what 的组合,进行 unpooling。 为了能让网络利用好 what 和 where,文章考虑了三种 loss,见公式(1),即传统的 discriminate loss,和新增的 input-level reconstruction loss for “what” 还有 intermediate-level reconstruction loss for “where”。

如上文所说,文章的 Section 3 很 intuitive,首先说明并解了为什么使用的是 soft version 的 max/argmax 去进行 ”what“ 和 ”where“;第二,讨论了为何加入 reconstruction loss 和这样一个 hybird loss function 更好(generalization 和 robustness);第三,说明了 intermediate loss 对于“what”“where”一起学习的重要性。 实验结果上来看,这样的 SWWAE 模型 generate 出来的图片更清晰,更“干净”(clearer and cleaner)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年01月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
详解卷积神经网络(CNN)
卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。
全栈程序员站长
2022/06/25
7960
详解卷积神经网络(CNN)
深度学习论文(八)---DeepLabV1-SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED C
本文介绍了使用深度卷积神经网络进行语义图像分割和区域提议的综述,分析了当前最新的方法、模型和实验结果,并提出了未来的研究方向和挑战。
TeeyoHuang
2017/12/28
2K0
深度学习论文(八)---DeepLabV1-SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED C
[透析] 卷积神经网络CNN究竟是怎样一步一步工作的?
视频地址:https://www.youtube.com/embed/FmpDIaiMIeA 文档参阅:<a href="https://github.com/brohrer/public-host
zhwhong
2018/05/16
1K0
卷积神经网络复习
卷积神经网络主要包括3层,即:卷积层、池化层以及全连接层。本文讲分别细致介绍这三层的作用和计算来复习一下卷积神经网络。本文采用简单的LeNet来讨论这些问题,模型的结构如下。
故事尾音
2019/12/18
7080
卷积神经网络复习
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
我们首先了解一个概念,感受野,即每个神经元仅与输入神经元相连接的一块区域。在图像卷积操作中,神经元在空间维度上是局部连接的,但在深度上是全连接。局部连接的思想,是受启发于身生物学里的视觉系统结构,视觉皮层的神经元就是仅用局部接受信息。对于二维图像,局部像素关联性较强。这种局部连接保证了训练后的滤波器能够对局部特征有最强的响应,使神经网络可以提取数据的局部特征。
JOYCE_Leo16
2024/04/04
3020
深度学习500问——Chapter05: 卷积神经网络(CNN)(4)
卷积神经网络
0.说在前面1.卷积神经网络1.1 卷积层1.2 汇聚层1.3 全连接层2.卷积层实现2.1 前向传播2.2 反向传播3.汇聚层3.1 前向传播3.2 反向传播4.组合层5.三层卷积神经网络5.1 架构5.2 类构造方法5.3 计算损失5.3.1 前向传播5.3.2 反向传播6.Spatial batch normalization6.1 要求解读6.2 前向传播6.3 反向传播7.Group Normalization7.1 什么是Group Normalization?7.2 前向传播7.3 反向传播8.作者的话
公众号guangcity
2019/09/20
1.3K0
卷积神经网络
卷积神经网络(CNN)介绍与实践
作为人类,我们不断地通过眼睛来观察和分析周围的世界,我们不需要刻意的“努力”思考,就可以对所看到的一切做出预测,并对它们采取行动。当我们看到某些东西时,我们会根据我们过去学到的东西来标记每个对象。为了说明这些情况,请看下面这张图片:
用户1332428
2018/07/30
6150
卷积神经网络(CNN)介绍与实践
卷积神经网络
border="0" width="530" height="96" src="//music.163.com/outchain/player?type=2&id=369265&auto=1&heig
李玺
2021/11/22
1.1K0
卷积神经网络
透析|卷积神经网络CNN究竟是怎样一步一步工作的?
译者 | zhwhong 当你听到说深度学习打破了某项新技术障碍,那么十有八九就会涉及到卷积神经网络。它们也被称作CNNs或着ConvNets,是深层神经网络领域的主力。它们已经学会对图像进行分类,在某些情况下甚至超过了人类。如果有一个方法证明了这种假设,那就是CNN。特别酷的一点就是,当你将它们分解为基本模块时,它们很容易被理解。这里有一个视频,很详细地讨论了关于这些图像问题。 LeNet-5 Classfication 先验工作 【icml09 - Convolutional Deep Be
AI科技大本营
2018/04/27
7600
透析|卷积神经网络CNN究竟是怎样一步一步工作的?
透析 | 卷积神经网络CNN究竟是怎样一步一步工作的?
视频地址:https://www.youtube.com/embed/FmpDIaiMIeA; 文档参阅:<a href="https://github.com/brohrer/public-host
用户1332428
2018/03/09
8050
透析 | 卷积神经网络CNN究竟是怎样一步一步工作的?
卷积神经网络实战MNIST
本节学习来源斯坦福大学cs20课程,有关本节源代码已同步只至github,欢迎大家star与转发,收藏!
公众号guangcity
2019/09/20
7330
卷积神经网络实战MNIST
时空特征--Learning Spatiotemporal Features with 3D Convolutional Networks
本文介绍了一种用于学习视频序列时空特征的三维卷积神经网络C3D,该网络具有最优的三维卷积滤波器结构,可以有效地从视频序列中提取时空特征。实验结果表明,该网络在视频动作识别任务上比其他方法具有更好的性能,同时比2D卷积神经网络更加高效,可以以313 fps的速度处理视频序列,具有很好的实用价值。
用户1148525
2018/01/03
1.4K0
时空特征--Learning Spatiotemporal Features with 3D Convolutional Networks
[透析] 卷积神经网络CNN究竟是怎样一步一步工作的?
https://www.youtube.com/embed/FmpDIaiMIeA
zenRRan
2019/11/20
5900
[透析] 卷积神经网络CNN究竟是怎样一步一步工作的?
深度学习中的卷积神经网络(CNN):从基础到应用
文章链接:https://cloud.tencent.com/developer/article/2475606
远方2.0
2024/12/10
8590
深度学习中的卷积神经网络(CNN):从基础到应用
卷积神经网络(CNN)在植被遥感中的应用
在各学科中(如林业、自然保护和农业),都需要在时间、空间上识别和表征维管植物,遥感技术是揭示植被时空格局的关键技术。利用不断增长的遥感数据流来满足日益增长的植被评估和监测需求,则需要高效、准确和灵活的数据分析方法。深度学习方法在这方面具有较高预测精度,并且以端到端的方式独立学习相关数据特征。
郭好奇同学
2021/10/27
1.2K0
解密卷积神经网络
,尤其在计算机视觉领域表现突出。其核心设计灵感来源于生物视觉系统的层次化信息处理机制。
VyrnSynx
2025/01/26
1200
TensorFlowNews五大经典卷积神经网络介绍:LeNet / AlexNet / GoogLeNet / VGGNet/
前言:这个系列文章将会从经典的卷积神经网络历史开始,然后逐个讲解卷积神经网络结构,代码实现和优化方向。 (以下内容来翻译自斯坦福大学课程:http://cs231n.github.io/convolutional-networks/) 在卷积网络领域有几个有名字的体系结构。最常见的是: LeNet 卷积神经网络的第一批成功应用,是由 Yann LeCun 在 20 世纪 90 年代开发的。其中最着名的是用于识别邮政编码,数字等的LeNet架构。 AlexNet 首先让卷积神经网络在计算机视觉中流行的是由
磐创AI
2018/04/24
1.2K0
Going Deeper with Convolutions——GoogLeNet论文翻译——中英文对照
Tyan
2017/12/28
1.3K0
Going Deeper with Convolutions——GoogLeNet论文翻译——中英文对照
文本分类(下) | 卷积神经网络(CNN)在文本分类上的应用
原先写过两篇文章,分别介绍了传统机器学习方法在文本分类上的应用以及CNN原理,然后本篇文章结合两篇论文展开,主要讲述下CNN在文本分类上的应用。前面两部分内容主要是来自两位博主的文章(文章中已经给出原文链接),是对两篇论文的解读以及总结,基本上阐释了CNN文本分类模型;后半部分讲一个实例和项目实战。
用户1332428
2018/07/30
1.2K0
文本分类(下) | 卷积神经网络(CNN)在文本分类上的应用
[译] 基于R-FCN的物体检测题目:基于R-FCN的物体检测摘要简介方法相关工作实验总结与展望Reference
题目:基于R-FCN的物体检测 文章地址:arXiv:1605.06409. 《R-FCN: Object Detection via Region-based Fully Convolutio
zhwhong
2018/05/16
6710
推荐阅读
相关推荐
详解卷积神经网络(CNN)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文