深度学习 15. 全连接和区域连接,fully connected 和 local connected, 解释说明(最简单的解释)
来源:互联网 发布:网络监控技术员 编辑:程序博客网 时间:2024/06/07 05:24
本文为原创文章转载必须注明本文出处以及附上 本文地址超链接 以及 博主博客地址:http://blog.csdn.NET/qq_20259459 和 作者邮箱( jinweizhi93@gmai.com )。
(如果喜欢本文,欢迎大家关注我的博客或者动手点个赞,有需要可以邮件联系我)
最近一段时间,我们几个人一直在讨论一个简单的和平时不太注意的问题,也争执了一段时间,所以我觉得有必要在博客中也为大家解释说明一下这个问题,也许大家也遇到或者不知道这个问题准确的解释。这个问题就是fully connected 和 local connected的区别。
相信学过神经网络的各位都会知道有一个知识点就是MLP和CNN的区别:
1. MLP是fully connected layer. 而CNN是local connected layer.
2. MLP没有weights share. 而CNN有。
其实这两点是一点,因为fully connected layer就是没有weights share的。
所以我们可以说fully connected layer的特点就是没有weights share.但是在学习MLP的时候我们又知道MLP的nodes的连接方式是点对点的,也就是1x1的size。正是因为这点,才导致大家的分歧。因为在传统的CNN中我们也会用到fully connected layer,同时也有个比较有误导性的就是CNN的FC layer往往都是1x1的filter size。
正因为这样所以许多人认为1x1的filter size就是fully connected.我在网络上找了许多相关解释,不少人在解释1x1的filter size的时候认为其就是fully connected.然而这是错误的。
我们知道CNN可以说是MLP的一种特例,但是CNN强大的拟合能力和自身的抑制能力目前为止还没有数学理论去证明,但是其优秀的结果总是颠覆更传统的一些神经网络。正因如此所以深度学习现在是大热到不行,不过为了证明CNN所具有超强的学习能力,有人已经做了相关的研究并发表在nature杂志上面,研究中作者打乱原来的label然后进行训练,却发现CNN还是可以提取正确的信息,这种研究虽然还是没有在数学上给予解释,但是已经可以证明CNN的强大的学习能力是存在的。
而在相对传统的CNN中,我们一直还在使用fully connected layer(比如AlexNet和VGGNet等),尽管在新的GoogleNet中FClayer已经被去除了。但是我们还是可以看到MLP这种原始神经网络的影响,以及其具有的一定的能力性。
所以我们往往会忽略一些FC的问题,因为它一直都存在于我们的使用中,一直那么的自然。久而久之我们会产生简单的把1x1就是等于fully connected的这种认知错误。
这里我将给大家一个简单的判断fully connected的方法:
1. 对于neuron的连接(点对点的连接)都是fully connected.(这里其实就是MLP)
2. 对于有filter的network,不是看filter的size,而是看output的feature map的size。如果output feature map的size是1x1xN的话这个layer就是fully connected layer。
这里解释一下第二个判断方法:
1. 1x1的filter size不一定是fully connected。比如input size是10x10x100,filter size是1x1x100,重复50次,则该layer的总weights是:1x1x100x50。
2. 1x1的filter size如果要是fully connected,则input size必须是1x1。关于这一点我们在前面使用matconvnet的时候有介绍过,fc的input size如果不是1x1就会出错。
3. input size是10x10的时候却是fully connected的情况:这里我们的output size肯定是1x1,且我们的filter size肯定是10x10。
因此我们也可以将第二点总结为:
filter size等于input size则是fully connected。
说到这里可能有人不太相信,因为大家可能根深蒂固的认为1x1的情况就是fully connected。其实有个很好的例子可以佐证我的说法:GoogleNet
这里是几种经典CNN的比较图,我们知道最导致网络冗杂和承重就是FC layer。所以GoogleNet虽然比AlexNet更加深度,但是却具有更加小的memory(weights)。 因为我们都知道GoogleNet是去掉了FC layer,所以才能在性能上大幅提升。但是我们可以看GoogleNet的构造,我们发现GoogleNet还是有1x1的filter size,而且有多个layer是存在1x1 filter的,因此这里可以证明我们不能通过1x1的filter size就认定是fully connected。只要input size不是1x1,那么1x1的filter也是具有weights share的。
但是在NiN的paper中,作者将Relu替换为MLP,这里就是fully connected,因为是点对点的连接。所以我们一定不要被其混淆,以至于认为1x1就是fully connected。
其实这个问题本身并不是很难理解,但是就是会有一些潜意识的理所当然会导致我们认知错误。
最重要还是需要去理解这些定义的含义,而不是自己通过想象去理解。
最后我再一次总结一下这篇文章的内容:
1. fully connected没有weights share。
2. 对于neuron的连接(点对点的连接)都是fully connected.(MLP)
3. Convolution中当filter size等于input size时,就是fully connected,此时的output size为1x1xN。
4. 当1x1不等于input size的时候,1x1一样具备weights share的能力。
但大家还是需要自己再去理解一下这个问题,仔细理解一下其中的道理。
本文为原创文章转载必须注明本文出处以及附上 本文地址超链接 以及 博主博客地址:http://blog.csdn.NET/qq_20259459 和 作者邮箱( jinweizhi93@gmai.com )。
(如果喜欢本文,欢迎大家关注我的博客或者动手点个赞,有需要可以邮件联系我)
1 0
- 深度学习 15. 全连接和区域连接,fully connected 和 local connected, 解释说明(最简单的解释)
- 用SVD压缩深度模型(DNN,CNN)的全连接层(fully-connected layer)
- 深度学习 1. CNN的构建和解释--最简单的CNN构造(LeNet-5)# By deepLearnToolbox-master
- 深度学习 1. CNN的构建和解释--最简单的CNN构造(LeNet-5)# By deepLearnToolbox-master
- RakNet学习(36) -- Fully Connected 2
- 深度学习论文(八)---DeepLabV1-SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED C
- dynamic connected图顶点连接情况+连线
- [socket] 断开连接时,time_wait状态的解释和验证:
- oracle官方文档对连接和会话的解释
- sql左连接 右连接 笛卡尔积 全连接 内连接一看就懂的解释
- 最简单的全连接神经网络实现
- TCP建立连接(三次握手)和释放(四次挥手)的详细解释
- NHibernate重要概念的解释和说明
- 说明符和转义字符的解释说明
- 一日一点RakNet(37)--Fully Connected 2
- fully connected layer as 1x1 convolution
- CS231n Assignment2--Fully-connected Neural Network
- GLSL和深度测试解释
- Git使用的一些bug及解决方法
- RBAC新解:基于资源的权限管理(Resource-Based Access Control)
- 删除文件及文件夹下文件
- 编写shellcode(vs2017)
- 浅谈Java SE、Java EE、Java ME三者的区别
- 深度学习 15. 全连接和区域连接,fully connected 和 local connected, 解释说明(最简单的解释)
- 【23种设计模式】之 目录
- 二二、函数调用模式案例
- 从外网访问内网服务器
- 怎么让self.view的Y从navigationBar下面开始计算
- jzoj 5086. 【GDOI2017第四轮模拟day1】数列 搜索+meet in the middle
- 日期格式转换
- angularjs和vuejs的区别
- eclipse j33 neon 简单配置