Global Average Pooling对全连接层的可替代性分析

2023-11-01

在NIN(Network in Network) 这篇论文中有很多的思想让人受益匪浅,其中之一就是全局平均池化(Global Average Pooling) 对于全连接层的替代性分析。刚开始由于觉得之后的研究不需要NIN,因此就没去看论文,看了一下其他人的博客,发现关于其原因讲得并不清楚,只说是那么用的。后来实在是受不了了,看了看论文,而且找到了一个较好的讲解,现在算是完全弄懂了。

首先我们来看一下全连接层的缺点:

在AlexNet及其之前的大抵上所有的基于神经网络的机器学习算法都要在卷积层之后添加上全连接层来进行特征的向量化,此外出于神经网络黑盒子的考虑,有时设计几个全连接网络还可以提升卷积神经网络的分类性能,一度成为神经网络使用的标配。

但是,我们同时也注意到,全连接层有一个非常致命的弱点就是参数量过大,特别是与最后一个卷积层相连的全连接层。一方面增加了Training以及testing的计算量,降低了速度;另外一方面参数量过大容易过拟合。虽然使用了类似dropout等手段去处理,但是毕竟dropout是hyper-parameter, 不够优美也不好实践。

那么我们有没有办法将其替代呢?当然有,就是GAP(Global Average Pooling)。

我们要明确以下,全连接层将卷积层展开成向量之后不还是要针对每个feature map进行分类吗,GAP的思路就是将上述两个过程合二为一,一起做了。如图所示:

这里写图片描述

由此就可以比较直观地说明了。这两者合二为一的过程我们可以探索到GAP的真正意义是:对整个网路在结构上做正则化防止过拟合。其直接剔除了全连接层中黑箱的特征,直接赋予了每个channel实际的内别意义。

实践证明其效果还是比较可观的,同时GAP可以实现任意图像大小的输入。但是值得我们注意的是,使用gap可能会造成收敛速度减慢。

参考资料:
Network In Network
Global average pooling

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Global Average Pooling对全连接层的可替代性分析 的相关文章

  • 入职华为外包一个月后,我离职向“北上广深”流浪了...

    这次来聊一个大家可能也比较关心的问题 那就是就业城市选择的问题 而谈到这个问题 就不可避免地会谈到一些关于 机会 技术氛围 跳槽 薪资水平 等等一系列问题 正好 这也是大家所常问的 我只能说来聊聊我的感受吧 我觉得城市选择非常重要 尤其对我
  • 链表大小排序方法c语言,5 种排序算法--C语言链表

    源码地址 GitHub https github com GYT0313 C DataStructure blob master sortIn5 c 包括 冒泡排序 快速排序 选择排序 插入排序 希尔排序 运行 注意 快速排序的核心代码应该
  • C#中属性赋值的步骤以及语法详解

    首先我们要先知道什么是C C 是由微软 Microsoft 开发 其中还包括C 面向过程 C C 是一个简单的 现代的 通用的 面向对象的编程语言 面向对象 是一种解决问题的思想 那么什么是对象 在程序员的眼中自己身边万物都可以理解为对象

