魏秀参:如何理解全连接层的作用?

article/2025/9/28 16:22:26

点击上方“机器学习与生成对抗网络”,关注"星标"

获取有趣、好玩的前沿干货!

来自 | 知乎  作者 | 魏秀参  文仅分享,侵删

https://www.zhihu.com/question/41037974/answer/150522307

全连接层到底什么用?我来谈三点。

  • 全连接层(fully connected layers,FC)在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。在实际使用中,全连接层可由卷积操作实现:对前层是全连接的全连接层可以转化为卷积核为1x1的卷积;而前层是卷积层的全连接层可以转化为卷积核为hxw的全局卷积,h和w分别为前层卷积结果的高和宽(注1)。

  • 目前由于全连接层参数冗余(仅全连接层参数就可占整个网络参数80%左右),近期一些性能优异的网络模型如ResNet和GoogLeNet等均用全局平均池化(global average pooling,GAP)取代FC来融合学到的深度特征,最后仍用softmax等损失函数作为网络目标函数来指导学习过程。需要指出的是,用GAP替代FC的网络通常有较好的预测性能。具体案例可参见我们在ECCV'16(视频)表象性格分析竞赛中获得冠军的做法:「冠军之道」Apparent Personality Analysis竞赛经验分享 - 知乎专栏 ,project:Deep Bimodal Regression for Apparent Personality Analysis

  • 在FC越来越不被看好的当下,我们近期的研究(In Defense of Fully Connected Layers in Visual Representation Transfer)发现,FC可在模型表示能力迁移过程中充当“防火墙”的作用。具体来讲,假设在ImageNet上预训练得到的模型为 ,则ImageNet可视为源域(迁移学习中的source domain)。微调(fine tuning)是深度学习领域最常用的迁移学习技术。针对微调,若目标域(target domain)中的图像与源域中图像差异巨大(如相比ImageNet,目标域图像不是物体为中心的图像,而是风景照,见下图),不含FC的网络微调后的结果要差于含FC的网络。因此FC可视作模型表示能力的“防火墙”,特别是在源域与目标域差异较大的情况下,FC可保持较大的模型capacity从而保证模型表示能力的迁移。(冗余的参数并不一无是处。)

注1: 有关卷积操作“实现”全连接层,有必要多啰嗦几句。

以VGG-16为例,对224x224x3的输入,最后一层卷积可得输出为7x7x512,如后层是一层含4096个神经元的FC,则可用卷积核为7x7x512x4096的全局卷积来实现这一全连接运算过程,其中该卷积核参数如下:

“filter size = 7, padding = 0, stride = 1, D_in = 512, D_out = 4096”

经过此卷积操作后可得输出为1x1x4096。

如需再次叠加一个2048的FC,则可设定参数为“filter size = 1, padding = 0, stride = 1, D_in = 4096, D_out = 2048”的卷积层操作。

猜您喜欢:
超100篇!CVPR 2020最全GAN论文梳理汇总!
附下载 | 《Python进阶》中文版
附下载 | 经典《Think Python》中文版
附下载 | 《Pytorch模型训练实用教程》
附下载 | 最新2020李沐《动手学深度学习》附下载 | 《可解释的机器学习》中文版附下载 |《TensorFlow 2.0 深度学习算法实战》附下载 | 超100篇!CVPR 2020最全GAN论文梳理汇总!
附下载 |《计算机视觉中的数学方法》分享

http://chatgpt.dhexx.cn/article/CsWqDh3p.shtml

相关文章

28岁少帅统领旷视南京研究院,LAMDA魏秀参专访

记者和魏秀参专访约在旷视科技北京总部,北临清华大学,西靠中关村的融科写字楼,公司三层中厅是一整面落地屏幕,实时显示着人脸识别、人脸检测、年龄估计、人体关键点预测等多种视觉应用demo。 这家计算机视觉公司在2017年10 月 31 …

极市直播丨南京理工大学魏秀参、沈阳:大规模细粒度图像检索

| 极市线上分享 第102期 | 一直以来,为让大家更好地了解学界业界优秀的论文和工作,极市已邀请了超过100位技术大咖嘉宾,并完成了101期极市线上直播分享。往期分享请前往:http://bbs.cvmart.net/topics/149,也欢迎各位…

[读书笔录]解析卷积神经网络(魏秀参)——目录和绪论

解析卷积神经网络——基础理论篇 *南京大学计算机系机器学习与数据挖掘所(LAMDA)在读博士魏秀参开放了一份较系统完整的 CNN 入门材料《解析卷积神经网络——深度学习实践手册》。这是一本面向中文读者轻量级、偏实用的深度学习工具书,内容侧…

R Talk | 旷视南京研究院魏秀参:细粒度图像分析综述

「R Talk 」是旷视研究院推出的一个深度学习专栏,将通过不定期的推送展示旷视研究院的学术分享及阶段性技术成果。「R」是 Research 的缩写,也是旷视研究院的内部代号;而所有的「Talk」都是来自旷视的 Researcher。「R Talk 」旨在通过一场场…

