【深度学习基础】关于卷积神经网络你了解多少?

文章目录

本篇博客主要是讲解一些本人对于卷积的理解,包括:

  • 为什么会出现卷积操作?
  • 最基本的卷积操作?
  • 卷积的优缺点。
  • 空洞卷积等等。
  • 卷积操作牵扯的分辨率等问题。
  • 灰度值,RGB值等

卷积

参考链接

卷积到底是什么?卷积到底卷了个啥?

  1. 卷积是一个数学概念,公式如下:
    ∫ − ∞ + ∞ f ( τ ) g ( x − τ ) d τ \int_{-\infty }^{+\infty } f(\tau )g(x-\tau )d\tau ∫−∞+∞f(τ)g(x−τ)dτ
  2. 如何理解该公式:举一个例子
    假设 f ( t ) f(t) f(t)表示到 t t t时刻一个人进食量, g ( t ) g(t) g(t)表示t时刻胃对食物的消化率。如果要求下午两点还剩多少食物改怎么求呢?
    ∫ 0 t f ( x ) g ( t − x ) d x \int_{0}^{t} f(x )g(t-x )dx ∫0tf(x)g(t−x)dx

    所以卷积其实就是两个函数的积分,一个不稳定的输入函数 f ( x ) f(x) f(x) ,还有一个相对稳定的输出函数 g ( x ) g(x) g(x) ,求这两个函数乘积的积分。
    卷积还可以理解为t时刻发生的事件受前面x事件的影响程度。
  3. 图像卷积过程:
    首先有一个卷积核,我们可以理解为g(x),还有一个输入f(x)。卷积核所覆盖的部分对应点相乘再相加。然后输出一个点,填入到中心位置。
  1. 如何理解卷积过程?
    第一种理解:周围点对于中心点的影响。例如平滑卷积,一个 3 × 3 3\times 3 3×3的卷积核,数值全部为 1 / 9 1/9 1/9,这样的话就相当于这九个数相加求平均,可以缩小像素点之间的差异,使像素点更加平滑,效果如下:

    第二种理解:过滤器,中心点对于周围点的试探。对于卷积核所覆盖的9个点,进行筛选。所以卷积操作可以提取局部特征,具体例子如下:

    总结:神经网络中的卷积层可以通过卷积核提取特征。

卷积的特点:

参考链接:卷积神经网络中的稀疏交互和参数共享

稀疏交互

对于全连接网络,任意一对输入与输出神经元之间都产生交互,形成稠密的连接结构。在下图中可以看到, s i s_i si , i = 1 , . . . , 5 i = 1,...,5 i=1,...,5 与输入的所有神经元 x i x_i xi , i = 1 , . . . , 5 i = 1,...,5 i=1,...,5都有连接。

具体来讲,假设网络中相邻两层分别具有 m m m个输入和 n n n个输出,全连接网络中的权值参数矩阵将包含 m ∗ n m*n m∗n个参数。对于稀疏交互的卷积网络,如果限定每个输出与前一层神经元的连接数为 k k k,那么该层的参数总量为 k ∗ n k*n k∗n。在实际应用中,一般 k k k值远小于 m m m就可以取得较为可观的效果;而此时优化过程的时间复杂度将会减小几个数量级,过拟合的情况也得到了较好的改善。

稀疏交互的物理意义是,通常图像、文本、语音等现实世界中的数据都具有局部的特征结构,我们可以先学习局部的特征,再将局部的特征组合起来形成更复杂和抽象的特征。

参数共享

参数共享是指在同一个模型的不同模块中使用相同的参数,它是卷积运算的固有属性。全连接网络中,计算每层的输出时,权值参数矩阵中的每个元素只作用于某个输入元素一次;而在卷积神经网络中,卷积核中的每一个元素将作用于每一次局部输入的特定位置上。根据参数共享的思想,我们只需要学习一组参数集合,而不需要针对每个位置的每个参数都进行优化,从而大大降低了模型的存 储需求。

参数共享的物理意义是使得卷积层具有平移等变性。假如图像中有一只猫, 那么无论它出现在图像中的任何位置,我们都应该将它识别为猫,也就是说神经网络的输出对于平移变换来说应当是等变的。

池化层

  • 为什么要做池化操作

