热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

卷积层的主要作用_【基础积累】1x1卷积到底有哪些用处?

关注上方“深度学习技术前沿”,选择“星标公众号”,资源干货,第一时间送达!【导读】前面我们已经详细介绍了卷积神经网络中的卷积

关注上方深度学习技术前沿,选择“星标公众号”,

资源干货,第一时间送达!b5f3ace45476d9edb7c1406004ac40a7.png

820dd0ab4ace4f7d646df2286e431860.png

【导读】前面我们已经详细介绍了卷积神经网络中的卷积层、池化层以及相应的参数计算,详细内容请见:干货|最全面的卷积神经网络入门教程。本篇文章我们就来一起讨论一下,1x1卷积核的作用到底有哪些?1x1卷积核最先是在Network In Network(NIN)中提出的,这个方法也在后面比较火的方法,如 googLeNet、ResNet、DenseNet ,中得到了非常广泛的应用。特别是在 googLeNet 的Inception中,发挥的淋漓尽致。
1x1卷积核

如果卷积的输出输入都只是一个平面,那么1x1卷积核并没有什么意义,它是完全不考虑像素与周边其他像素关系。但卷积的输出输入是长方体,所以1x1卷积实际上是对每个像素点,在不同的channels上进行线性组合(信息整合),且保留了图片的原有平面结构,调控depth,从而完成升维或降维的功能。

87ff8de60cac9fbc3e22ed0935e9cf85.gif

1x1卷积核的作用

1x1卷积的作用可以总结为以下三点:

  • 可以实现信息的跨通道整合和交互

  • 具有降维和升维的能力,减少网络参数。这里的维度指的是卷积核通道数(厚度),而不改变图片的宽和高。

  • 在保持feature map 尺寸不变(即不损失分辨率)的前提下大幅增加非线性特性,既可以把网络做得很deep,也可以提升网络的表达能力

跨通道信息交互(channel)

例子:使用1x1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3x3,64channels的卷积核后面添加一个1x1,28channels的卷积核,就变成了3x3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互。

注意:只是在channel维度上做线性组合,W和H上是共享权值的sliding window

降维/升维

在卷积神经网络中,channels 的含义一般是指每个卷积层中卷积核的数量。

1×1卷积核并不会改变 height 和 width,改变通道的第一个最直观的结果,就是可以将原本的数据量进行增加或者减少。这里通常都称之为升维、降维。而且改变的只是 height × width × channels 中的 channels 这一个维度的大小而已。

979b68e30ee0a904a71b4c103baad095.png

这里我们以GoogLeNet的3a模块为例,输入的feature map是28×28×192,3a模块中1×1卷积通道为64,3×3卷积通道为128,5×5卷积通道为32,如果是左图结构,那么卷积核参数为1×1×192×64+3×3×192×128+5×5×192×32,

而右图对3×3和5×5卷积层前分别加入了通道数为96和16的1×1卷积层,这样卷积核参数就变成了:1×1×192×64+(1×1×192×96+3×3×96×128)+(1×1×192×16+5×5×16×32),参数大约减少到原来的三分之一。

同时在并行pooling层后面加入1×1卷积层后也可以降低输出的feature map数量,(feature map尺寸指W、H是共享权值的sliding window,feature map 的数量就是channels)

左图pooling后feature map是不变的,再加卷积层得到的feature map,会使输出的feature map扩大到416,如果每个模块都这样,网络的输出会越来越大。

而右图在pooling后面加了通道为32的1×1卷积,使得输出的feature map数降到了256。GoogLeNet利用1×1的卷积降维后,得到了更为紧凑的网络结构,虽然总共有22层,但是参数数量却只是8层的AlexNet的十二分之一(当然也有很大一部分原因是去掉了全连接层)

c3cad57da795249c57f306a7e03b9d40.png

增加非线性

在CNN里的卷积大都是多通道的feature map和多通道的卷积核之间的操作(输入的多通道的feature map和一组卷积核做卷积求和得到一个输出的feature map),如果使用1x1的卷积核,这个操作实现的就是多个feature map的线性组合,可以实现feature map在通道个数上的变化。

