CNN卷积神经网络总结

自我对卷积神经网络的认识

从输入到输出,我们输入的数据要经历卷积层,**层,池化层等反复数据转换,最后通过全连接层,输出的数据以最大的概率来判断与标签的符合程度。

1.1卷积层

卷积层是用来提取信息的特征。该处理过程让我想起了离散傅里叶变换,将时域信号转换到频域,再通过观察频域的频谱图,分析出信号的特点。同样的,多个卷积核,会得到多个特征图,就拿一张猫咪图来说,它的多征图不会是具象的,是一些抽象的图。如果我们还想着猫的具象图,会很难理解这样的变换,怎么是一些看不懂的图,但这时候我们就应该考虑到它已经经过卷积处理了,从一种状态转变到了另一种状态,从新的视角去看待它。

记录一下卷积层涉及的计算
(1)单核卷积后的信号大小
CNN卷积神经网络总结
N指的是输入信号分辨率大小,F指的是卷积核的大小,stride即S指的是卷积核做完运算后滑动的步长。
公式(N - F) / S + 1 = 卷积后信号的大小。
如图举例N=7,F=3,S=1 ,卷积后信号的大小为55。 由于通常卷积核不止一个,所以大小还得 55卷积核个数。
CNN卷积神经网络总结
另一种情况,边界含填充0,P指的是向边界周围填充的像素圈数
公式(N+P
2 - F) / S + 1 = 卷积后信号的大小。
(2)卷积后的参数个数
还是借用这个举例N=7,F=3,S=1,
每一个卷积滤波器得到的参数个数= FF信号的深度+1个偏置项。信号深度,比如彩色图像,有RGB三个信号通道,信号深度就为3.。
卷积层参数个数=单个卷积所得参数 * 卷积滤波器的个数

1.2**层

CNN卷积神经网络总结
**层的作用是过滤掉一些数据,不使数据饱和,同时提高了计算的有效性,能够加速收敛。

1.3 池化层

池化层来源于英文pooling layer,它的作用是downsample,下采样,缩小数据量。下采样是什么,举个例子,猫的高清原图和它的缩略图,原图通过下采样得到了缩略图,这期间原图的高分辨率变为了低分辨率,精细的图像变得粗糙,但缩略图还是呈现着原图的表达的特征,猫还是猫,只是模糊了一些。

1.4全连接层

这一层的作用可以说是将前期提取互不影响的信号特征,以结合的方式将多个信号组合在一起,这个组合可能是信号1跟信号3组合成结合体A,信号2跟信号3,信号4组合成结合体B,依次类推,出现了多个不同的组合。
该层通常是由1*1的卷积核得到,这个全连接层一般不止一层,需要多次卷积,然后通常再使用softmax函数,将一些输入映射为0-1之间的实数,并且归一化保证和为1,也就是将输入数值大小转化为概率大小,以概率大小作为分类的准则。不同的组合以概率排序,第一名的结果为最有可能的识别结果。

说明该文如有错误,恳请指出,立马订正。其次该文中有一些资料来自斯坦福大学的课程CS231N