卷积操作的为了提取特征,卷积操作的结果是获取特征图,但是通常 3 × 3 3 \times 3 3×3的卷积核获取的特征图包含的数据量还是很大,计算量很大。例如在自动驾驶的时候要在几毫秒内做出判断,因此为了减少计算量,我们应该在保留特征的前提下降低计算量,也就是降低数据量。这就需要池化操作。
总结:池化可以在不改变特征的情况下降低数据量,减少计算量。

  • 有哪些池化操作?

max pooling: 只保留最大值。

average pooling: 求平均值保留。

全连接层

全连接层就是每个节点都与上一个节点相连接。一般是在最后与softmax层一起用。就是计算每个节点的得分,然后判断属于哪一类。

转置卷积

参考链接

  • 上面说的卷积层,池化层等都是对于分类问题的。但是对于分割问题,输出图像应该与输入图像一样大,如果只用卷积层和池化层肯定不满足要求,因为卷积不能增大输入的高宽,通常要么不变,要么减半。
  • 转置卷积可以增大输入的高宽。具体计算如下,输入的每个位置的元素与卷积核相乘填在对应位置,最后将他们加在一起。
  • 转置卷积是一对多,一个元素产生多个位置。卷积是多对一,多个元素产生一个位置。

    为什么叫转置?
  1. 对于卷积我们可以写成 Y = W ⋅ X Y=W\cdot X Y=W⋅X,其中 " ⋅ \cdot ⋅"代表卷积运算,
  2. 这里也可以对 W W W构造一个矩阵 V V V,使得卷积运算等价于矩阵乘法 Y ′ = V X ′ Y'=VX' Y′=VX′ 。其中 Y ′ Y' Y′, X ′ X' X′是 Y Y Y, X X X对应的向量版本。
    假设 X ′ X' X′是 m m m行, Y ′ Y' Y′是 n n n行,矩阵 V V V则是 n × m n\times m n×m。现在要把 Y ′ Y' Y′作为输入, X ′ X' X′作为输出,即 X ′ = ( ) Y ′ X'=()Y' X′=()Y′。不难推算()应该是 m × n m\times n m×n即 V T V^{T} VT。
  3. 转置卷积等价于 X ′ = V T Y ′ X'=V^{T}Y' X′=VTY′,即转置卷积可以将反向放大。

空洞卷积

卷积神经网络与全连接神经网络

  • 全连接神经网络
  1. 由一个一个的感知机组成。
  2. 权重是w,每个感知机的w可能不一样。
  3. 每个感知机与上一层(下一层)的感知机全部相连。
  • 卷积神经网络
  1. 由卷积层、池化层、全连接层、激活函数搭积木组成。
  2. 权重是卷积核的数值,但是每一层可以共用同一个卷积核,也就是权重共享。
  3. 由于卷积神经网络不是只有全连接层,因此卷积神经网络是局部连接的。可以理解为如果卷积神经网络全部是全连接层,那么就是全连接的。
相关推荐
qzhqbb几秒前
基于 Transformer 的语言模型
人工智能·语言模型·自然语言处理·transformer
___Dream1 分钟前
【CTFN】基于耦合翻译融合网络的多模态情感分析的层次学习
人工智能·深度学习·机器学习·transformer·人机交互
极客代码8 分钟前
【Python TensorFlow】入门到精通
开发语言·人工智能·python·深度学习·tensorflow
义小深11 分钟前
TensorFlow|咖啡豆识别
人工智能·python·tensorflow
Tianyanxiao1 小时前
如何利用探商宝精准营销,抓住行业机遇——以AI技术与大数据推动企业信息精准筛选
大数据·人工智能·科技·数据分析·深度优先·零售
撞南墙者1 小时前
OpenCV自学系列(1)——简介和GUI特征操作
人工智能·opencv·计算机视觉
OCR_wintone4211 小时前
易泊车牌识别相机,助力智慧工地建设
人工智能·数码相机·ocr
王哈哈^_^1 小时前
【数据集】【YOLO】【VOC】目标检测数据集,查找数据集,yolo目标检测算法详细实战训练步骤!
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·pyqt
一者仁心1 小时前
【AI技术】PaddleSpeech
人工智能
写代码的小阿帆1 小时前
pytorch实现深度神经网络DNN与卷积神经网络CNN
pytorch·cnn·dnn