本文由多篇博客总结整理而成,参考博客见文末,侵删。
目录
-
首先,什么是CNN
--------------------------------------------------------
卷积神经网络关键在于”卷积”二字, 在通信中, 卷积是对输入信号经过持续的转换, 持续输出另一组信号的过程.
解释上图:通过卷积生成新函数。输入是固定的蓝色方框和红色框,红色框滑动作为滑动窗口,输出的黑线,代表的是滑动窗口与蓝色框的重叠面积。
------------------------------------------------------------
CNN对输入的处理与上面类似,在输入上利用块单位(n*n)来提取特征,使得高维图片降维。
上图中,通过卷积核的卷积操作,最终得到降维后的图片(特征)。
--------------------------
或者从神经网络连接结构的角度来展示。
在上图中,CNN的hidden layer (绿色字母A)跟input layers(蓝色圆圈)不再是全连接,而是局部区域成块连接。一个hidden单元照顾一部分的input units。
我们也可以加入更多的hidden layer (紫色字母B),聚集出更大的块,以学到与ground truth更为相似的结果。
但由于加入了更多的单元,会导致整个网络隐藏层参数增多(每个相邻的输入x,都在上层生成了一个大块),训练时易造成过拟合的状况。所以为了减少参数的复杂度,不再严格要求相邻块至少聚合到一个上层块,可以将下层块分一些区域,在这些区域聚合--这是Pooling的直观作用。
红色的max,即为max pooling池化层,把小的块分割成一个个池子,也就是大块,具体如下所示。
可以看一下2D图像上有无pooling的效果:
显然后者参数更少,更不容易发生过拟合。
-
什么是Pooling