0%
boxmoe_header_banner_img

加载中

CNN概念


avatar
mizuki 2026年9月19日 2026年9月28日 16

引言

CNN全称为Convolutional Neural Network,中文叫卷积网络

一. 意义

CNN 最经典、最常见的应用之一是图像分类,但 CNN 本质上是一种擅长处理具有空间局部结构数据的神经网络

二. 图片

  • 1. 图片构成

首先我们先来讲解一下在机器学习中图片的构成

图片通常由长,宽,channels(通道数构成),channels一般是3,包括RGB,如图所示

  • 2. 如何读取

例如一张 100×100 的 RGB 图片可以表示为一个 100×100×3 的三维张量,其中三个 channel 分别对应 R、G、B。若输入普通全连接网络,需要将其展平成一个 30000 维向量

然后我们再将这些向量交给神经元,神经元再依次去分析输入值得出结果,也就是常用的fully connected如图

但是我们真的需要fully connected吗,可以看到在上图中,如果直接将 100×100×3 的图片展平后连接到一个包含 1000 个神经元的全连接层,那么仅这一层就需要约 3000 万个权重参数

对于人来说,辨别一个物体一般也是通过部位来辨别的,同样的我们也可以将它使用到图片分类中,因此就引出了CNN

三. 如何辨别

CNN主要分为两个阶段,特征提取阶段和分类 / 输出阶段

  • 1. Obersation1

首先我们要明确的是不需要neuron一次性观看全部图片,而是通过窗口的方式分别观察,现在再详细的进行讲解

Simplification 1:

a. 设定卷积核大小(kernel),从而决定当前卷积层的局部感受野大小,kernel决定了feild的大小

b. 每个输出神经元只与其对应的 receptive field 中的输入相连接

c. 彼此之间的field是可以重叠的

d. 对同一个 receptive field,可以使用多个不同的 filter / kernel(参数) 进行特征提取

e. filter存在深度,例如一个3×3的field,不仅只是有9个filter,而是还要考虑channel,例如有RGB,因此filter的数量为3×3×3

这里再给出一个最经典的设置方法:

a. 将三个channel都分析一遍

b. 一个 filter 在某个空间位置进行一次卷积计算,可以对应一个输出 neuron,多个 filters 会在这个位置产生多个 neuron 的输出

c. 将field按照stride(卷积核每次移动多少格)进行移动,形成一个新的field,并且希望这些field有重叠)

d. field超出了范围,就利用padding(补充空位),常用0进行补位

  • 2. Observation 2

同一种视觉特征可能出现在图像的不同空间位置,因此没有必要为每个位置分别学习一套独立参数

Simplification 2:

对于这些部位,同一个 filter 在不同空间位置使用相同的一组参数

目的是减少参数量,并且同一种特征可以在图像不同位置被检测出来

如何做到:

一个卷积层包含多个 filters,每个 filter 拥有自己的一组可学习参数,每一个 neuron 对应一组相同的参数,如图所示

不止如此,减少了参数,间接增加了bias,对于影像分类,反而可以防止overfitting,可以做的更好

四. 总结

一个 filter 是一组可学习参数;它在整张输入特征图上滑动,同一个 filter 在不同位置使用完全相同的参数;filter 每到一个位置进行一次计算,就得到该位置的一个 neuron 输出,多个 filter 则产生多个 output channels

结尾

这个理解起来费了我好大的功夫,也算是有回报吧

上一次更新已经跑远了✨ 计算中...
(‾◡◝) 本内容里的一些消息,可能已经跟不上时间啦~


评论(0)

查看评论列表

暂无评论


发表评论

表情 颜文字

插入代码
后退
前进
刷新
复制
粘贴
全选
删除
返回首页
0%
目录
顶部
底部
📖 文章导读