当前位置: 首页 > news >正文

50、CNN的概述介绍

CNN的概述

  • 卷积层: 卷积核(小的矩阵)进行点乘求和
  • 池化层: 提取特征(最大值提取、平均提取)
  • 全连接:判断分类

卷积之后为什么需要池化呢?

  • 因为信息太多了,计算量太大,我们就只计算最大的数据。就是池化
  • 卷积层: 加权求和 (W 是卷积核权重(小矩阵),x 是局部输入(小块像素))
  • 激励层:ReLU激活函数
  • 池化层:去区域的平均值或者最大值。降低参数的数量级,例如2*2的就是4变1了
  • 全连接层: 输出CNN模型的预测结果了

总结

  • 卷积神经网络应用
  • 图像分类
  • 目标检测
  • 图像分割
  • 人脸识别
  • 医学图像分析
  • 自动驾驶

CNN的卷积层是加权求和的理解

  • 卷积核的权重(kernel weights)就是神经网络中的权重参数 ( W )
  • 图像局部区域的像素值就是输入 ( x )
  • 卷积层计算的过程就是:对局部输入 ( x ) 和权重 ( W ) 做点乘(加权求和)
  • 然后加上偏置 ( b ),再通过激活函数非线性变换

其中:

  • ( W ) 是卷积核权重(小矩阵)
  • ( x ) 是局部输入(小块像素)
  • ( f ) 是激活函数,比如 ReLU

你可以把卷积层看作:

“一组小型的局部权重 ( W ),在整个图像上滑动应用,不断做点乘 + 激活”

这也是卷积层跟全连接层的最大区别:

  • 全连接层:权重矩阵对所有输入做点乘
  • 卷积层:小权重核对局部输入做点乘,权重在空间共享

总结:

角色

物理意义

数学对应

卷积核权重

小的权重矩阵

( W )

局部输入

图像某块像素数据

( x )

偏置

额外可训练的偏移量

( b )

激活函数

非线性变换

( f(\cdot) )


一、CNN 是干什么的?(一句话)

CNN(卷积神经网络) = 专门“看图”的神经网络
它不是把图片拉平成一长串数字,而是像人一样:先看局部,再看整体

二、CNN 的三大核心结构

你提的这三个就是CNN 的骨架

  1. 卷积层(Convolution)
  2. 池化层(Pooling)
  3. 全连接层(Fully Connected)

我按“干什么 → 怎么做 → 小例子”来讲。


1️⃣ 卷积层(Conv Layer)

🧠 干什么?

提取局部特征

比如:

  • 边缘
  • 角点
  • 纹理
  • 简单形状

🔧 怎么做?

用一个小窗口(卷积核)在图像上滑动:

原图像(8×8) ⬇ 3×3 卷积核 滑动 ⬇ 特征图(Feature Map)

👀 直观例子

假设图像里有一条竖线:

00010000 00010000 00010000 00010000

卷积核(检测竖线):

-1 2 -1 -1 2 -1 -1 2 -1

👉 卷积后:

  • 竖线位置数值很大
  • 其他地方接近 0

📌卷积层 ≈ 自动“找特征”


📌 重要特点

  • 参数少(共享权重)
  • 保留空间结构
  • 多个卷积核 → 多种特征

2️⃣ 池化层(Pooling Layer)

🧠 干什么?

压缩特征,保留重点

🔧 怎么做?

在小区域里取最大值或平均值

Max Pooling(最常用)
2×2 区域 [1 3] [2 0] → 3

👀 直观例子

卷积后特征图:

0 2 1 0 3 5 2 1 0 1 0 2 1 2 1 0

2×2 最大池化后:

5 2 2 2

📌只关心“有没有这个特征”,不关心精确位置


📌 好处

  • 减少计算量
  • 防止过拟合
  • 对小位移不敏感(平移不变性)

3️⃣ 全连接层(Fully Connected)

🧠 干什么?

做最终判断(分类 / 回归)

🔧 怎么做?

  • 把前面的特征图拉平成一维
  • 和普通 ANN 一样算
