CNN卷积神经网络基础知识

卷积神经网络基础知识

本文主要介绍CNN,convolutional neural network的基础知识,目录如下:

  • 卷积神经网络历史
  • CNN组成和介绍
    全连接层;卷积层;池化层;
  • FP和BP算法
    激活函数;FP算法;BP算法;优化器;

本文参考的资料如下:

  • 1.1 卷积神经网络基础https://www.bilibili.com/video/BV1b7411T7DA
  • LaTeX数学符号大全https://blog.csdn.net/LCCFlccf/article/details/89643585
  • 卷积动画详解https://blog.csdn.net/haohulala/article/details/107332661
  • 1.2 卷积神经网络基础补充https://www.bilibili.com/video/BV1M7411M7D2

卷积神经网络历史

1998年,yanglecun(美国人)提出来的CNN模型如下:

请添加图片描述

简略历史如下:

请添加图片描述

CNN组成和介绍

CNN的主要组成包括dense layer全连接层,convolutional layer卷积层,subsampling layer/down-pooling下采样层和upsampling layer上采样层,其中downsampling layer用于特征提取/减少,upsampling layer用于增加特征。

全连接层

在全连接层中,即将每个节点全连接并赋予权重值(可能还会增加bias偏置值)。全连接网络例子如下:

请添加图片描述

全连接层参数个数计算:

全连接层的参数个数计算取决于该层的输入维度、输出维度以及权重矩阵的大小。具体计算公式如下:

假设输入维度为 n n n,输出维度为 m m m,权重矩阵的大小为 w × h w\times h w×h,则全连接层的参数个数为:

请添加图片描述

其中, n + 1 n+1 n+1 是因为每个神经元都有一个偏置项。

举个例子,假设输入维度为 1000,输出维度为 500,权重矩阵的大小为 200x100,则全连接层的参数个数为:

在这里插入图片描述

因此,这个全连接层的参数个数为 100,100,000。

卷积层

卷积层中最重要的就是filter/convolutional kernel卷积核,卷积层的主要目的是对图像进行特征提取,而每一次卷积即将卷积核和图像上数字进行矩阵点乘。

在这里插入图片描述

矩阵相乘分为矩阵叉乘(又叫矩阵乘, A × B {A}\times{B} A×B),矩阵点乘( A ⋅ B {A}\cdot{B} AB)。矩阵乘法即线性代数中的一行乘一列,矩阵点乘即两矩阵对应元素相乘。

卷积层具有局部感知机制权值共享。其中权值共享机制使得每一层卷积所需要的参数大大小于全连接层所需要的参数。例子如下:

在这里插入图片描述

需要注意的是:1. 卷积核的channel(深度/维数)与输入特征矩阵的channel相同;2. 输出特征矩阵的channel(深度/维数)与卷积核的个数相同。

对于输出特征矩阵,它的深度和卷积核个数相同,而对于它的大小则和输入图片大小,卷积核大小,步长,补充像素有关。输出特征矩阵大小的计算公式如下:

在这里插入图片描述

卷积层参数个数计算:

卷积层的参数个数计算取决于该层的卷积核尺寸、输入通道数、输出通道数。具体计算公式如下:

假设卷积核尺寸为 k × k k\times k k×k,输入通道数为 c i n c_{in} cin,输出通道数为 c o u t c_{out} cout,则卷积层的参数个数为:

在这里插入图片描述

其中, c i n × k × k c_{in}\times k\times k cin×k×k 是卷积核中的权重参数个数, 1 1 1 是偏置参数个数。

举个例子,假设卷积核尺寸为 3 × 3 3\times 3 3×3,输入通道数为 64,输出通道数为 128,则卷积层的参数个数为:

在这里插入图片描述

因此,这个卷积层的参数个数为 73,856。

需要注意的是,在计算参数个数时,如果卷积层的padding、stride、dilation等超参数发生变化,计算公式也需要做相应的修改。

下采样层/池化层

下采样层的主要目的是对特征图进行稀疏处理,减少数据运算量。它具有以下三个特点:

  • 没有训练参数。即不会和卷积层一样,需要更新/修正卷积核的参数。
  • 只改变特征矩阵的w和h,不改变channel。
  • 一般poolsize和stride相同。

下图以Maxpooling层为例:

请添加图片描述

FP和BP算法

我们使用FP算法更新预测值 o u t p u t ^ \hat{output} output^,使用BP算法更新权重值weight。

在这里插入图片描述

激活函数

引入激活函数即引入非线性因素使我们的网络具备解决非线性问题的能力。常见的有sigmoid/logic,softmax,ReLU等。

在这里插入图片描述

FP算法

FP,forward propagation。用于更新预测值 o 1 ^ \hat{o_1} o1^。我们用上一层结果乘以权重再放入激活函数中得到下一层的输入结果,FP算法例子如下:

在这里插入图片描述

最终我们经历一系列计算得到了最终的output,我们根据经验选择适合的loss function损失函数,最终计算出来我们的Loss值(即自变量是weight权重值,因变量是Loss损失值)。

在这里插入图片描述

BP算法

我们得到了自变量为wight,因变量为Loss的函数。而我们在学习中要完成的终极目标就是使得损失函数的输出值尽量小,而多元函数的值要变小,便是让损失函数沿着下降最快的方向(梯度方向)下降,所以我们用链式法则求偏导,使用BP算法更新权重值如下:

在这里插入图片描述

手写推导部分如下:

在这里插入图片描述

梯度下降算法

在这里插入图片描述

优化器

如采用分批次等方法,使得更快收敛

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习模型,主要用于图像识别和计算机视觉任务。它通过卷积层、池化层和全连接层等组件来提取图像的特征,并进行分类或回归等任务。 CNN的基本原理是通过卷积操作来提取图像的局部特征,然后通过池化操作来减小特征图的尺寸和参数数量。卷积层使用一组可学习的滤波器(也称为卷积核)对输入图像进行卷积操作,从而得到一系列特征图。池化层则通过对特征图进行降采样,保留主要特征并减少计算量。最后,通过全连接层将提取到的特征映射到输出类别。 CNN的优势在于它能够自动学习图像的特征表示,而无需手动设计特征。此外,CNN还具有平移不变性和局部连接性等特点,使其在处理图像数据时表现出色。 范例:<<引用:一般的卷积神经网络,输入图像x,输出卷积后的特征F(x),一次性抽出所有的信息,梯度消失会出现,Res网络就说只学习残差即可。 [^1]。引用:VGGNet探索了卷积神经网络的深度与其性能之间的关系,通过反复堆叠33的小型卷积核和22的最大池化层,VGGNet成功地构筑了16~19层深的卷积神经网络。VGGNet相比之前state-of-the-art的网络结构,错误率大幅下降,并取得了ILSVRC 2014比赛分类项目的第2名和定位项目的第1名。 。引用:CNN的基本原理是通过卷积操作来提取图像的局部特征,然后通过池化操作来减小特征图的尺寸和参数数量。卷积层使用一组可学习的滤波器(也称为卷积核)对输入图像进行卷积操作,从而得到一系列特征图。池化层则通过对特征图进行降采样,保留主要特征并减少计算量。最后,通过全连接层将提取到的特征映射到输出类别。[^3]。 CNN是一种深度学习模型,主要用于图像识别和计算机视觉任务[^3]。它通过卷积层、池化层和全连接层等组件来提取图像的特征,并进行分类或回归等任务[^3]。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值