AI知识分享AI知识分享
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
✿导航
  • 人工智能
  • 神经网络
  • 机器学习
  • 深度学习
  • 强化学习
  • 自然语言处理
  • 计算机视觉
  • 大模型基础
  • 动手学深度学习
  • 理论理解
  • 工程实践
  • 应用开发
  • AI For Everyone
  • AIGC_2024大会
  • AIGC_2025大会
  • Transformer
  • Pytorch
  • HuggingFace
  • 蒸馏
  • RAG
  • 目标检测
  • MCP
  • 概念
  • 意图识别
  • 工具
  • 人工智能

    • 人工智能 - 概念
  • 神经网络

    • 神经网络 - 基础
    • 神经网络 - 激活函数
    • 神经网络 - 前馈神经网络
    • 神经网络 - 卷积神经网络
    • 神经网络 - 循环神经网络
    • 神经网络 - 机器学习
    • 神经网络 - 线性模型
  • 机器学习

    • 机器学习 - 概念
  • 深度学习

    • 深度学习 - 概念
  • 强化学习

    • 强化学习 - 概念
  • 自然语言处理

    • 自然语言处理 - 概念
  • 计算机视觉

    • 计算机视觉 - 概念

神经网络 - 卷积神经网络

概念

卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种前馈神经网络,通常由以下三种基本层交替堆叠构成:

  1. 卷积层(Convolutional Layer)
  2. 池化层(Pooling Layer,也称池化层)
  3. 全连接层(Fully Connected Layer)

这些层协同工作,实现从原始输入(如图像)到高级语义特征的逐层抽象。

卷积神经网络有三个结构上的特性:局部连接、权重共享以及汇聚。

特性说明带来的优势
局部连接(Local Connectivity)每个神经元仅与输入数据的一个局部区域相连(感受野)减少参数数量,捕捉局部特征
权重共享(Weight Sharing)同一层的所有神经元共享同一个卷积核参数极大降低模型复杂度,增强泛化能力
汇聚操作(Pooling)对局部区域进行下采样(如最大值或平均值)降维、减少计算量、提升平移不变性

这些特性赋予了CNN一定程度的平移、缩放和旋转不变性,使其对图像中的对象位置变化具有鲁棒性。

卷积神经网络主要使用在图像和视频分析的各种任务(比如图像分类、人脸识别、物体识别、图像分割等)上,其准确率一般也远远超出了其他的神经网络模型。近年来卷积神经网络也广泛地应用到自然语言处理、推荐系统等领域。

一维卷积

一维卷积经常用在信号处理中,用于计算信号的延迟累积.假设一个信号发生器每个时刻 𝑡 产生一个信号 𝑥𝑡,其信息的衰减率为 𝑤𝑘,即在 𝑘 − 1 个时间步长后,信息为原来的𝑤𝑘 倍.假设𝑤1 = 1, 𝑤2 = 1/2, 𝑤3 = 1/4,那么在时刻𝑡 收到的信号𝑦𝑡 为当前时刻产生的信息和以前时刻延迟信息的叠加:

我们把𝑤1, 𝑤2, ⋯称为滤波器(Filter)或卷积核(Convolution Kernel)。假设滤波器长度为𝐾,它和一个信号序列𝑥1, 𝑥2, ⋯的卷积为

二维卷积

卷积也经常用在图像处理中.因为图像为一个二维结构,所以需要将一维卷积进行扩展.给定一个图像 𝑿 ∈ ℝ𝑀×𝑁 和一个滤波器 𝑾 ∈ ℝ𝑈×𝑉,一般𝑈 << 𝑀, 𝑉 << 𝑁,其卷积为

输入信息𝑿 和滤波器𝑾 的二维卷积定义为

𝒀 = 𝑾 ∗ 𝑿

示例如下:

卷积核类型示例核矩阵效果
边缘检测(水平)[−1−1−1222−1−1−1]\begin{bmatrix}-1 & -1 & -1 \\ 2 & 2 & 2 \\ -1 & -1 & -1\end{bmatrix}​−12−1​−12−1​−12−1​​检测水平边缘
边缘检测(垂直)[−12−1−12−1−12−1]\begin{bmatrix}-1 & 2 & -1 \\ -1 & 2 & -1 \\ -1 & 2 & -1\end{bmatrix}​−1−1−1​222​−1−1−1​​检测垂直边缘
锐化[0−10−15−10−10]\begin{bmatrix}0 & -1 & 0 \\ -1 & 5 & -1 \\ 0 & -1 & 0\end{bmatrix}​0−10​−15−1​0−10​​增强细节
高斯模糊116[121242121]\frac{1}{16}\begin{bmatrix}1 & 2 & 1 \\ 2 & 4 & 2 \\ 1 & 2 & 1\end{bmatrix}161​​121​242​121​​平滑去噪

互相关

