卷积神经网络

卷积神经网络(CNN,Convolutional Neural Network)是一种专门用于处理具有网格拓扑数据(如图像、视频等)的深度学习模型,广泛应用于计算机视觉领域。与传统的全连接神经网络不同,CNN 通过卷积操作提取局部特征,能够有效减少参数数量,并提高模型在图像、语音等任务中的表现。

卷积神经网络

卷积神经网络四大要件:

  • 卷积层(Convolution Layer)
    卷积神经网络的核心是卷积层,它通过使用卷积操作来提取图像中的特征。卷积操作有助于捕捉局部信息,通过滑动窗口的方式在输入数据上进行滤波操作,从而生成特征图。
  • 非线性激励层(Non-Linear Layer)/激活函数(Activation Function)
    激活函数引入非线性性质,使得网络可以学习复杂的映射关系。常用的激活函数包括ReLU(Rectified Linear Unit)和其变体,它们在神经网络中广泛应用。
  • 池化层(Pooling Layer)
    池化层用于减小特征图的空间维度,同时保留最重要的信息。常见的池化操作包括最大池化和平均池化,它们分别选取池化窗口中的最大值或平均值作为输出,以降低计算复杂度和提高网络的鲁棒性。
  • 输出层、全连接层(Fully-connected Layer)
    全连接层用于将卷积和池化层提取的特征映射转换为最终的输出。在这一层中,每个神经元与前一层中的所有神经元连接,从而实现全局信息的整合。

卷积层(Convolution Layer)

卷积的主要工作是通过卷积操作提取输入数据中的特征。这一操作是基于卷积核(也称为滤波器)的滑动窗口运算。

具体来说,卷积层的工作包括以下几个步骤:

1、卷积操作: 卷积核是一个小的窗口或矩阵,它通过在输入数据上滑动进行卷积操作。在每个位置,卷积核与输入数据的相应部分进行逐元素相乘,然后将所有乘积的结果相加,形成输出特征图的一个元素

2、特征映射: 卷积操作的结果生成了称为特征映射的输出。这些特征映射捕捉了输入数据中的局部特征,通过在不同位置应用卷积核,网络能够学习不同的特征,例如边缘、纹理等。

3、权重共享: 卷积操作中使用的卷积核在整个输入数据上共享权重。这样的权重共享减少了需要学习的参数数量,使得网络更加高效。

4、感受野: 感受野是指卷积层中每个输出单元对输入数据的局部区域的大小。随着网络深度的增加,感受野逐渐扩大,使网络能够捕捉更广泛的特征。

通过卷积操作,卷积层能够有效地提取输入数据的局部特征,使得卷积神经网络在图像处理任务中表现出色,如图像分类、目标检测等。

**卷积核(Convolutional Kernel)**:

1、同输入数据进行计算的二维(一维、三维)算子
2、大小(size)由用户定义,深度由输入数据定义
3、卷积核“矩阵值”:卷积神经网络的参数
4、卷积核初始值随机生成,通过反向传播更新

卷积核的关键参数:
卷积核大小:

  • 奇偶选择:一般奇数,满足对称
  • 大小选择:根据输入数据,根据图像特征
  • 厚度确认:与输入数据一致
  • 覆盖范围:根据输入数据,根据图像特征

步长(stride):对输入特征图的扫描间隔

边界扩充(pad):在卷积过程中,为了允许边界上的数据也能作为中心参与卷积运算,将边界假装延申。

  • 假设卷积核的宽度为2i+1,则添加pad的宽度为i

非线性激励层(Non-linear activation layer):

引入非线性性质,使得网络可以学习复杂的映射关系。

relu函数:$f(x) = max(0,x)$

池化层(Pooling layer)
1、数据降维,方便计算和存储。降维有两种方法:max pooling/average pooling

2、池化过程中,每张特征图单独降维。

**归一化层(Normalization Layer) **

在训练过程中,每个批次的输入数据分布可能不同,导致网络每次看到的数据分布不一致。归一化层在每个批次中计算均值和方差,将输入数据归一化,有助于使不同批次的数据分布更加稳定,提高网络的鲁棒性。

归一化层必须放在非线性激励层之前。

归一化层主要有两种方式:批量归一化(Batch Normalization,BN)和近邻归一化(Local Response Normalization)

切分层(Slice Layer)
在某些应用中,希望独立对某些区域单独学习。

好处:学习多套参数,更强的特征和描述能力。

融合层(Merge Layer)
对独立进行特征学习的分支进行融合,构建高效而精简的特征组合。

LENet

AlexNet

VGGNet

GoogLeNet

文章作者: Dar1in9
文章链接: http://dar1in9s.github.io/2024/01/12/机器学习/卷积神经网络/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Dar1in9's Blog