白话机器学习5:卷积神经网络(CNN)原理

1.神经元

激活函数f(z)的种类:

2.卷积方法种类

https://mp.weixin.qq.com/s/FXzTbMG64jr93Re31Db2EA

  1. 标准卷积(Standard Convolution):

    • 特点:每个卷积核在输入数据的整个深度上滑动,计算输出特征图的一个元素。
    • 应用场景:适用于大多数标准的CNN应用,如图像分类、物体检测等。
    • 数据特征:通用性强,可以应对各种数据类型。
  2. 分组卷积(Grouped Convolution):

    • 特点:将输入和卷积核分成几组,每组独立进行卷积操作,可以减少参数数量和计算量。
    • 应用场景:用于大型网络和复杂任务中减少计算负担,如在ResNeXt架构中使用。
    • 数据特征:当模型参数过多,计算资源有限时使用。
  3. 空洞卷积(Dilated Convolution/Atrous Convolution):

    • 特点:在卷积核的元素之间插入"空洞"以增加感受野,不增加参数数量。
    • 应用场景:适合于需要较大感受野的应用,如语义分割,或者在自然语言处理中用于捕捉长距离依赖。
    • 数据特征:当输入数据需要更大的上下文理解时使用。
  4. 深度可分离卷积(Depthwise Separable Convolution):

    • 特点:分两步进行,首先是深度卷积(每个通道独立卷积),然后是点卷积(1x1卷积来组合深度卷积的输出),这可以显著减少计算量和参数数量。
    • 应用场景:在移动和嵌入式设备上运行的模型中常用,如MobileNets架构。
    • 数据特征:对于计算效率和模型大小有严格限制时使用。
  5. 反卷积(Transposed Convolution/Deconvolution):

    • 特点:通常用于放大特征图(如在某些类型的自动编码器和生成对抗网络中)。
    • 应用场景:在图像超分辨率、语义分割以及生成模型等领域中,需要从低分辨率的特征图中重建出高分辨率的图像或特征图时使用。
    • 数据特征:需要增加特征图空间分辨率的场景。

https://www.jianshu.com/p/4d3ec56e7d05

原本卷积:

"same填充"(Padding):

为了避免原始卷积操作中,数据越来越小:

3.卷积神经网络CNN

(1)卷积层

上述2中各种卷积方法

(2)激活层

上述1中各种激活函数

(3)BN 层(BatchNorm)

将输入值的分布强行拉回到均值为0,方差为1的标准正态分布,加速网络的收敛速度

(4) 化层(pooling)

下采样,对部分特征矩阵选一个特征值或数值,从而进一步变小

常见有:Max Pooling(最大池化)、Average Pooling(平均池化)

(5)F C层(全连接层)

最后再加一层普通神经元(无隐层感知器或一个、多个隐层的感知器)

(6)优化层

为了更高效的优化网络结构(损失函数最小),即是网络的优化策略,主要方法如下:

相关推荐
立志成为大牛的小牛2 小时前
数据结构——四十四、平衡二叉树的删除操作(王道408)
数据结构·学习·程序人生·考研·算法
贝塔实验室3 小时前
Altium Designer 6.0 初学教程-如何从原理图及PCB 中生成网表并且实现网表的加载
fpga开发·硬件架构·硬件工程·学习方法·射频工程·基带工程·pcb工艺
yoke菜籽10 小时前
面试150——区间
面试·职场和发展
立志成为大牛的小牛11 小时前
数据结构——四十九、B树的删除与插入
数据结构·学习·程序人生·考研·算法
程序员三藏11 小时前
软件测试之压力测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·压力测试
小南家的青蛙11 小时前
LeetCode面试题 04.06 后继者
算法·leetcode·职场和发展
墨染点香13 小时前
LeetCode 刷题【168. Excel 表列名称】
算法·leetcode·职场和发展
Swift社区13 小时前
LeetCode 431 - 将 N 叉树编码成二叉树
算法·leetcode·职场和发展
荒原之梦网16 小时前
27考研数学听谁的课比较好?
考研·考研数学·荒原之梦考研数学
川Princess1 天前
【面试经验】百度Agent架构研发工程师一面
面试·职场和发展·架构·agent