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

文章目录

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

  • 为什么会出现卷积操作?
  • 最基本的卷积操作?
  • 卷积的优缺点。
  • 空洞卷积等等。
  • 卷积操作牵扯的分辨率等问题。
  • 灰度值,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. 由于卷积神经网络不是只有全连接层,因此卷积神经网络是局部连接的。可以理解为如果卷积神经网络全部是全连接层,那么就是全连接的。
相关推荐
张人玉12 分钟前
人工智能——猴子摘香蕉问题
人工智能
草莓屁屁我不吃15 分钟前
Siri因ChatGPT-4o升级:我们的个人信息还安全吗?
人工智能·安全·chatgpt·chatgpt-4o
小言从不摸鱼19 分钟前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
AI科研视界41 分钟前
ChatGPT+2:修订初始AI安全性和超级智能假设
人工智能·chatgpt
霍格沃兹测试开发学社测试人社区44 分钟前
人工智能 | 基于ChatGPT开发人工智能服务平台
软件测试·人工智能·测试开发·chatgpt
小R资源1 小时前
3款免费的GPT类工具
人工智能·gpt·chatgpt·ai作画·ai模型·国内免费
artificiali4 小时前
Anaconda配置pytorch的基本操作
人工智能·pytorch·python
酱香编程,风雨兼程4 小时前
深度学习——基础知识
人工智能·深度学习
Lossya5 小时前
【机器学习】参数学习的基本概念以及贝叶斯网络的参数学习和马尔可夫随机场的参数学习
人工智能·学习·机器学习·贝叶斯网络·马尔科夫随机场·参数学习
#include<菜鸡>5 小时前
动手学深度学习(pytorch土堆)-04torchvision中数据集的使用
人工智能·pytorch·深度学习