CNN:卷积到底做了什么?

卷积神经网络(Convolutional Neural Network, CNN) 是一种深度学习模型,专门用于处理具有网格结构的数据(如图像、视频等)。它在计算机视觉领域表现卓越,广泛应用于图像分类、目标检测、图像分割等任务。CNN 的核心思想是通过卷积操作从数据中提取局部特征,并逐步构建高层次的语义信息。


CNN 的基本结构

  1. 卷积层(Convolutional Layer)

    • 卷积层是 CNN 的核心组件,负责从输入数据中提取局部特征。
    • 卷积核(Kernel/Filter) 在输入数据上滑动,计算局部区域的加权和,生成特征图(Feature Map)。
    • 卷积操作后通常会使用非线性激活函数(如 ReLU),以引入非线性能力,增强模型的表达能力。
  2. 池化层(Pooling Layer)

    • 池化层用于降采样,减少特征图的尺寸,从而降低计算量并增强模型的鲁棒性。
    • 常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。
  3. 全连接层(Fully Connected Layer)

    • 在卷积和池化操作之后,特征图会被展平并输入全连接层,用于最终的分类或回归任务。
  4. 输出层(Output Layer)

    • 输出层是 CNN 的最后一层,负责将全连接层的输出映射到最终的类别或回归值。
    • 在分类任务中,通常使用 Softmax 函数输出概率分布;在回归任务中,则直接输出数值。

卷积核的作用与组成

卷积核是卷积操作的核心,其主要功能是从输入数据中提取局部特征,进而构建高层次的语义信息。卷积操作本质上是一种加权求和运算,通过滑动窗口的方式,在输入数据上施加不同的卷积核,提取局部区域的特征。

卷积核的关键要素包括:

  1. 权重参数(Weights)

    • 卷积核是一个小型矩阵,其中的值是可学习的权重。这些权重在训练过程中通过梯度下降和反向传播不断优化,使其能够自动提取有意义的特征。
  2. 偏置项(Bias)

    • 每个卷积核通常会有一个额外的可学习参数------偏置项 ( b )。偏置项的作用是调整特征图的整体偏移量,使得网络在特定输入下可以更灵活地激活特定特征。
  3. 尺寸(Kernel Size)

    • 卷积核的大小决定了它能捕捉的局部特征范围。常见的卷积核尺寸有 ( 3 ×3 )、( 5 × 5 )、( 7 × 7 ) 等。
  1. 步长(Stride)

    • 步长决定了卷积核在输入数据上滑动的间隔。例如,步长为 1 时,卷积核每次移动 1 个像素;步长为 2 时,每次移动 2 个像素。
  2. 填充(Padding)

    • 填充是指在输入数据的边缘添加额外的像素(通常为 0),以控制输出特征图的大小,同时确保边缘像素也能被充分参与卷积计算,从而保留更多的边缘信息。
  1. 通道数(Channels)

    • 卷积核的通道数需要与输入数据的通道数匹配。例如,对于 RGB 图像(3 通道),卷积核的深度也必须是 3。每个卷积核会生成一个输出通道,多个卷积核可以生成多通道的特征图。
  2. 激活函数(Activation Function)

    • 卷积核的输出通常会经过一个激活函数(如 ReLU),以引入非线性特性。激活函数决定了卷积核提取的特征是否被激活。

特征图(Feature Maps)

特征图是通过卷积操作从输入数据中提取的局部特征表示。每个卷积核在输入数据上滑动并计算加权和,生成一个特征图。多个卷积核可以生成多通道的特征图。

  • 每个卷积核提取不同的特征,因此网络中的每个卷积层输出一个或多个特征图,这些特征图共同构成了输入数据的不同层次表示。

卷积的具体计算过程

在计算机眼中,图像是以像素矩阵的形式存储的,每个像素都有一个数值。例如,RGB 彩色图像中,每个像素由 3 个通道(R、G、B)组成,每个通道的取值范围为 0-255。当图像输入 CNN 时,像素值通常会被归一化到 0-1 或 -1 到 1 之间,以提高训练稳定性。

卷积是如何计算响应值得到特征图的呢?

假设:

  • 输入图像的像素值为 ( x ),
  • 卷积核的权重为 ( w ),
  • 偏置项为 ( b ),

则卷积操作的输出 ( y ) 可以表示为:

其中,( f ) 是激活函数(如 ReLU)。

以下是一个具体的例子:

  • 使用一个 ( 3 × 3 ) 的卷积核,其权重矩阵为:
  • 输入图像如下图(左)所示,设置窗口滑动步长为 1,偏置 ( b = 0 ),得到下图(右)的特征图。

    在CNN的整体结构中,特征图变化如下:

卷积的作用总结

简单来说,卷积的作用就是让 CNN 从像素级数据中提取有意义的特征,最终用于分类、检测、分割等任务。通过多层卷积操作,CNN 能够从低级特征(如边缘、纹理)逐步构建高级特征(如形状、对象),从而实现对复杂数据的理解和分析。

相关推荐
B博士38 分钟前
科研进展 | JAG: 大光斑高光谱激光雷达遥感辐射传输模型从垂直视角解锁森林叶绿素分布密码
人工智能·jag·高光谱激光雷达·森林分层叶绿素诊断
Yao.Li2 小时前
PVN3D ORT CUDA Custom Ops 实现与联调记录
人工智能·3d·具身智能
诺伦2 小时前
LocalClaw 在智能制造的新机会:6部门AI+电商政策下的工厂AI升级方案
人工智能·制造
小陈工4 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
墨染天姬8 小时前
【AI】端侧AIBOX可以部署哪些智能体
人工智能
AI成长日志8 小时前
【Agentic RL】1.1 什么是Agentic RL:从传统RL到智能体学习
人工智能·学习·算法
2501_948114248 小时前
2026年大模型API聚合平台技术评测:企业级接入层的治理演进与星链4SAPI架构观察
大数据·人工智能·gpt·架构·claude
小小工匠8 小时前
LLM - awesome-design-md 从 DESIGN.md 到“可对话的设计系统”:用纯文本驱动 AI 生成一致 UI 的新范式
人工智能·ui
黎阳之光8 小时前
黎阳之光:视频孪生领跑者,铸就中国数字科技全球竞争力
大数据·人工智能·算法·安全·数字孪生
小超同学你好8 小时前
面向 LLM 的程序设计 6:Tool Calling 的完整生命周期——从定义、决策、执行到观测回注
人工智能·语言模型