当前位置: 代码迷 >> 综合 >> CS231n:卷积神经网络
  详细解决方案

CS231n:卷积神经网络

热度:75   发布时间:2024-01-04 12:14:22.0

文章目录

  • 卷积神经网络的组成层
  • 卷积在图像中的直观作用
  • 卷积层的基本参数
  • 卷积层和池化层的区别

卷积神经网络是一种用来处理局部和整体相关性的计算网络结构。被应用在图像识别、自然语言处理甚至是语音识别领域,因为图像数据具有显著的局部与整体关系,卷积神经网络在图像识别领域的应用获得了巨大的成功。

卷积神经网络的组成层

以图象分类人物为例,CNN一般包含5种类型的网络层次结构:

CNN层次结构 输出尺寸 作用
输入层 W 1 × H 1 × 3 W_1\times H_1\times 3 W1?×H1?×3 卷积网络的原始输入,可以是原始或预处理后的像素矩阵
卷积层 W 1 × H 1 × K W_1\times H_1\times K W1?×H1?×K 参数共享、局部连接,利用平移不变性从全局特征图提取局部特征
激活层 W 1 × H 1 × K W_1\times H_1\times K W1?×H1?×K 将卷积层的输出结果进行非线性映射
池化层 W 2 × H 2 × K W_2\times H_2\times K W2?×H2?×K 进一步筛选特征,可以有效减少后续网络层次所需的参数量
全连接层 ( W 2 ? H 2 ? K ) × C (W_2 \cdot H_2 \cdot K)\times C (W2??H2??K)×C 将多维特征展平为2维特征,通常低维度特征对应任务的学习目标(类别或回归值)
  • W 1 × H 1 × 3 W_1\times H_1\times 3 W1?×H1?×3对应原始图像或经过预处理的像素值矩阵,3对应RGB图像的通道。
  • K K K表示卷积层中卷积核(滤波器)的个数。
  • W 2 × H 2 W_2\times H_2 W2?×H2? 为池化后特征图的尺度,在全局池化中尺度对应 1 × 1 1\times 1 1×1
  • ( W 2 ? H 2 ? K ) (W_2 \cdot H_2 \cdot K) (W2??H2??K)是将多维特征压缩到1维之后的大小, C C C对应的则是图像类别个数。

输入层?通常是输入卷积神经网络的原始数据或经过预处理的数据。可以是图像识别领域中原始三维的多彩图像,也可以是音频识别领域中经过傅利叶变换的二维波形数据,甚至是自然语言处理中一维表示的句子向量。对于图像分类任务,输入通常为 H × W × 3 H\times W\times 3 H×W×3的像素矩阵。卷积网络会将输入层的数据传递到一系列卷积、池化等操作进行特征提取和转化,最终由全连接层对特征进行汇总和结果输出。根据计算能力、存储大小和模型结构的不同,卷积神经网络每次可以批量处理的图像个数不尽相同,若指定输入层接收到的图像个数为 W W W,则输入层的输出数据为 N × H × W × 3 N\times H\times W\times 3 N×H×W×3

卷积层?通常用作对输入层输入数据进行特征提取,通过卷积核矩阵对原始数据中隐含关联性的一种抽象。卷积操作原理上其实是对两张像素矩阵进行点乘求和的数学操作,其中一个矩阵为输入的数据矩阵,另一个矩阵则为卷积核(滤波器或特征矩阵),求得的结果表示为原始图像中提取的特定局部特征。表示卷积操作过程中的不同填充策略,上半部分采用零填充,下半部分采用有效卷积(舍弃不能完整运算的边缘部分)。