【Web】控制台操作

浏览器控制台 重定向空白页面使用调用函数eval()执行函数命令使用时间类函数执行代码通过匿名function()执行脚本创建Function对象并执行代码通过apply执行代码通过call执行函数通过成员对象执行函数通过top执行函数通过WINDOW.WINDOW或任何等价值执行函数通过页面事件执行代码…

浏览器控制台Network面板简述

浏览器控制台Network面板简述 如何打开NetWork面板控制台Network的作用面板组成请求列表请求列表每列:查看单个资源的详细信息查看HTTP头信息General部分:Response Headers(响应头)部分:Request Headers (请求头&#…

浏览器随笔 -- 谷歌浏览器控制台使用

谷歌浏览器控制台使用 1. 使用说明2. 整体布局介绍3. Element3.1 页面元素查找&修改css样式3.2 操作HTML元素 4. Console4.1 日志打印4.2 代码编辑器 5. Sources6. Network6.1 接口状态码6.2 接口传参&数据返回 7. Application -- 浏览器存储7.1 cookie 存储7.2 localS…

如何监听浏览器控制台的打印信息?

注意: 拦截并监听控制台打印并不是一个好的行为,为了网站安全请谨慎使用 需求背景 当我们在项目中引入某些第三方依赖时,该第三方依赖会在浏览器控制台打印相关信息,如 stompjs 会打印 stomp 连接情况 今天有个新需求是需要将控…

Chrome 控制台console的用法

转自:http://www.open-open.com/lib/view/open1421131601390.html 原文出处: ctriphire 大家都有用过各种类型的浏览器,每种浏览器都有自己的特色,本人拙见,在我用过的浏览器当中,我是最喜欢Chrome的&am…

Chrome控制台console的各种用法(方便调试)

https://www.cnblogs.com/qubernet/p/5794812.html 1、输出信息 console.log(消息内容!); //输出普通信息   console.info(消息内容!); //输出提示信息   console.error(消息内容!);//输出错误信息   console.warn(消息内容&#xff0…

chrome控制台中console的强大

在使用谷歌浏览器进行前端开发的时候,console作为控制台的一个主要方法,相信大家都用过,一般都是用console.log()来输出部分内容,但是console还有很多强大之处,下面主要说一下console的更重强大的地方: 首…

浏览器控制台的一些输出方法---console

1.首选是常见的console.log(); console.log(hello);console.log(hi,friend);在浏览器按F12,控制台输出的是这样的 2.在console.log()里使用%s console.log(Hello, my name is %s,kon);%s会替换成第二个参数 3.在console.log()里使用%c console.log(%c styled te…

Edge浏览器调整控制台位置

默认edge浏览器f12控制台是在右边的,但是个人比较喜欢在下面,显示的全面一些 点击右上角的省略号,出现: 注意这几个图标: 点击第三个,就可以把控制台调到下面啦~

【Chrome】浏览器控制台设置成中文

文章目录 按 F12 或 鼠标右键点击检查打开控制台界面,如下 此时可以看到我们的控制台界面是英文的,这对新手来说可能有点不太友好所以如果需要设置成中文,可以按以下步骤设置 点击控制台中的设置图标,如图所示 找到 Language 选项…

chrome控制台使用

1.输入代码片段的时候 总是遇到 Enter回车代码没敲完 就被执行了 试试使用ShiftEnter 直接在控制台换行 2.当你在控制台计算了一个数值的时候 可以用$_来代替上一个表达式执行的结果 数值计算的 同样适用 3.当时在Element里面选中一个元素时 你可以回到控制台 用$0-$5去输出这个…

谷歌浏览器控制台位置调整

1.如何打开 使用快捷键F12即可 2.如何设置

浏览器控制台接口学习

我们在做项目开发时,想知道一个功能调用了后台哪个接口,我们就可以在浏览器控制台中进行查看。 举一个例子,我们在看博客时,发现这一篇文章写的不错,我们在做点赞这个动作时,调用了哪个接口呢? …

这才是 Chrome 控制台的正确使用方法!太重要了!

Chrome 控制台是很多开发者的必备工具之一,但你真的掌握了它的精髓吗?是否还是全靠 console.log() 排查问题? 其实,控制台的功能远比这更强大,用好控制台,能帮助我们更加准确高效地发现问题、定位问题&…

chrome控制台功能

Chrome开发者工具面板 面板上包含了Elements面板、Console面板、Sources面板、Network面板、 Timeline面板、Profiles面板、Application面板、Security面板、Audits面板这些功能面板。 这些按钮的功能点如下: Elements:查找网页源代码HTML中的任一元素,手动修改任…

Chrome的控制台(Console)的用法(超详细,还未细看)

为什么写了本篇博客: (1)在Chrome浏览器开发者工具介绍;(包括,Network面板介绍,XHR等等)中,遇到了Chrome的控制台(Console);本篇博客就…