一、卷积神经网络的结构有哪些?
一般包含5种类型的网络层次结构:
输入层:卷积网络的原始输入,可以是原始或预处理后的像素矩阵
卷积层 :参数共享、局部连接,利用平移不变性从全局特征图提取局部特征
激活层 : 将卷积层的输出结果进行非线性映射
池化层:进一步筛选特征,可以有效减少后续网络层次所需的参数量
全连接层:负责对卷积神经网络学习提取到的特征进行汇总,将多维的特征输入映射为二维的特征输出,以低维度特征对应任务的学习目标(类别或回归值)
- 卷积层
- 一句话定义:
从全局特征图中提取局部特征。
- 卷积层尝试解决的问题是什么?
(1)保留输入形状,在高和宽两个方向上的相关性均能被有效识别。
(2)避免参数尺寸过大,通过滑动窗口将同一卷积核与不同位置的输入重复计算。
- 卷积层有哪些基本参数?
输入
核函数
特征映射(输出)
- 三个思想动机是什么?
卷积运算通过三个重要的思想来帮助改进机器学习系统:稀疏交互、参数共享、等量表示。
稀疏交互: 传统的神经网络使用矩阵乘法来建立输入与输出的连接关系,卷积通过核(核大小远远小于输入的大小)来减小存储和计算。
参数共享:指在一个模型的多个函数中使用相同的参数。卷积运算中的参数共享保证了我们只需要学习一个参数集合,而不是对于每一个位置都需要学习一个单独的参数集合。
平移等变:参数共享的特殊形式使得神经网络具有平移等变的性质,如果一个函数满足输入改变,输出也以同样的方式改变这一性质,我们就称之为等变。
- 卷积的主要参数有哪些?
卷积核大小:定义了卷积的感受野。在过去常设为5,现在多设为3,
感受野是输出特征图上的像素点对于原图的映射区域的大小,特征图上的一个点相对于原图的大小。
步幅:从左上方开始,从左到右、从上到下,依次在数组上滑动,将滑动的行数和列数称为步幅。
步幅的常见设置为1,表示滑窗距离为1,可以覆盖所有相邻位置的组合。下图在高上步幅为3,在宽上步幅为2。
填充(padding):在卷积核尺寸不能完美匹配输入的图像矩阵时需要进行一定的填充策略。
设置为SAME表示对不足卷积核大小的边界位置进行某种填充(通常零填充)以保证卷积输出维度与与输入维度一致;
设置为’VALID’时则对不足卷积尺寸的部分进行舍弃
在原输入高和宽的两侧分别添加了值为0的元素,使得输入高和宽从3变成了5,从而使得输出高和宽由2增加到4。
输入通道数
当输入数据包含多个通道时,我们需要构造一个输入通道数与输出通道数相同的核,从而能够与含多通道的输入数据做互相关运算。
输出通道数
我们可以理解多组卷积核作用在一个输入上,得到了多个输出通道。
指定卷积核的个数 若设置为与输入通道数一样的大小,可以保持输入输出维度的一致性;若采用比输入通道数更小的值,则可以减少整体网络的参数量。
6. 1×1卷积与什么等价?
输入和输出具有相同的高和宽,其作用与全连接层等价。
- 卷积核有什么类型?
标准卷积 | 最常用的卷积核,连续紧密的矩阵形式可以提取图像区域中的相邻像素之间的关联关系,3 × 3 的卷积核可以获得3 × 3 像素范围的感受视野 |
扩张卷积 | 引入一个称作扩张率(Dilation Rate)的参数,使同样尺寸的卷积核可以获得更大的感受视野,相应的在相同感受视野的前提下比普通卷积采用更少的参数。同样是3 × 3 的卷积核尺寸,扩张卷积可以提取5 × 5 范围的区域特征,在实时图像分割领域广泛应用 |
转置卷积(反卷积) | 反卷积是一种特殊的正向卷积,先按照一定的比例通过补padding来扩大输入图像的尺寸,接着旋转卷积核,再进行正向卷积。需要注意的是,反卷积本质是padding补0的卷积,而不是卷积的逆运算 |
可分离卷积 | 标准的卷积操作是同时对原始图像H × W × C三个方向的卷积运算,假设有K 个相同尺寸的卷积核,这样的卷积操作需要用到的参数为H × W × C × K 个; 若将长宽与深度方向的卷积操作分离出变为H × W 与C 的两步卷积操作,则同样的卷积核个数K,只需要( H × W + C ) × K 个参数,便可得到同样的输出尺度。 可分离卷积(Seperable Convolution)通常应用在模型压缩或一些轻量的卷积神经网络中,如MobileNet 、Xception |
二、激活层
激活函数也是神经网络不可缺少的部分,激活函数是用来加入非线性因素,提高网络表达能力,卷积神经网络中最常用的是ReLU,Sigmoid使用较少
三、池化层
池化层又称为降采样层(Downsampling Layer),作用是对感受域内的特征进行筛选,提取区域内最具代表性的特征,能够有效地降低输出特征尺度,进而减少模型所需要的参数量。
- 池化层的类别?
最大池化(Max Pooling):直接计算池化窗口内元素的最大值。
平均池化(Average Pooling):计算池化窗口内元素的平均。
求和池化(Sum Pooling):计算池化窗口内元素的和。
2. 卷积层和池化层的区别:
卷积层核池化层在结构上具有一定的相似性,都是对感受域内的特征进行提取,并且根据步长设置获取到不同维度的输出,但是其内在操作是有本质区别的
卷积层 | 池化层 | |
结构 | 零填充时输出维度不变,而通道数改变 | 通常特征维度会降低,通道数不变 |
稳定性 | 通常特征维度会降低,通道数不变 | 感受域内的细微变化不影响输出结果 |
作用 | 感受域内提取局部关联特征 | 感受域内提取泛化特征,降低维度 |
参数量 | 与卷积核尺寸、卷积核个数相关 | 不引入额外参数 |
3. 卷积层和池化层的特点:
- 卷积和池化作为无限强的先验,刻画了我们在看到数据之前认为什么样的模型是合理的概念。
- 可能会导致欠拟合,只有当先验的假设合理且正确是才有用。
当我们比较卷积模型的统计表现时,只能以基准中的其他卷积模型作为比较对象。
四、全连接层
将多维的特征输入映射为二维的特征输出
使用全连接层结构处理图像时会出现以下问题:
(1)输入图像需要将图像通过 Flatten 层拉成一维,这会导致丢失空间信息(像素位置和channel)
(2)全连接层考虑的是全局的信息,但在分类图像中,重要的是物体本身的局部信息
(3)对图像做分类时,会产生大量的参数,导致计算量过高。例如:对1000×1000 像素的图片,我们就需要处理3百万个参数。
五、批量归一化
批量归一化会让神经网络的训练变得更加稳定。
通常来说,数据标准化预处理模型对于浅层模型基本够用了,但是随着模型训练的进行,当每层中的参数更新时,靠近输出层的输出容易造成剧烈的变化,这种不稳定性令我们难以训练出有效的模型。
在模型训练时,批量归一化利用小批量上的均值和标准差,不断调整神经网络的中间输出,从而使整个神经网络在各层的中间输出的数值更加稳定。
批量归一化可以对全连接层做,也可以对卷积层做,两者方法略有不同。
批量归一化和丢弃层一样,在训练模式和预测模式下的均值方差不应该一样,因而结果也不同。
引用:https://blog.csdn.net/Heitao5200/article/details/104723212