CNN的概念
卷积神经网络(Convolutional Neural Networks / CNNs / ConvNets)与普通神经网络非常相似,它们都由具有可学习的权重和偏置常量(biases)的神经元组成。每个神经元都接收一些输入,并做一些点积计算,输出是每个分类的分数。
CNN的结构层次
基础的CNN由卷积(convolution), 激活(activation), and 池化(pooling)三种结构组成。CNN输出的结果是每幅图像的特定特征空间
卷积层:
首先,介绍卷积的定义。卷积是通过两个函数f 和g 生成第三个函数的一种数学算子。在这里就是指的卷积核和输入项进行运算得到新的输出项。
卷积结果计算公式
激活映射(特征映射):如果输入的是一个32×32×3的像素值数组,过滤器(有时候也被称为神经元(neuron)或核(kernel))作用于感受野(receptive field),过滤器是一个数组(其中的元素被称为权重或参数),重点在于过滤器的深度必须与输入内容的深度相同(这样才能确保可以进行数学运算),因此过滤器大小为 5 x 5 x 3。过滤器首先在图像左上角,向右以每次一个像素滑动,每次滑动前过滤器中的值会与图像中的原始像素值相乘(又称为计算点积)。这些乘积被加在一起得到一个数。由于这种过滤器能得到28×28个结果,因此结果可以表示为一个28×28的数组。
当我们使用两个而不是一个 5 x 5 x 3 的过滤器时,输出总量将会变成 28 x 28 x 2。采用的过滤器越多,空间维度( spatial dimensions)保留得也就越好。每个卷积核检验的特征不同。
原文链接:https://blog.csdn.net/Allmyg/article/details/120100667
池化层
池化(pooling),是一种降采样操作(subsampling),主要目标是降低feature maps的特征空间,或者可以认为是降低feature maps的分辨率。因为feature map参数太多,而图像细节不利于高层特征的抽取。
全连接层
全连接层相当于一个“分类器”,起到对整个图像进行一个特征提取的作用
全连接层和卷积层可以相互转换:
对于任意一个卷积层,要把它变成全连接层只需要把权重变成一个巨大的矩阵,其中大部分都是0 除了一些特定区块,而且好多区块的权值还相同
相反地,对于任何一个全连接层也可以变为卷积层。比如,一个K=4096的全连接层,输入数据体的尺寸是7∗7∗512,这个全连接层可以被等效地看做一个F=7,P=0,S=1,K=4096的卷积层。换言之,我们把 filter size 正好设置为整个输入层大小
特征图
在每个卷积层,数据都是以三维形式存在的。你可以把它看成许多个二维图片叠在一起,其中每一个称为一个特征图。在输入层,如果是灰度图片,那就只有一个特征图;如果是彩色图片,一般就是3个特征图(红绿蓝)。
应用领域
卷积神经网络为图像而生,但应用不限于图像。在图像处理任务上,卷积神经网络可以用来识别位移、缩放及物体形态扭曲的二维图形。一方面,由于其网络模型中的特征是通过训练数据集进行图像特征学习,从而避免了显式地特征抽取;另一方面,由于图像上同一特征映射面上的神经元权值相同,所以卷积神经网络模型可以并行训练,极大地提高神经网络的训练时长。此外,与神经元彼此相连的神经网络(如传统的人工神经网络)相比,卷积神经网络模型的组织方式特殊,其结构模型更易于理解和分析。
原文链接:https://blog.csdn.net/weixin_54446335/article/details/120041578