卷积神经网络 CNN 超详细学习笔记

一、图像基础入门

1. 图像像素原理

  • 图像由无数像素点组成
  • 像素取值范围:0 ~ 255
  • 像素越靠近 0 越黑,越靠近 255 越白

2. 彩色图像结构

  • 彩色图由 R、G、B 三通道构成
  • 图像标准格式:H(高)× W(宽)× C(通道)

3. Python 图像操作

  • plt.imread() 读取图片
  • plt.imshow() 展示图片
  • 可快速生成全黑、全白测试画布

二、卷积神经网络 CNN 整体介绍

1. 什么是CNN

卷积神经网络(CNN)是专门处理图像的神经网络,靠卷积结构自动提取图像特征。

2. CNN 四大核心层

  1. 卷积层:提取边缘、纹理、局部特征
  2. 激活层:引入非线性,常用 ReLU
  3. 池化层:降维、缩小尺寸、减少计算量
  4. 全连接层:整合特征,输出分类结果

三、卷积层详解

1. 卷积运算原理

用卷积核(过滤器)在图像上滑动,和局部像素做点积求和,生成新的特征图。

2 两个关键参数

Padding 填充

  • 在图像边缘补 0 像素
  • 作用:防止边缘特征丢失,可保持输出尺寸不变

Stride 步长

  • 卷积核每次滑动的像素距离
  • 步长越大,特征图尺寸越小

3 多通道 / 多卷积核

  • 彩色图 3通道 匹配 3通道卷积核
  • 一个卷积核输出一张特征图
  • 多个卷积核输出多张特征图

4 特征图尺寸公式

\[N = \frac{W - F + 2P}{S} + 1 \]

  • W:输入尺寸
  • F:卷积核大小
  • P:填充
  • S:步长

5 PyTorch 卷积API

nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)
  • in_channels:输入通道数
  • out_channels:卷积核个数/输出通道
  • kernel_size:卷积核大小(常用3×3)

四、池化层详解

1. 池化作用

  • 特征图下采样降维
  • 减少参数量、降低计算开销
  • 保留主要特征,弱化噪声

2 两种池化方式

  1. 最大池化:取区域最大值,保留边缘纹理,最常用
  2. 平均池化:取区域平均值,特征更平滑

3 多通道池化特点

池化对每个通道单独计算,输出通道数和输入保持一致。

4 PyTorch 池化API

# 最大池化
nn.MaxPool2d(kernel_size, stride, padding)
# 平均池化
nn.AvgPool2d(kernel_size, stride, padding)

五、CIFAR10 图像分类实战

1 数据集介绍

  • 训练集:50000 张
  • 测试集:10000 张
  • 图片大小:32×32×3
  • 共 10 个分类:飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车

2 标准CNN网络结构

  1. 卷积层 + ReLU + 最大池化
  2. 再一层卷积 + ReLU + 最大池化
  3. 三层全连接层,最后输出10分类

3 完整开发流程

  1. 加载 CIFAR10 数据集
  2. 搭建 CNN 网络模型
  3. 选择:交叉熵损失 + Adam 优化器
  4. 循环训练、更新参数
  5. 保存模型、测试集评估准确率

4 实验结果

  • 基础网络测试准确率约 57%

5 模型优化方向

  • 增加卷积核数量
  • 加深网络层数
  • 调整学习率、更换优化器
  • 增加正则化、数据增强等

六、学习总结

  1. 图像由 0~255 像素、RGB 三通道组成;
  2. CNN 核心:卷积提取特征 + 池化降维 + 全连接分类;
  3. 卷积靠 Padding 保边缘、Stride 控尺寸,套公式可计算特征图大小;
  4. 最大池化适合图像任务,平均池化适合平滑场景;
  5. 掌握 CIFAR10 实战,就具备基础CNN图像分类开发能力。
posted @ 2026-05-21 09:14  Petula  阅读(51)  评论(0)    收藏  举报