激活层?负责对卷积层抽取的特征进行激活,由于卷积操作是由输入矩阵与卷积核矩阵进行点乘求和的线性变化关系,需要激活层对其进行非线性的映射。激活层主要由激活函数组成,即在卷积层输出结果的基础上嵌套一个非线性函数,让输出的特征图具有非线性关系。卷积网络中通常采用ReLU来充当激活函数(还包括tanh和sigmoid等)ReLU的函数形式如下公式所示:
f ( x ) = { 0 if  x &lt; 0 x if  x ≥ 0 f(x)=\begin{cases} 0 &amp;\text{if } x&lt;0 \\ x &amp;\text{if } x\ge 0 \end{cases} f(x)={ 0x?if x<0if x0?

池化层?又称为降采样层,作用是对感受域内的特征进行筛选,提取区域内最具代表性的特征,能够有效地降低输出特征尺度,进而减少模型所需要的参数量。按操作类型通常分为最大池化平均池化求和池化,它们分别提取感受域内最大、平均与总和的特征值作为输出,最常用的是最大池化。

全连接层?负责对卷积神经网络学习提取到的特征进行汇总,将多维的特征输入映射为二维的特征输出,高维表示样本批次,低位常常对应任务目标。

卷积在图像中的直观作用

  • 在卷积神经网络中,卷积常用来提取图像的特征,但不同层次的卷积操作提取到的特征类型是不相同的。
卷积层次 特征类型
浅层卷积 边缘特征
中层卷积 局部特征
深层卷积 全局特征
  • 图像与不同类型卷积核的卷积可以实现边缘检测锐化模糊等操作。下表显示了应用不同类型的卷积核(滤波器)后的卷积图像。
卷积作用 卷积核 卷积后图像
输出原图 [ 0 0 0 0 1 0 0 0 0 ] \begin{bmatrix} 0 &amp; 0 &amp; 0 \\ 0 &amp; 1 &amp; 0 \\ 0 &amp; 0 &amp; 0 \end{bmatrix} ???000?010?000???? [外链图片转存失败(img-LeqI35nE-1565340144772)(./img/ch5/cat.jpg)]
边缘检测(突出边缘差异) [ 1 0 ? 1 0 0 0 ? 1 0 1 ] \begin{bmatrix} 1 &amp; 0 &amp; -1 \\ 0 &amp; 0 &amp; 0 \\ -1 &amp; 0 &amp; 1 \end{bmatrix} ???10?1?000??101???? [外链图片转存失败(img-1d5y99ra-1565340144773)(./img/ch5/cat-edgeDetect.jpg)]
边缘检测(突出中间值) [ ? 1 ? 1 ? 1 ? 1 8 ? 1 ? 1 ? 1 ? 1 ] \begin{bmatrix} -1 &amp; -1 &amp; -1 \\ -1 &amp; 8 &amp; -1 \\ -1 &amp; -1 &amp; -1 \end{bmatrix} ????1?1?1??18?1??1?1?1???? [外链图片转存失败(img-Qbm8smUM-1565340144776)(./img/ch5/cat-edgeDetect-2.jpg)]
图像锐化 [ 0 ? 1 0 ? 1 5 ? 1 0 ? 1 0 ] \begin{bmatrix} 0 &amp; -1 &amp; 0 \\ -1 &amp; 5 &amp; -1 \\ 0 &amp; -1 &amp; 0 \end{bmatrix} ???0?10??15?1?0?10???? [外链图片转存失败(img-JTDWAFru-1565340144777)(./img/ch5/cat-sharpen.jpg)]
方块模糊 [ 1 1 1 1 1 1 1 1 1 ] × 1 9 \begin{bmatrix} 1 &amp; 1 &amp; 1 \\ 1 &amp; 1 &amp; 1 \\ 1 &amp; 1 &amp; 1 \end{bmatrix} \times \frac{1}{9} ???111?111?111????×91? [外链图片转存失败(img-t05tb37k-1565340144778)(./img/ch5/cat-boxblur.jpg)]
高斯模糊 [ 1 2 1 2 4 2 1 2 1 ] × 1 16 \begin{bmatrix} 1 &amp; 2 &amp; 1 \\ 2 &amp; 4 &amp; 2 \\ 1 &amp; 2 &amp; 1 \end{bmatrix} \times \frac{1}{16} ???121?242?121????×161? [外链图片转存失败(img-MKOsV5Uj-1565340144779)(./img/ch5/cat-blur-gaussian.jpg)]

卷积层的基本参数

卷积层中需要用到卷积核(滤波器或特征检测器)与图像特征矩阵进行点乘运算,利用卷积核与对应的特征感受域进行划窗式运算时,需要设定卷积核对应的大小、步长、个数以及填充的方式。下表为卷积层的基本参数:

参数名 作用 常见设置
卷积核大小 (Kernel Size) 卷积核的大小定义了卷积的感受野 在过去常设为5,如LeNet-5;现在多设为3,通过堆叠 3 × 3 3\times3 3×3的卷积核来达到更大的感受域
卷积核步长 (Stride) 定义了卷积核在卷积过程中的步长 常见设置为1,表示滑窗距离为1,可以覆盖所有相邻位置特征的组合;当设置为更大值时相当于对特征组合降采样
填充方式 (Padding) 在卷积核尺寸不能完美匹配输入的图像矩阵时需要进行一定的填充策略 设置为’SAME’表示对不足卷积核大小的边界位置进行某种填充(通常零填充)以保证卷积输出维度与与输入维度一致;当设置为’VALID’时则对不足卷积尺寸的部分进行舍弃,输出维度就无法保证与输入维度一致
输入通道数 (In Channels) 指定卷积操作时卷积核的深度 默认与输入的特征矩阵通道数(深度)一致;在某些压缩模型中会采用通道分离的卷积方式
输出通道数 (Out Channels) 指定卷积核的个数 若设置为与输入通道数一样的大小,可以保持输入输出维度的一致性;若采用比输入通道数更小的值,则可以减少整体网络的参数量

卷积层和池化层的区别

卷积层 池化层
结构 零填充时输出维度不变,而通道数改变 通常特征维度会降低,通道数不变
稳定性 输入特征发生细微改变时,输出结果会改变 感受域内的细微变化不影响输出结果
作用 感受域内提取局部关联特征 感受域内提取泛化特征,降低维度
参数量 与卷积核尺寸、卷积核个数相关 不引入额外参数
  相关解决方案