深度学习笔记(4):1.11 为什么要使用卷积运算?

1.11 为什么要使用卷积(why convolutions?)

首先直观上,使用卷积比全连接网络少很多参数,如下图所示:

深度学习笔记(4):1.11 为什么要使用卷积运算?_第1张图片

对于32*32*3的图像,令f=5,使用6个filter,参数值为5*5*6+6=156个参数,权重参数个数为5*5*6,偏差为6个,所以是156。但是全连接会产生多少个参数呢?将这两个图片都flatten成向量,分别是3072维和4704维向量,这时使用全连接就会有3072*4704约为14m的权重需要我们估计,而32*32*3这个图片也不是很大,所以不一定能很好估计这么多参数。很少的参数以便我们可以使用较小的训练集来训练,有利于预防过拟合。 

针对于全连接网络,使用卷积的优点其实有两条:参数共享(parameter sharing)和稀疏连接(sparsity connection)。如下图所示:

深度学习笔记(4):1.11 为什么要使用卷积运算?_第2张图片

什么是参数共享(parameter sharing)?表面上直接来看就是因为卷积运算就是filter同原图中各个部分进行运算,所以它们共用了同一部分参数,这就是参数共享,但实际上这样做是因为合理性,因为filter作用就是特征探测器,通过卷积运算得到一些低阶或者高阶特征,而这些特征一般是整个图都有可能存在的,比如垂直边缘检测,图片中垂直线条可能存在与图片中的多个位置,所以这样共享参数的想法也是非常合理的,这也是卷积在CV中效果很好的原因。

还有一个就是稀疏连接(sparsity connection),不同于全连接,每一个输出都是由所有特征组合得到的结果,卷积运算得到的结果仅仅是九宫格的运算结果,比如上图中输出结果中(1,1)位置的0,仅仅是由左上角的九宫格同filter运算得到的结果,与其他部分的数值完全没有关系,这就叫稀疏连接。

同样,CNN善于捕捉平移不变性,即即使图片向右移动两个像素,图片中的猫依旧清晰可见,CNN还是可以正确判断是猫,因为卷积运算,即使移动几个像素也会得到非常相似的特征,输出标签很大可能相同。这可能就是卷积或者CNN在计算机视觉中表现比较好的原因。

接下来再看一下完整的流程,如下图所示:

深度学习笔记(4):1.11 为什么要使用卷积运算?_第3张图片

假设我们的训练集包括特征和指标,是否是猫或者是别的,对应二分类或多分类问题。首先输入是一个猫图片,然后使用CONV或者POOL,接着使用FC,最后使用softmax多分类得出\widehat{y},损失函数还是我们以前说过的,如上图所示,然后使用GD或者Adam等优化算法去求解参数来优化损失函数J。

 

你可能感兴趣的:(深度学习,parameter,sharing,sparsity,connection)