NIN:Network In Network

通过引入子网络结构代替纯卷积中的线性映射部分,替换传统卷积模式 (卷积+激活+Dropout)的卷积方式;结尾使用全局池化替代 Dropout,提高泛化能力的同时,减小网络

什么是NIN?

  • Network In Network (NIN)以一种全新的角度审视了卷积神经网络中的卷积核设计,通过引入子网络结构代替纯卷积中的线性映射部分, 替换传统卷积模式 (卷积+激活+Dropout)的卷积方式;结尾使用全局池化替代 Dropout,提高泛化能力的同时,减小网络

NIN的网络结构?

  • NIN包括3层mlpconv layer+1层全局池化(Global Pooling)
  • 在网络推理(inference)时,这个多层感知器会对输入特征图的局部特征进行划窗计算,并且每个划窗的局部特征图对应的乘积的权重是共享的,这两点是和传统卷积操作完全一致的,最大的不同在于多层感知器对局部特征进行了非线性的映射,而传统卷积的方式是线性的

NIN的损失函数?

  • 网络分类层前一层为6x6x1000,对其进行全局池化(Global Pooling) 后,生成1000长度的一维向量,最后使用交叉熵损失(CrossEntropyLoss) 计算损失

mlpconv layer的原理?

  • 在不存在mlp层是,卷积层如图绿色线进行计算,加入mlp层后,如何人理解红色线?

  • 上图标准卷积的输出是55x55x96,经过mlp加工后,输出仍然是55x55x96。mlp的计算过程如下图,mlp连接1个卷积核大小(实际上没有卷积核计算,全连接直接连接像素)内每个位置特征,对其进行加权处理后,得到1个值,当卷积核扫描完之后,得到和55x55长度的特征

mlp连接卷积层的输入与输出特点

  • 输入为一个feature map, 输出为一个feature map 时

  • 输入为多个feature map, 输出为一个feature map 时

  • 输入为多个feature map, 输出为多个feature map 时

  • 在Mlpconv中,不同的 feature map 之间的开头与能结尾之间的权值不一样,而在隐含层之间的权值是共享的;通过后面两张图可知,全连接的作用很像深度可分离卷积(depthwise separable convolution) 中的pointwise(1x1卷积) ,即使用同一个权重,整合不同特征图上的信息到同一张特征图上,所以实现时,使用1x1卷积替代全连接

  • mlpconv层的Pytorch实现:实际上就是卷积层+2个1x1卷积

全连接嵌套在中间,输入shape是不定的,如何确保全连接对上CNN输出?

  • 全连接每次计算不是接上一层的所有 featrue map,而是连接固定大小搜索框的所有像素,所以其输入大小是固定的

卷积层和广义线性模型(GLM) 的关系?

  • 标准卷积(Convolution) 的滤波器对一个接收域做卷积时,卷积核对其进行加权求和,然后接一个激活函数,这样的操作做可以看作是广义线性模型(GLM)
  • 对于线性可分的问题来说,CNN或许可以提取特征,但是对更复杂问题就无能为力了

NIN如何使用全局池化?

  • 一般来说,卷积神经网络会使用全连接层作为分类层,而NIN在最后的分类层使用全局池化(Global Pooling) ,如分类层前的输出是6x6x10,全连接作为分类层时,首先是将特征展平为6x6x10=360长度的特征,然后再使用全连接;而全局池化直接对10个特征图进行池化,得到10个值,作为10分类分类的概率
  • 使用全局池化后,NIN网络比使用全连接作为分类层模型效果更好

NIN全局池化分类的特张图有什么特点?

  • 上图横向为示例图片,纵向为每个图最后一层mlpconv的输出(6x6x10),输入全局池化(Global Pooling) 前,通过上图看不同图片对应每个类别的响应位置
  • 可以看出,响应位置集中在标签附近 (对角线)

相比较LeNet、AlexNet和VGG,NiN有什么不同?

  • LeNet、AlexNet和VGG都有一个共同的设计模式:通过一系列卷积和池化层利用空间结构提取特征,然后通过完全连接层对表示进行后处理,AlexNet和VGG对LeNet的改进主要在于这些后期网络如何扩展和深化这两个模块
  • NIN提供了另一种选择。它们是基于一个非常简单的观点提出的:在每个像素的通道上分别使用MLP

NiN比较AlexNet有什么提升?

  • 采用较少参数就取得了 AlexNet 的效果,AlexNet参数大小为 230M,而 Network In Network 仅为 29M
  • Network In Network 通过创新的创建 MLP 卷积层,提高了网络的非线性表达同时降低了参数量,用全局均值池化代替全连接层,极大的降低了参数量

NiN与VGG比较有什么差异?

  • NiN 块由一个卷积层和两个卷积层组成1×11×1卷积层充当具有 ReLU 激活的每像素全连接层