目的:
改进CNN,可以学习到更加抽象和有效的非线性特征
常规卷积层: conv→relu
- conv: conv_out=∑(x·w)
- relu: y=max(0, conv_out)
maxout: several conv(full)→max
- maxout:一种激活函数形式
- several conv (full): conv_out1 = x·w_1, conv_out2 = x·w_2, …
- max: y = max(conv_out1, conv_out2, …)
- 线性变化+Max操作可以拟合任意的的凸函数
NIN: serveral conv(full)→relu→conv(1x1)→relu
- several conv (full): conv_out1 = x·w_1, conv_out2 = x·w_2, …
- relu: relu_out1 = max(0, conv_out1), relu_out2 = max(0, conv_out2), …
- conv(1x1): conv_1x1_out = [relu_out1, relu_out2, …]·w_1x1
- relu: y = max(0, conv_1x1_out)
- NIN想表明:不仅能够拟合任何凸函数,而且能够拟合任何函数,因为它本质上可以说是一个小型的全连接神经网络
1.MLP Convolution Layers
-
mlpconv网络层替代传统的convolution层
-
mlpconv网络层:卷积 + 传统的mlp(多层感知器)
-
在跨通道(cross channel,cross feature map)情况下,mlpconv 等价于 卷积层 + 1×1卷积层
-
1×1卷积层 实现多个feature map的线性组合,实现跨通道的信息整合
CNN高层特征是低层特征通过某种运算的组合
在每个局部感受野中进行更加复杂的运算(包含一个微型的多层网络),提高非线性
同一层中,不同特征层之间(每一层之间的特征提取又加上了一个小的神经网络。)
2.Global Average Pooling
替代全连接层,减少参数
feature map数量等于category数量
- 传统:卷积出现在底层网络,最后一个卷积层的特征图通过量化送到全连接,接一个softmax逻辑回归分类层
(特征提取+传统网络) - 优化:卷积之后,对每个特征图一整张图片进行全局均值池化,这样每张特征图都可以得到一个输出。
(每张特征图相当于一个输出特征,表示输出类的特征。) - 特点:强化特征图与类别的关系,没有参数需要进行优化
3.补充
- 仿射特征图(affine feature maps):是直接由线性卷积得到的特征图,没有通过激活函数进行非线性映射。
4.重点知识
- 1×1卷积核:
(1)一个通道:同一个w去乘以原图像上的每一个像素点,相当于做了一个scaling
(2)多个通道:实现跨通道的交互和信息整合
(卷积操作本身就可以做到各个通道的重新聚合的作用)
(3)卷积时:11* 11* 3* 96(11*11的卷积kernel,输出map 96个)对于一个patch输出96个点,是输出feature map同一个像素的96个channel,但是现在多加了一层MLP,把这96个点做了一个全连接,又输出了96个点——很巧妙,这个新加的MLP层就等价于一个1 * 1 的卷积层
(4)1 * 1的卷积可以看作是 对 每个feature map 对应的 相关 patch 做全连接(加权求和) - the author’s goal was to generate a deeper network without simply stacking more layers.
It replaces few filters with a smaller perceptron layer with mixture of 1x1 and 3x3 convolutions. In a way,
it can be seen as “going wide” instead of “deep”,