卷积神经网络CNN---NiN

NiN块的提出,主要是因为前面所提到的三个网络都含有全连接层。

在这里面含有一个很大的问题:每个卷积层的参数基本都是in*out*k*k,但是最后一个卷积到全连接层之间,有很大的参数。最大的问题是,这个容易带来过拟合。

卷积神经网络CNN---NiN_第1张图片

所以NiN的思想就是,不要全连接层。

一、NiN块

1、块介绍

卷积神经网络CNN---NiN_第2张图片

NiN 块以⼀个普通卷积层开始,后面是两个 1 × 1 的卷积层。这两个1 × 1 卷积层充当带有 ReLU 激活函数的逐像素全连接层。第⼀层的卷积窗口形状通常由用户设置。随后的卷积窗口形状固定为 1 × 1。

2、1*1卷积核:

卷积神经网络CNN---NiN_第3张图片

可以将1*1卷积核看成,每个像素位置应用的全连接层。

经过1*1运算后,不会改变图片的高和宽,只会改变通道数。比如上图,用到了两个通道kernel,所以输出的图片通道数就变成了2.

主要作用有以下几点:

1、降维。比如,一张500 * 500且厚度depth为100 的图片在20个filter上做1*1的卷积,那么结果的大小为500*500*20。

2、加入非线性。卷积层之后经过激励层,1*1的卷积在前一层的学习表示上添加了非线性激励,提升网络的表达能力;

3、增加模型深度。可以减少网络模型参数,增加网络层深度,一定程度上提升模型的表征能力。

二、NiN架构

没有全连接层,采用交替使用NiN块与步幅为2的最大池化层,最后使用全局平均池化层得到输出。

(全局平均池化:不以窗口的形式取均值,而是以feature map为单位进行均值化。即一个feature map输出一个值。也可以理解为一个通道输出一个值,有多少个通道就输出多少个值。)

卷积神经网络CNN---NiN_第4张图片

总共采用了四个NiN块,前三个NiN块跟的是maxpool ,最后一块NiN跟的是全局平均池化。

卷积神经网络CNN---NiN_第5张图片

 

三、参考资料

1、李沐《动手学深度学习》

2、http://t.csdn.cn/CJzv3

你可能感兴趣的:(深度学习,卷积神经网络)