白话机器学习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)优化层

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

相关推荐
郝学胜-神的一滴7 小时前
力扣86题分隔链表:双链表拆解合并法详解
开发语言·数据结构·算法·leetcode·链表·职场和发展
快快起来写代码7 小时前
【leetcode】容器中水的容量最小/大面积
算法·leetcode·职场和发展
鱼骨不是鱼翅8 小时前
个人简历面试复习-----rabbitmq篇(一)
面试·职场和发展·rabbitmq
逆境不可逃8 小时前
【从零入门23种设计模式16】行为型之迭代器模式
java·开发语言·数据结构·算法·设计模式·职场和发展·迭代器模式
逆境不可逃8 小时前
LeetCode 热题 100 之 198.打家劫舍
数据结构·算法·leetcode·职场和发展
24白菜头8 小时前
第十六届蓝桥杯C&C++大学B组
数据结构·c++·笔记·算法·职场和发展·蓝桥杯
小年糕是糕手8 小时前
【35天从0开始备战蓝桥杯 -- Day2】
开发语言·jvm·数据库·c++·程序人生·考研·蓝桥杯
小年糕是糕手8 小时前
【35天从0开始备战蓝桥杯 -- Day1】
jvm·数据结构·c++·程序人生·算法·职场和发展·蓝桥杯
qq_4592344214 天前
【题库】| 商用密码应用安全性评估从业人员考核题库(四十)
职场和发展·密码学·学习方法·考核·商用密码·商用密码应用安全性评估·密评
敲敲了个代码14 天前
[特殊字符] 空数组的迷惑行为:为什么 every 为真,some 为假?
前端·javascript·react.js·面试·职场和发展