当前位置:首页 > 神经网络 > 正文

cnn卷积神经网络工作流程图

⒈卷积神经网络(ConvNet/CNN)介绍

卷积神经网络(ConvNet/CNN),作为深度学习的重要组成部分,广泛应用在图像和识别、图像分析和分类、推荐系统以及自然语言处理等域。 它特别适合处理像素矩阵形式的数据,如图像,通过学习权重来区分重要和不重要的图像特征,对数据预处理的要求相对较低。
相较于传统的前馈神经网络(FNN,也称深度前馈网络),CNN在处理图像时展现出优势。 FNN旨在近目标函数f*,对输入进行映射,但没有循环结构,数据单向流动。 而CNN则引入了循环结构,能够利用当前信息和历史信息,如在语音转文字中,RNN会考虑之前的翻译结果以预测下一个词,这在处理连续依赖问题时更具优势。
CNN的独特性在于其卷积层,它通过定义的滤波器(Kernel)对图像进行特征提取,减少计算量,同时保留关键特征。 池化层则进一步压缩特征图,提取主要特征,降低复杂度。 两者共同作用,使得CNN在参数较少的情况下更好地理解图像的复杂性,如RGB图像的色彩和空间关系。
卷积层与池化层的不同在于,卷积层负责特征提取,而池化层则进行数据下采样。 全连接层则在处理完卷积和池化后的信息后进行分类,将数据转换为一维向量,进行传统神经网络的模式识别。 CNN通过这些组件巧妙地简化处理大规模、复杂数据的任务,提升效率和准确性。

⒉图文详解级联金字塔结构卷积神经网络

深度学习驱动的图像处理技术,尤其是卷积神经网络(CNN),在关键点定位等域取得了显著进步。 然而,面对服饰等对象的多变性,如类别多样性、比例变化和外观差异,关键点定位的精度仍有提升空间。 为此,本文介绍了一种创新的级联金字塔结构的CNN,旨在解决这一挑战。
传统的CNN模型包括沙漏网络和深度残差网络。 沙漏网络通过下采样和上采样作捕捉不同尺度的特征,而深度残差网络则通过引入残差映射,解决深层网络训练中的梯度问题,提高模型性能。 级联金字塔结构则结合了这两者的优点,通过构建特征金字塔,将不同分辨率的特征图融合,以提供丰富语义信息和底层细节信息。
该结构分为两部分:第1级网络使用残差网络提取特征,并生成包含所有关键点位置的热力图;第2级网络则对定位困难的关键点,通过第二个沙漏网络进行精细调整。 以装服饰关键点定位为例,通过2018FashionAI数据集的实验,级联网络明显提高了关键点的定位精度,尤其是在复杂背景和姿态的情况下。
总结来说,级联金字塔结构的CNN通过多层次的特征融合和关键点调整,有效提升了关键点定位的准确性,特别适用于处理服饰等多变性图像背景和姿态的挑战。

⒊卷积神经网络前向传播和BP后向传播计算步骤

 1.从DNN前向传播和BP后向传播说起
 2.CNN前向传播和BP后向传播
注:为减小书写、计算量,文中推导都忽略了偏置b。

  之前所学的DNN是一个全连接的网络,采用BP算法来计算各参数的梯度,只需要采用链式法则将误差求导传递到每个神经元的每个参数上即可。 特别是,将数据向量化后,求解梯度过程较为简单。 但对于CNN来说,CNN涉及到了卷积和池化,在进行后向传播计算时,仅采用矩阵乘法、元素级乘法(对应元素相乘)根本无法进行传递计算。 那么CNN的BP算法是如何实现的呢?首先从CNN的BP算法说起。
  DNN符号约定:
  ①小写字母代表一个值,大写字母代表向量或矩阵
  ②输入数据维度为(n,m)表示n个特征,m个样本
  ③上标[l]:第l层,如A[l],表示第l层活值
  ④下标n:某一层第n个神经元,如果是输入数据X,则代表第n个特征,如a[l]1,表示第l层第1个活值
  ⑤w[l]ij:表示l层参数,连接了l层第i个神经元和第l-1层第j个神经元
  ⑥向量化导数符号:dZ即代表最终误差对Z的梯度
  ⑦δ[l]即dZ[l],两个是一个东西,只是描述不一样

  卷积层前向传播如下图所示(步为1),l-1层的输出,高=3、宽=3、通道数=3,shape=(3,3,3);l层一共有两个卷积核,每个卷积核shape=(2,2,3);l层输出shape=(2,2,2)。
  ①l-1层的通道数与l层卷积核通道数相同,所以在进行卷积时,是同一个卷积核的各通道对应l-1层的通道输出A去卷积;②卷积后,在通道维度上进行叠加,一个卷积核最后只输出一个通道的数据;③卷积核的数量决定了该层输出的通道数量,活后维度不变。 因此,维度变化为:(m,n_h_pre ,n_w_pre ,n_c_pre )→(f,f,n_c_pre ,n_c)→(m,n_h,n_w,n_c)

  根据DNN的经验,要求dW,那么需要先求出dZ、dA,在此假设已知当前l层dZ。
  (1)求dA

  由于池化向前传播时,会使得h、w两个维度缩减,丢失掉部分信息,那么在后向传播时,如何将尺寸小的矩阵还原到原来大小?一般,池化分为最大池化和平均池化,两种池化后向传播时处理的方式略有不同。
  (1)最大池化后向传播
  在此将池化当作一层,假设已知l层dZ=dA(池化无活函数,活后等于本身),求l-1层dZ=dA,下面对一个通道数据进行举例:

卷积神经网络(CNN)反向传播算法
CNN的反向传播
ConvolutionalNeuralNetworks:StepbyStep