全连接层的作用到底是什么?

全连接层的作用到底是什么?

全连接层的作用到底是什么?_第1张图片

爱的机器

百家号 17-03-11 08:32
全连接层的作用到底是什么?_第2张图片

在卷积神经网络尚未炽热的年代,人们运用haar/lbp + adaboost级连的组合方式检测人脸,hog+svm的组合方式检测行人。这种传统的目的检测办法一个认知上的优势就是: 模块的功用明白,划分得很明晰,契合人们的了解方式。其中,haar,lbp,hog等手工设计的特征提取算子用于提取特征,adaboost,svm用于对提取的特征分类。

而早期的全衔接神经网络,就是属于用于对提取的特征停止分类的模块,我们也能够同样将神经网络交换掉adaboost,svm用于分类。

后来将神经网络用于图像分类中,面对早期的小分辨率图片,我们照旧能够运用特征提取+神经网络分类的形式,也能够直接将每个像素点作为特征输入用于神经网络的分类。但面对后期的大分辨率图像,假如照旧运用逐像素点输入的方式,很明显将会招致全衔接中的权值过于稠密,形成模型锻炼的艰难。

而卷积神经网络中conv+relu(早期为sigmoid)+pooling(以下称三剑客)的组合,不只能够替代手工设计特征算子的繁琐,而且部分感受野+权值共享的设计思想也能防止全衔接网络中的种种弊端。此时人们将三剑客的组合视为特征提取的过程,假如依照早期人们特征提取+分类的设计思绪,那么分类运用全衔接的设计方式,就能够刚好完成了一个end-to-end的架构,也即早起卷积神经网络的原型。

但必需明白的是,固然模型完成了一个end-to-end的设计架构,能够直接用于锻炼和分类,但在人们的认知上,特征提取和分类仍然是分开的,也就是说三剑客用于特征提取,全衔接用于分类。

后来随着更优秀分类网络的呈现(alexnet,vgg等),人们不再仅仅满足于分类精确率的提升,面对动辄两三百M的模型,人们考虑能否减少模型的大小。人们经过研讨发现,在包含全衔接的网络中,全衔接的参数占领了一切参数中的大局部比例,这样使得精简全衔接参数变得刻不容缓。

于是一局部优秀的人们想到了运用svd等方式减少参数,另一局部优秀的人们开端考虑: 能否真的需求运用全衔接层,或者有无能够替代全衔接层的办法?

于是就呈现了如nin,squeezenet中,直接运用global average pooling的方式,直接替代全衔接层。人们发现不运用全衔接层,模型的检准率并没有降低,而模型的大小却极大的减少(当然了,也包括以上网络中其他模块优化的功绩,如1*1卷积的运用等)。

另一方面,同样在nin,以及用于图像分类的fcn中,人们发现运用1*1卷积,也能够到达与全衔接层同样的成效,仍然能保证同样的检准率(经评论区

@ 机器学习

的提示,1*1卷积的运用,比照fc并不能 减少模型参数,特此阐明)。

这时分人们就又开端重新考虑,全衔接层在卷积神经网络中真正的作用是什么了。于是就又有了

@ 魏秀参

答复中新的探究。

最后总结就是,卷积神经网络中全衔接层的设计,属于人们在传统特征提取+分类思想下的一种"迁移学习"思想,但在这种end-to-end的模型中,其用于分类的功用其实是被弱化了,而全衔接层参数过多的缺陷也鼓励着人们设计出更好的模型替代之到达更好的效果。同时,也将促进我们更深化地讨论其中的奥妙。

你可能感兴趣的:(全连接层的作用到底是什么?)