的结构解读)
1. CNN的结构1.1 数据的矩阵格式-输入图像【样本数、高度、宽度、通道数】-输出图像【样本数、高度、宽度、通道数】-卷积核格式【高度、宽度、输入通道数、输出通道数】输入通道数是由图像决定的但是输出通道数是自己设计的输出通道数也叫卷积核的个数。描述卷积核时常采用下面的形式输出通道高度*宽度*输入通道数。一个卷积核对应一个偏置如果一个卷积核的尺寸是63*3*3那么这个卷积核的参数量6*3*3*311.2 卷积的过程当输入一张大小为8x8x3的彩色图时已经提前设计好了卷积核的输出通道为5即卷积核的个数为5【即五个偏置一个卷积核一个偏置】通道数的设计一般是实验后得到的较优结果。每个卷积核去和输入图像在通道上一一对应进行卷积操作步长为1填充为0得到了3个6x6的feature map。然后再将三个6x6的Feature map按照按元素位置相加进行通道融合得到最终的feature map大小为6x6也就是将得到的三个矩阵逐元素相加之后所有元素再加上该矩阵的偏置值得到新的6x6矩阵。每一个6*6特征图再经过全局池化变成1*1然后变成一维向量送入全连接层。1.3 卷积的特点1稀疏连接从卷积的过程可以看到3*3的卷积核每次滑动时只能覆盖到输入图像上的9个元素个数稀疏。2权重共享卷积核的某个输入通道在对应的图像输入通道上进行滑动时卷积核的权重是不变的这意味着对于该图像通道共享同一组权重值。权重共享意味着当前隐藏层中的所有神经元都在检测图像不同位置处的同一个特征即检测特征相同。因此也将输入层到隐藏层的这种映射称为特征映射。由上我们可以理解从某种意义上来说通道就是某种意义上的特征图。输出的同一张特征图上的所有元素共享一个卷积核即共享一个权重。通道中某一处特征图上某一个神经元数值的大小就是当前位置对当前特征强弱的反应。而为什么在CNN网络中我们会增加通道数目其实就是在增加通道的过程中区学习图像的多个不同特征。如果用图像处理上的专业术语可以将卷积叫做锐化。卷积其实是想要强调某些特征然后将特征强化后提取出来不同卷积核关注图片上不同的特征比如有的更关注边缘而有的更关注中心地带等1.4 1 * 1卷积1x1卷积的唯一计算也正是发生在通道上。它通过改变1x1卷积核的数量实现了多通道的线性叠加使得不同的feature map进行线性叠加。我们可以将1x1卷积层看做是每个像素位置应用的全连接层。可以对输出通道进行升维或者降维并且不改变图像尺寸的大小有利于跨通道的信息交流的内涵。2. 卷积块卷积块通常 卷积层 激活函数 池化层卷积层由输出通道个卷积核组成如2565*5*3中的256卷积核输入通道数与上一级的输出通道数保持一致卷积层、池化层、全连接层的作用卷积层特征提取池化层数据降维全连接层分类。全连接层之前的层的作用是将原始数据映射到隐藏空间来提取特征。即高度提取特征最后送入分类器。3. 卷积运算卷积输出 输入 卷积 卷积核其尺寸的计算公式为特殊情况若kernel3,padding1,stride1则输出图像的尺寸和输入图像的尺寸一样4. 激活函数激活函数是个非线性函数常用于卷积层和全连接层输出的每个神经元给神经元引入了非线性因素使网络的表达能力更强几乎可以逼近任意函数5. 池化层下采样、降维、避免数据过拟合池化层的三个作用一是降低卷积层对目标位置的敏感度即实现局部平移不变性当输入有一定的平移时经过池化后输出不会发生改变。CNN通过引入池化使得其特征提取不会因为目标位置变化而受到较大的影响。二是降低对空间降采样表示的敏感性三是能够对其进行降维压缩以加快运算速度 防止过拟合。设输入图像尺寸为WxHxC宽x高x深度卷积核的尺寸为FxFS步长则池化后图像的大小为6. 池化后的全连接层7. 感受野的计算感受野的定义输出特征图上的一个像素点对应着原始图像上区域的大小。计算感受野由后一层向前一层递推相当于是由输入图像经过卷积核得到输出尺寸的逆运算即求input 2*padding的值注文中内容有参考下面的链接一文带你了解CNN(卷积神经网络)(卷积输出)