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 能够从低级特征(如边缘、纹理)逐步构建高级特征(如形状、对象),从而实现对复杂数据的理解和分析。

相关推荐
汤姆宝库1 小时前
世界模型深拆:视频生成、潜在模拟与物理直觉
人工智能
weixin_468466855 小时前
从“看懂”到“做到”:视觉-语言-动作模型如何让机器人真正执行指令
人工智能·ai·机器人·大语言模型·前沿科技
朋友圈自动点赞工具5 小时前
科学AI插件化:从蛋白质结构到古籍修复
人工智能
龙粤GEO5 小时前
实体Entity在GEO中代表什么含义
人工智能
剑雨巍巍7 小时前
AI Agent面试之基础概念
人工智能
微帧Visionular7 小时前
AI视频单帧清晰,播放时却闪烁,原因是什么?
人工智能·深度学习·音视频
武子康7 小时前
MultiNet6 空闲崩溃:`EXCVADDR=0x8` 后又出现 `CORRUPT HEAP`
人工智能·后端·agent
云智慧AIOps社区7 小时前
智能巡检机器人应用场景解析:机房巡检、园区安防、管廊巡视与展厅导览
人工智能·机器人·具身智能·智能巡检机器人·企业级智能巡检机器人·机房巡检机器人·导览机器人
EnCi Zheng7 小时前
Agent 如何进行工具调用:从一次 Function Calling 到生产级工具编排的完整链路
大数据·人工智能·agent·ai编程·工具调用
赛博守夜人7 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全