随机推荐

  • python运行js文件_python-execjs(调用js)

    一 安装 pip3 install PyExecJS 电脑上要有nodejs环境 二 使用 一 获取js字符串 首先将js保存至于本地文件或者你可以可以直接读到内存 必须让js以python基础教程字符串的形式展示 注意点 字符串中不要出现
  • Go 获取10分钟前的时间,一天前的时间。。。

    time Now Add time Minute 10 golang的time包里面有个AddDate方法 nTime time Now yesTime nTime AddDate 0 0 1 logDay yesTime Format 2
  • FireFox浏览器的about:config参数大全及其具体用途介绍

    FireFox浏览器的about config参数大全及其具体用途介绍 注意 这还远不是所有的about config参数 由于设置参数太多 官方也只提供英文版本的说明 这里提供的FireFox about config配置参数并不完整 希
  • MSP430F5529学习笔记(4)——按键点灯

    MSP430F5529学习笔记 3 实现LED闪烁和呼吸灯 独立按键工作原理 目录 按键扫描 原理图分析 写程序 按下s1点亮LED1 1 首先我们需要告诉单片机 P2 1是输入还是输出 2 配置IO是否允许上下拉 3 配置IO是上拉还是下
  • 入坑前端:一文搞懂 Flex 布局

    前言 Flex 这个布局前前后后看了3次 第一次学的时候 发现有十几个属性值没耐心看完就没往下学了 作罢 第二次去看的时候大概搞明了Flex每个属性的用法 可没过几天又全部忘光了 第三次了解 Flex 于是就有了这篇笔记 估计是全网最易懂的
  • MyBatis 特殊字符转义拦截器 针对(_、\、%)

    一 问题反馈 今天公司测试向我反馈 系统用户模糊查询功能在用户名称包含特殊字符时 无法正常查询结果 二 问题验证 1 当like中包含 时 查询仍为全部 即 like 查询出来的结果与like 一致 并不能查询出实际字段中包含有 特殊字符的
  • 构建Camel和Raspberry Pi物联网

    该项目基于Camel技术 项目为IoT社区提供了一些很棒的新东西 这些东西是将电子设备 i2c SPI gpio tinkerforge 和云 pubnub cloudlet mqtt 连接在一起的新的物联网组件 在本实验中 我们将展示如何
  • 卡特兰数——括号匹配问题

    卡特兰数的递推公式是F n k 1 n F k 1 F n k k 0 n 1 F k F n k 1 一般性公式为F n C 2n n n 1 可以描述的问题有 1 n个元素的二叉查找树有多少种 2 n n棋盘从左下角走到右上角而不穿过主
  • Go语言-log

    1 log包 作为程序调试手段和运行记录 log是非常重要的 现在多数情况下并不是通过某个调试器来进行debug了 而是通过打log的方式观察和调试程序 可以根据自己的需要实现log功能 Go语言本身也已经内置了log包 这里研究Go语言内
  • 排序1:几种基本的排序方法

    在数据结构课里 一般会将查找和排序放在一起 大部分人都会感觉查找比排序容易 但是我们研究过算法之后就会发现查找远远难于排序 因为常见的排序方法是相对固定的 而查找除了最基本的二分查找外 还包含非常广的内容 二叉树 各种树 Hash 大数据下
  • Ubuntu更新动态链接库 sudo ldconfig

    error while loading shared libraries libg2o core so cannot open shared object file No such file or directory解决方法 在build文
  • 使有prometheus监控redis,mongodb,nginx,mysql,jmx(经典推荐!)

    以下操作在CENTOS7环境 使用prometheus做监控 使用grafana做dashboard的界面展示 因prometheus自带的监控web界面图形化展示方面比较弱 推荐使用grafana集成prometheus展示 一 软件安装
  • 运维日志排序_100分_B卷_自定义排序

    运维日志排序 题目描述 运维工程师采集到某产品线网运行一天产生的日志 n 条 现需根据日志时间先后顺序对日志进行排序 日志时间格式为 H M S N H表示小时 0 23 M表示分钟 0 59 S表示秒 0 59 N表示毫秒 0 999 时
  • Ubuntu16.04安装ns3.29过程

    安装ns3过程 版本ns3 29 在ns3的官方主页 http www nsnam org 上就能看到详细的安装文档 安装方式下载二进制文档进行编译 1 1 下载 点击Download 点击左侧ns 3 29 也可以自行下载其他版本 点击截
  • 深度学习图像分割算法—FCN代码实现

    FCN 全卷积网络 原论文链接 https arxiv org pdf 1411 4038 pdf 官方源代码 https github com shelhamer fcn berkeleyvision org截图如下 data文件夹 官方
  • 中国DVR卡发展过程与趋势分析

    关于分析中国DVR发展趋势之文 在安防论坛与杂志上可以经常看到 这类文章大多数市场划人员单纯站在市场的角度来预测中国DVR的发展趋势 本文作者将以分析中国DVR发展过程为基础 结合目前视频技术领域状况 对未来1 2年中国DVR卡的发展趋势进
  • import torch出现 ctypes.CDLL(dll) self._handle=_dlopen(self._name,mode) OSError:[WinError 126]找不到指定的模块

    问题 我明明已经把 pytorch 和 torchvision 安装了 但在写程序时老是出现下图错误 显示import torch这一行就出问题了 解决 经过查阅网上各种说法 发现原来自己安装了 gpu 版本的 由于我笔记本的显卡不是英伟达
  • 基于贝叶斯的V2X通信传输数据的Trustworthiness估计

    标签 Trustworthiness Estimation 论文标题 Trustworthiness Estimation of Entities within Collective Perception 发表期刊 会议 2019 IEEE
  • Android------- IjkPlayer 源码学习目录

    在看了雷霄华的VideoEye后 发现其视图层使用的是SDL在windows上展示的 但是本人是搞Android App开发的 读其源码时 总是感觉有点不对劲 最后找到了bilibili 为移动端封装ffmpeg的框架 IjkPlayer
  • Global Average Pooling对全连接层的可替代性分析

    在NIN Network in Network 这篇论文中有很多的思想让人受益匪浅 其中之一就是全局平均池化 Global Average Pooling 对于全连接层的替代性分析 刚开始由于觉得之后的研究不需要NIN 因此就没去看论文 看