在机器学习和图像处理领域,卷积的主要功能是在一个图像(或某种特征)上滑动一个卷积核(即滤波器),通过卷积操作得到一组新的特征.在计算卷积 的过程中,需要进行卷积核翻转。在具体实现上,一般会以互相关操作来代替卷积,从而会减少一些不必要的操作或开销。

互相关(Cross-Correlation)是一个衡量两个序列相关性的函数,通常是用滑动窗口的点积计算来实现.给定一个图像𝑿 ∈ ℝ𝑀×𝑁 和卷积核𝑾 ∈ ℝ𝑈×𝑉,它们的互相关为

卷积的变种

  • 步长(Stride)是指卷积核在滑动时的时间间隔。
  • 零填充(Zero Padding)是在输入向量两端进行补零。

假设卷积层的一维输入神经元个数为𝑀,卷积大小为𝐾,步长为𝑆,在输入两端各填补𝑃 个0(zero padding),那么该卷积层的神经元数量为(𝑀 − 𝐾 + 2𝑃)/𝑆 + 1。

常见卷积类型(以一维为例):

类型步长 S S S填充 P P P输出长度特点
窄卷积(Narrow)10M−K+1 M - K + 1 M−K+1最基础形式,边缘信息损失
宽卷积(Wide)1K−1 K - 1 K−1M+K−1 M + K - 1 M+K−1扩展输出,用于生成任务
等宽卷积(Equal-width)1(K−1)/2 (K - 1)/2 (K−1)/2(若K为奇数)M M M保持输入输出尺寸一致,常用

(二维图像同理,分别在高和宽方向计算)

卷积神经网络各个层的作用

用卷积来代替全连接

在用全连接前馈网络来处理图像时,会存在以下两个问题:

  1. 参数太多:输入图像大小为100 × 100 × 3 —— 展开后有 3×10^4 ,若第一隐藏层有1000个神经元 —— 参数高达 3×10^7 ,极易过拟合。
  2. 局部不变性特征:自然图像中的物体都具有局部不变性特征,而全连接前馈网络很难提取这些局部不变性特征,一般需要进行数据增强来提高性能。

而卷积层有两个很重要的性质:

  • 局部连接:在卷积层(假设是第𝑙 层)中的每一个神经元都只和前一层(第𝑙 − 1层)中某个局部窗口内的神经元相连,构成一个局部连接网络。如图所示,卷 积层和前一层之间的连接数大大减少,由原来的 𝑀𝑙 × 𝑀𝑙−1 个连接变为 𝑀𝑙 × 𝐾个连接,𝐾 为卷积核大小。
  • 权重共享: 作为参数的卷积核𝒘(𝑙) 对于第𝑙 层的所有的神经元都是相同的。

卷积层通过局部连接 + 权重共享,极大减少了参数量。

各个层的作用

卷积层(Convolutional Layer)

  • 功能:提取局部特征(如边缘、纹理、角点等)
  • 机制:
    • 使用多个卷积核(滤波器)扫描输入
    • 每个卷积核检测一种特定模式
    • 输出称为“特征图(Feature Map)”
  • 参数共享:同一卷积核在整个输入上滑动,共享权重 → 参数量大幅减少

池化层(Pooling Layer)

  • 功能:
    • 进行特征选择,降低特征图的空间维度(高/宽)
    • 减少参数数量和计算量
    • 增强模型对微小位移、形变的鲁棒性
  • 常见类型:
    • 最大池化(Max Pooling):取局部区域最大值(最常用)
    • 平均池化(Average Pooling):取局部区域平均值
  • 典型设置:2×2 2 \times 2 2×2 窗口,步长为2 → 尺寸减半

⚠️ 注意:池化层没有可学习参数,只有超参数。

例如最大汇聚过程:

全连接层(Fully Connected Layer)

  • 功能:整合前面提取的高维特征,完成最终任务(分类、回归等)
  • 输入:通常是最后一个池化层或卷积层展平(flatten)后的向量
  • 输出:对应类别数的概率分布(常配合Softmax)或回归值
  • 位置:一般位于网络末端

例如:在ImageNet分类任务中,最后一层FC输出1000维向量,表示属于每个类别的概率。

综合示例

LetNet-5是一个较简单的卷积神经网络。下图显示了其结构:输入的二维图像(单通道),先经过两次卷积层到池化层,再经过全连接层,最后为输出层。整体上是:input layer->convulational layer->pooling layer->activation function->convulational layer->pooling layer->activation function->convulational layer->fully connect layer->fully connect layer->output layer.

整个 LeNet-5 网络总共包括7层(不含输入层),分别是:C1、S2、C3、S4、C5、F6、OUTPUT。

最近更新: 2025/10/4 09:13
Contributors: klc407073648
Prev
神经网络 - 前馈神经网络
Next
神经网络 - 循环神经网络