为什么“卷积”神经网络

一直在接触卷积神经网络,今天就说一下为什么会有卷积卷积会带来什么好处CNN中如何使用卷积

为什么会有卷积

(这里主要解释下卷积具有什么意义,为什么人们会想到卷积。有些人一提到卷积可能首先想起来的是局部连接、参数共享呀等等,这些只是它带来的好处。如果一个方法对于我们的问题本身没有什么意义,即使它会带来一大堆的好处人们应该也是不会去使用的。)

19世纪60年代,科学家通过对猫的视觉皮层细胞研究发现,每一个视觉神经元只会处理一小块区域的视觉图像,即感受野(Receptive Field)。卷积神经网络的概念即出自于此。简单说这样做保留了图像的空间信息

在卷积神经网络中,一个卷积层可以有多个不同的卷积核(也可以说是滤波器),而每个卷积核在输入图像上滑动且每次只处理一小块图像。这样输入端的卷积层可以提取到图像中最基础的特征,比如不同方向的直线或者拐角;接着再组合成高阶特征,比如三角形、正方形等;再继续抽象组合,得到眼睛、鼻子和嘴等五官;最后再将五官组合成一张脸,完成匹配识别。即每个卷积层提取的特征,在后面的层中都会抽象组合成更高阶的特征。

图像具有很强的空间相关性。其中每一个卷积核滤波得到的图像就是一类特征的映射,即一个Feature Map。和SIFT算法等类似,CNN训练的模型同样对缩放、平移、旋转等具有不变性(关于这一块,参考:卷积神经网络提取图像特征时具有旋转不变性吗?, 池化,有着很强的泛化能力。

卷积会带来什么好处

卷积层的两个要点:局部连接(Local Connection)权值共享(Weight Sharing)

局部连接:每个神经元只与上一层的一个局部区域连接,该连接的空间大小叫做神经元的感受野(receptive field)。
权值共享:当前层在深度方向上每个channel的神经元都使用同样的权重和偏差。这里作了一个合理的假设:如果一个特征在计算某个空间位置(x,y)的时候有用,那么它在计算另一个不同位置(x2,y2)的时候也有用。

局部连接和权值共享降低了参数量,使训练复杂度大大下降,并减轻了过拟合。同时权值共享还赋予了卷积网络对平移的容忍性。

(简单提一下,卷积神经网络中一般还包含有池化层(Pooling)。池化层的降采样输出参数量,并赋予了模型对轻度形变的容忍性,提高了模型的泛化能力。)

CNN中如何使用卷积

在卷积层种有3个超参数控制着输出数据体的尺寸:深度(depth),步长(stride)和零填充(zero-padding)。不再赘述。
下面给个LeNet-5模型的卷积参数量,可以看到它比全连接少了许多。网址:http://yann.lecun.com/exdb/lenet/
这里写图片描述
(手写为每一个卷积层的参数计算)

参考:
CS231n课程笔记翻译:卷积神经网络笔记
黄文坚《TensorFlow实战》5.1节 卷积神经网络简介

发布了419 篇原创文章 · 获赞 248 · 访问量 125万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章