002卷积神经网络基础知识

卷积神经网络基础知识

002卷积神经网络基础知识

卷积神经网的基本定义

  • 以卷积结构为主(主干层,还包括池化层等),搭建起来的深度网络(主要解决图片问题,如图像的目标检测)
    • 图片作为网络的输入(输入数据结构,n * w * h * c ),自动提取特征(参数优化的过程),并且对图片的变形(如平移、比例缩放、倾斜)等具有高度不变形。(在进行变形后仍能识别出为人脸)

卷积神经网的基本网络结构单元

  • 卷积
  • 池化
  • **
  • BN(Batchnorm)
  • LOSS(优化)
  • 其他层

卷积

- 定义

002卷积神经网络基础知识
对图像和滤波矩阵做内积(逐个元素相乘再求和)的操作

  • 滤波器(将卷积理解成滤波器)

    均值滤波器去图像噪声:[1/3,1/3,1/3],对图像从左到右,从上到下扫描,取同滤波器一样的窗口(1*3),当前窗口同滤波器进行内积操作,(x1+x2+x3)/3

  • 边缘提取:每一种卷积对应一种特征

    差异越大边缘越明显,梯度幅值越大

  • Im2col实现卷积运算

每一种卷积核对应一种图像特征,卷积的结果是小窗口中心点的值,继续滑动,得到后续值,最后无法计算的部分用0填充。

https://blog.****.net/weixin_43430243/article/details/89512069

-重要参数

002卷积神经网络基础知识

  • 卷积核

    • 图像处理中最常用的是2D卷积核(k_w*k_h)(也有1D卷积,3D卷积)

      线性计算:1 * 1=(1 * n)*(n * 1)

    • 权重和偏置项:y=w*x+b, b为偏置项

    • 常用卷积核:1x1,3x3,5x5

      • 保护位置信息,找到卷积之后的点同原始图像的点的对应情况
      • padding时对称,填充的时候,奇数卷积核使用padding保证对称性
  • 卷积------权值共享与局部连接(局部感受野/局部感知)

    • 卷积运算作用在局部,如3x3的卷积核,选择3x3的局部范围得到卷积点,整幅图提取不同的范围进行卷积得到最终的卷积图,卷积的3x3的区域对应的就是3x3的感受野

    • Feature map使用同一个卷积核运算后得到一种特征

      • 使用同一个卷积核,即在对图像的局部区域进行卷积的时候,我们实际上是通过同一个卷积核进行操作,每一个局部区域对应的卷积核的参数对应的权值是相同的
      • 如果当前卷积核用于边缘提取,对图像卷积运算之后,得到的新的特征图就是一种边缘特征
      • 如果卷积核完成均值运算,拿到的特征图就是图像均匀或降噪之后的进行均值滤波处理的特征
      • 一个卷积核对应一种特征,一种特征就是我们输出的一个Feature map
    • 多种特征采用多个卷积核(channel),numout输出的就是需要的卷积核数量

    • 权值共享:一个卷积在进行运算的时候对应一个局部区域,对于一幅图像,在进行卷积运算的时候,所有的局部区域对应的卷积核的参数是相同的,将其定义为这些局部区域权值共享

    • 局部连接:将卷积网络层和层的关系来看,输入层和输出层就是局部连接

  • 卷积核与感受野

  • 002卷积神经网络基础知识

    卷积的3x3的区域对应的就是3x3的感受野,卷积核越大,感受野越大,感知到的区域信息越多,能学习到的信息越多,但卷积核越大,参数量越大,模型更复杂,计算量大

    5x5卷积运算后输出3x3,再对3x3区域再次卷积,得到1x1,即两个3x3=一个5x5

    卷积输出:3x3: nxn——>(n-2)x(n-2)

    ​ 5x5:nxn——>(n-4)x(n-4)

    ​ 7x7:nxn——>(n-6)x(n-6)

    ​ 1x1

  • 卷积核

    参数量越大,模型越复杂,占用的资源越多,要尽可能减少参数量

    计算量决定了算法效率和平台功耗

    参数量和计算量的计算

    参数量:w 和 b002卷积神经网络基础知识

    • w:卷积的大小,k_w * k_h,一个2D的卷积对应输入层的一个feature map上,会对原始图像的多个feature map进行卷积,卷积核的大小乘上输入的feature map的数量channel,对所有的feature map进行完一次卷积运算之后,加上偏置项。进行卷积时,是对输入层的特征图的feature map运算时是连通道一起进行卷积的,最后要乘以通道数量In_channel,得到一个feature map,要得到所有feature map需要乘以输出的Out_channel
    • 002卷积神经网络基础知识

    计算量:

    需要对整幅图像进行运算,乘以ln_w和ln_h,即输入图像的大小

  • 步长(stride)

    卷积时对图像从左到右从上到下运算,步长就是运算时上下左右移动取的间隔

    stride=1:正常的卷积

    stride=2:移动两步,原始图像设置不同的stride(2)就会下采样两倍,图像就是padding之后的两倍

    stride>1,进行卷积的次数减少,feature map大小变小,减少计算量,弊端是采样时会损失信息,要考虑代价和收益,如果平衡则可以增加步长

    feature map计算公式:
    002卷积神经网络基础知识

    改变stride会影响输出特征图的大小,计算量发生变化,输入的不是原始图像的w和h,而是输出图的w和h

    改变stride对参数量量没有影响

  • Pad:确保feature map整数倍变化,对尺度相关的任务尤为重要

    如8x8通过3x3的卷积核最终得到6x6的feature map,8x8到6x6的变化不是整数倍的变化,导致点与点之间对应关系模糊,对尺度相关的任务如目标检测,如果不是整数倍变化,计算会存在误差,因为图像上的坐标都是整数,所以要对坐标取整,使用Pad填充,保证整数倍变化
    002卷积神经网络基础知识

    3x3的卷积核:中心点的四周边缘pad 1

    5x5的卷积核:pad 2区域

    7x7的卷积核:pad 3区域

    Pad之后参数量不会变化,但计算量会变化,因为输出特征图的大小变化,计算量不是整数倍变化

卷积的定义和使用

002卷积神经网络基础知识
002卷积神经网络基础知识