读Going Deeper with Convolutions这篇论文的时候总是感到一头雾水,此文的目的就是想给这篇论文一个导读,给读者一个清晰的视角,了解到GoogleNet到底是什么,做了什么,怎么做到的。就像读龙书时候不知道他在搞什么,看完导论之后就变得清晰有抓手,当然不包好高手大佬们。此文的用意或者意图就是这点,力求准确,误导读者是笔者不希望看到的,如果有还望指正。
Going Deeper with Convolutions这句话是出自一部电影,这里的deeper有两个含义,一个是它引入了Inception架构相比于传统网络中的单元更加复杂更加深刻,另一个就是基于对计算资源利用效率的提高,神经网络在规模上可以更大、更深,既包含层数更多,深度的加深,也包含在切面、横向上单元数量的增加。
Inception这个词的翻译是开端、创始,我们很难顾名思义去想inception架构是怎么回事因为它只是一个代号,源自 Network in network 这篇论文,它主要的特点就是改善了网络内部计算资源的利用,基于精心的设计,可以在增大网络宽度和深度的同时保持计算资源预算恒定,这种做法的根据是赫布理论和多尺度信息处理。
赫布理论是一个神经科学、生物学的理论,它的原意是这样的:我们可以假定,反射活动的持续与重复会导致神经元稳定性的持久性提升……当神经元A的轴突与神经元B很近并参与了对B的重复持续的兴奋时,这两个神经元或其中一个便会发生某些生长过程或代谢变化,致使A作为能使B兴奋的细胞之一,它的效能增强了。
神经网络架构Inception的主要创意就是基于用密集模块去近似出局部最优稀疏结构。这里用到了不同层级之间的统计学关联,对,统计学关联,假设从输入图像一层开始每一层之间都是有关系、有相互作用的,逐层类推,一层一层的构建,直到尽头。
在卷积层中同时引用了 Network in network 的1×1卷积核,进行降维、减少参数数量、增加非线性、增加模型深度。
原始Inception module(未引入降维)
利用1×1卷积核降维的Inception module
GoogleNet网络
对网络结构的概括介绍如下:
• An average pooling layer with 5⇥5 filter size and stride 3, resulting in an 4⇥4⇥512 output for the (4a), and 4⇥4⇥528 for the (4d) stage.
•A 1⇥1 convolution with 128 filters for dimension reduction and rectified linear activation.
• A fully connected layer with 1024 units and rectified linear activation.
• A dropout layer with 70% ratio of dropped outputs.
• A linear layer with softmax loss as the classifier (predicting the same 1000 classes as the main classifier, but removed at inference time).
因为能力和时间的限制我们先写到这里,更多更深刻的内容还是有待从原文中汲取,谢谢!