备注:一个filter对应卷积后得到一个feature map,不同的filter(不同的weight和bias),卷积以后得到不同的feature map,提取不同的特征,得到对应的specialized neuro。

参考链接:

  1. https://blog.csdn.net/u014114990/article/details/50767786

  2. http://www.caffecn.cn/?/question/136

  3. https://www.zhihu.com/question/56024942

  4. https://blog.csdn.net/sscc_learning/article/details/79863922

  5. https://zhuanlan.zhihu.com/p/40050371


推荐阅读

(点击标题可跳转阅读)

  • 干货|最全面的卷积神经网络入门教程
  • 一文详解深度学习中的Normalization:BN/LN/WN
  • 【卷积神经网络结构专题】一文详解LeNet(附代码实现)
  • 【最新综述】轻量级神经网络架构综述
  • 【汇总】一大波CVPR2020开源项目重磅来袭!

重磅!深度学习技术前沿-微信群已成立

扫码添加群助手,可申请加入 深度学习技术前沿 微信群,旨在交流深度学习方面的学习、科研、工程项目等内容,其中研究方向主要包括:图像识别、图像分类、目标检测、图像分割、人脸识别、模型剪枝与压缩、自然语言处理、知识图谱、强化学习、NAS、GAN等。并且还会第一时间在群中分享一线大厂求职内推资料。

一定要备注:研究方向+学校/公司+姓名(如图像分割+浙大+李四),按照格式备注,可更快被通过且邀请进群。(广告商、博主请绕道!)

182918a3cf5a20d9d4af8a32b142219d.png

长按识别,即可加群

51c83c9739fbc8add65b220e7a24885c.png

长按识别,即可关注

原创不易,在看鼓励!比心哟!f5ba14b9338ca16f1c276369002fd99d.png

35c05828f6bbbd3ac83e81bc825bf13d.gif




推荐阅读
  • 本文详细探讨了OpenCV中人脸检测算法的实现原理与代码结构。通过分析核心函数和关键步骤,揭示了OpenCV如何高效地进行人脸检测。文章不仅提供了代码示例,还深入解释了算法背后的数学模型和优化技巧,为开发者提供了全面的理解和实用的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • Android开发技巧:使用IconFont减少应用体积
    本文介绍如何在Android应用中使用IconFont来显示图标,从而有效减少应用的体积。 ... [详细]
  • 开发日志:高效图片压缩与上传技术解析 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Cisco OSI 软件更新指南:详细步骤与最佳实践
    Cisco OSI软件更新指南提供了详细的步骤和最佳实践,帮助用户高效、安全地完成软件升级。本文不仅涵盖了更新前的准备工作,还详细介绍了更新过程中的关键步骤和注意事项,确保系统稳定性和安全性。此外,还提供了故障排除和验证方法,以确保更新后的系统运行正常。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 在第七天的深度学习课程中,我们将重点探讨DGL框架的高级应用,特别是在官方文档指导下进行数据集的下载与预处理。通过详细的步骤说明和实用技巧,帮助读者高效地构建和优化图神经网络的数据管道。此外,我们还将介绍如何利用DGL提供的模块化工具,实现数据的快速加载和预处理,以提升模型训练的效率和准确性。 ... [详细]
  • 利用TensorFlow.js在网页浏览器中实现高效的人脸识别JavaScript接口
    作者|VincentMühle编译|姗姗出品|人工智能头条(公众号ID:AI_Thinker)【导读】随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升。在 ... [详细]
  • 第三届人工智能、网络与信息技术国际学术会议(AINIT 2022)
    20223rdInternationalSeminaronArtificialIntelligence,NetworkingandInformationTechnology第三届 ... [详细]
  • 最近版上有不少人在讨论图像处理的就业方向,似乎大部分都持悲观的态度。我想结合我今年找工作的经验谈谈我的看法。就我看来,个人觉得图像处理的就业还是不错的。 ... [详细]
  • 中文分词_中文分词技术小结几大分词引擎的介绍与比较
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了中文分词技术小结几大分词引擎的介绍与比较相关的知识,希望对你有一定的参考价值。笔者想说:觉得英文与中文分词有很大的区别, ... [详细]
author-avatar
xin新的
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有