【深度学习】常见模型-卷积神经网络(Convolutional Neural Networks, CNN)

卷积神经网络(CNN)

概念简介

卷积神经网络(Convolutional Neural Networks, CNN)是一种专门用于处理数据具有网格状拓扑结构(如图像、语音)的深度学习模型。它通过卷积操作从输入数据中提取局部特征,并逐层构建更复杂的特征表示,广泛应用于图像分类、目标检测、语音识别等领域。


关键组成部分
  1. 卷积层(Convolutional Layer)

    • 使用卷积核(滤波器)在输入上滑动,提取局部特征。
    • 每个卷积核会学习一个特定的特征,例如图像的边缘、纹理等。
  2. 激活函数(Activation Function)

    • 常用 ReLU 激活函数,使模型具有非线性能力。
    • 如:ReLU(x)=max⁡(0,x)\text{ReLU}(x) = \max(0, x)ReLU(x)=max(0,x)
  3. 池化层(Pooling Layer)

    • 减少特征图的维度,降低计算复杂度,同时保留主要特征。
    • 常见方法:最大池化(Max Pooling)和平均池化(Average Pooling)。
  4. 全连接层(Fully Connected Layer, FC Layer)

    • 将提取到的特征展平并输入到全连接神经网络,用于分类或回归任务。
  5. 损失函数(Loss Function)

    • 衡量预测值与真实值之间的差异,指导模型更新参数。
    • 常用:交叉熵损失(分类)或均方误差(回归)。

CNN 工作流程
  1. 输入图像(如 28 × 28 的灰度图片)。
  2. 通过多层卷积操作提取局部特征。
  3. 经过池化层压缩特征图的尺寸。
  4. 多次迭代后,提取高层语义特征。
  5. 最后通过全连接层输出预测结果。

代码示例

以下是使用 Keras 实现简单 CNN 的示例:

python 复制代码
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# 构建模型
model = Sequential([
    # 卷积层 + 激活函数
    Conv2D(filters=32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)),
    # 池化层
    MaxPooling2D(pool_size=(2, 2)),

    # 第二个卷积层
    Conv2D(filters=64, kernel_size=(3, 3), activation='relu'),
    MaxPooling2D(pool_size=(2, 2)),

    # 展平层
    Flatten(),
    # 全连接层
    Dense(units=128, activation='relu'),
    # 输出层
    Dense(units=10, activation='softmax')  # 假设输出为 10 个类别
])

# 编译模型
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])

# 查看模型结构
model.summary()

输出结果

Matlab 复制代码
Model: "sequential"
_________________________________________________________________
 Layer (type)                Output Shape              Param #   
=================================================================
 conv2d (Conv2D)             (None, 26, 26, 32)        320       
                                                                 
 max_pooling2d (MaxPooling2  (None, 13, 13, 32)        0         
 D)                                                              
                                                                 
 conv2d_1 (Conv2D)           (None, 11, 11, 64)        18496     
                                                                 
 max_pooling2d_1 (MaxPoolin  (None, 5, 5, 64)          0         
 g2D)                                                            
                                                                 
 flatten (Flatten)           (None, 1600)              0         
                                                                 
 dense (Dense)               (None, 128)               204928    
                                                                 
 dense_1 (Dense)             (None, 10)                1290      
                                                                 
=================================================================
Total params: 225034 (879.04 KB)
Trainable params: 225034 (879.04 KB)
Non-trainable params: 0 (0.00 Byte)
_________________________________________________________________

特点
  • 参数共享:通过卷积核共享参数,降低模型复杂度。
  • 空间不变性:卷积操作具有平移不变性,适合图像任务。
  • 局部连接:仅连接相邻像素,减少计算负担。

应用场景
  1. 图像分类:如手写数字识别(MNIST 数据集)。
  2. 目标检测:如 YOLO、Faster R-CNN。
  3. 语义分割:如自动驾驶中的道路标记。
  4. 医疗图像处理:如肿瘤检测。
  5. 风格迁移:如图像艺术化处理。

优缺点

优点

  • 能有效提取图像、语音等数据的局部特征。
  • 参数少、计算高效。
  • 易于扩展和组合。

缺点

  • 对小数据集可能过拟合,需要数据增强或正则化。
  • 对时间序列数据不适用(适合使用 RNN 或 Transformer)。

CNN 是深度学习领域的一项革命性方法,其强大的特征提取能力让其成为许多视觉任务的首选工具。

相关推荐
tedcloud1232 小时前
OpenShip 部署指南:开源 AI 应用快速启动模板 Linux 搭建实践
linux·运维·服务器·人工智能·开源
chaojihaomai5 小时前
AI电商商品图生成中的材质保真问题——扩散模型重建优先级分析与锁定式方案
人工智能·材质
大模型探索者7 小时前
2026 企业智能体平台选型指南:从通用到行业深耕,怎么选?
大数据·人工智能
深圳行云创新7 小时前
北极星知识图谱平台|太空越来越“拥挤”,知识图谱如何预测空间碎片碰撞风险?
人工智能·知识图谱
Am-Chestnuts7 小时前
国产AI多轮对话归档与多格式导出实践
人工智能·word
麻瓜生活睁不开眼8 小时前
Android16修改全局桌面视图边框四直角显示为弧边圆角
android·java·深度学习
workflower9 小时前
装备企业的 AI 路线图
人工智能·深度学习·机器学习·设计模式·机器人
AKAMAI9 小时前
Linode接口及默认防火墙现已全面开放使用
人工智能·云计算
前端开发江鸟9 小时前
RAG 回答错了,问题到底出在召回、重排,还是生成?
人工智能
美狐美颜SDK开放平台9 小时前
直播app开发如何实现主播级美颜效果?美颜sdk开发方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美颜api