特征图 → 向量 → 全连接 → 输出

👀 直观例子(猫狗分类)

卷积层学到:

  • 有耳朵 ✔
  • 有胡须 ✔
  • 有眼睛 ✔

全连接层综合这些特征:

→ 这是猫(0.92) → 这是狗(0.08)

三、把三者连起来(完整 CNN 流程)

原图(32×32) ↓ 卷积层(边缘、纹理) ↓ 池化层(压缩) ↓ 卷积层(更复杂形状) ↓ 池化层 ↓ 全连接层 ↓ 分类结果

四、一个最小 PyTorch 示例(看个整体感觉)

import torch.nn as nn model = nn.Sequential( nn.Conv2d(3, 16, kernel_size=3), # 卷积层 nn.ReLU(), nn.MaxPool2d(2), # 池化层 nn.Conv2d(16, 32, kernel_size=3), nn.ReLU(), nn.MaxPool2d(2), nn.Flatten(), # 拉平 nn.Linear(32 * 6 * 6, 10) # 全连接 )

五、和你之前 ANN 的最大区别(一定要记住)

ANN

CNN

拉平成一维

保留空间结构

参数多

参数少

不适合图像

专为图像


一句话终极总结

**卷积层:找特征
池化层:留重点
全连接:做判断**

如果你愿意,下一步我可以:

  • 手算卷积 + 池化带你算一遍
  • 或对比CNN vs Transformer 看图
  • 或直接结合你现在的plt.imshow中间特征图画出来

你选一个 👇

http://www.jsqmd.com/news/135731/

相关文章:

  • 2-[(1-戊炔酰基)氨基]-2-脱氧-D-葡萄糖 — 代谢调控研究的新型探针试剂 1635433-54-3
  • 千匠大宗电商系统:赋能煤炭能源行业产业升级
  • 51、卷积层(计算规则)
  • 【协议】vlan
  • 机械臂轨迹规划算法,基于改进灰狼加353多项式的机械臂轨迹规划时间最优算法。 改进灰狼改进的灰...
  • 基于改进鹈鹕算法(IPOA)优化BP神经网络的智能数据回归预测模型——IPOA-BP模型及其评...
  • MATLAB驱动防滑转模型ASR模型 ASR模型驱动防滑转模型 ?牵引力控制系统模型
  • 【技术报告解读】DeepSeek-OCR: Contexts Optical Compression
  • Java毕设选题推荐:基于SpringBoot的非遗产品交流销售平台的设计与实现基于springboot的非遗文化传承与推广平台系统【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 超越CRUD:在AI时代,用TDD和整洁代码构筑不可替代的护城河
  • 基于LabVIEW的双通道波形发生器:探索信号的多彩世界
  • CI/CD时代的“零容忍“原则:为什么一次破损的主干提交会摧毁整个团队?
  • MATLAB 同步磁阻电机 ESO + PR 控制闭环仿真:转速电流双优的实现
  • 绿电直连项目的审批流程与政策申报指南
  • 计算机Java毕设实战-基于java零售与仓储管理系统的设计与实现基于javaweb的超市/仓储管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Java毕设选题推荐:基于java零售与仓储管理系统的设计与实现基于Java的仓库管理系统(进销存)完整设计与实战【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 一把烙铁干翻电机控制!基于STM32的工业级变频器实战
  • 鸿蒙应用开发之通过Swiper实现京东m站功能入口效果
  • 内容负责人必读:构建企业GEO优化体系的几大关键
  • 烦心之烦心
  • 长忆——我的OI回忆录
  • VMware Horizon 与 Docker 冲突排错记录
  • 鸿蒙应用开发之通过Scroll、nestedScroll实现京东秒杀嵌套滚动效果
  • 【ComfyUI错误】【SmoothMixWan22工作流】wanblockswap节点不显示解决方法
  • Nacos服务注册
  • Java毕设项目:基于java零售与仓储管理系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 团队作业6——项目复审与事后分析
  • 数据结构
  • 2025最新!9个AI论文平台测评:继续教育写论文痛点全解析
  • Iridescent:Day34