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

卷积神经网络(CNN)入门学习笔记

什么是 CNN?

CNN,全称 卷积神经网络(Convolutional Neural Network),是一种专门用来处理图片、语音、文本等结构化数据的神经网络。
它模仿人眼识别图像的方式:
从局部到整体,一步步提取特征,最后做出判断。

什么叫“卷积”?

卷积这个词,来源于数学中的卷积操作
简单说,就是用一个小方块(卷积核)在图片上滑动,把相邻像素做个“加权求和”,用来提取特定特征。
比如:

  • 检测边缘
  • 识别线条
  • 找出颜色块

CNN 结构组成

CNN 通常由以下几部分组成:

  1. 卷积层(Convolutional Layer)
  2. 激活函数(Activation Function)
  3. 池化层(Pooling Layer)
  4. 全连接层(Fully Connected Layer)
  5. 输出层(Output Layer)

CNN 常见术语速查表

专有名词含义
卷积核(Filter)提取局部特征的小方块
步长(Stride)卷积核每次移动的格子数
填充(Padding)给图像边缘补零,避免尺寸缩小
激活函数增强模型非线性能力,常用 ReLU
池化降维、保留关键信息,防止过拟合
全连接层将所有特征组合分类
损失函数衡量预测值和真实值的差距

图片识别

图片识别-Neuron Versin

李宏毅老师: 《机器学习》 学习笔记

overall

输入是一张图片,输出是图片的分类: cat/dog…
在这里插入图片描述
计算每一个像素–判断是否是cat
在这里插入图片描述

Cverservation 1 - 不需要观察整张图片

只观察一张图片特定的几个部分,如下面例子中的: 鸟嘴/鸟眼/鸟爪
在这里插入图片描述

Simplification 1 - Typical Setting
  1. kernel size(卷积核(filter)): 3 * 3
  2. all channels
  3. stride(步长)=1:每次移动一个像素,沿着水平+垂直方向移动
  4. padding:就是在输入特征图(图片或序列)边缘周围补上额外像素(通常是 0),目的是为了:
    • 保持输出尺寸不变
    • 控制特征图尺寸变化规律
    更好地提取边缘特征
    在这里插入图片描述

Cverservation 2 - 共享参数

在这里插入图片描述

Simplification 2
原理
  • weight: 决定输入信号对神经元输出的影响程度
  • bias: 偏移值,帮助模型更灵活拟合数据
    在这里插入图片描述
Typical Setting

在这里插入图片描述

图片识别-Filter Version

feature map

在这里插入图片描述

Multiple Convolutional layers

在这里插入图片描述

Comparision of 2 Stories

在这里插入图片描述

Pooling - Max Pooling

卷积操作后,特征图通常很大,这时候用 **subsampling(池化 Pooling)**来降低特征图尺寸,但保留重要特征。

在这里插入图片描述

  • 特征提取(Feature Extraction) 就是:从原始数据中,把能代表事物本质特征的信息挑选出来,作为模型输入的过程。
    • 最大特征(Max Feature / Max Pooling): 从一堆特征值里,取最大值作为代表
    • 平均特征(Average Feature / Average Pooling): 从一堆特征值里,计算平均值作为代表
      在这里插入图片描述

Convolutional Layers + Pooling

在这里插入图片描述

The Whole CNN

在这里插入图片描述

Application Playing Go(略)

在这里插入图片描述

http://www.lryc.cn/news/2394525.html

相关文章:

  • 【优笔】基于STM32的多模态智能门禁系统
  • Metasploit工具使用详解(上)丨小白WEB安全入门笔记
  • Femap许可证与网络安全策略
  • VLAN的作用和原理
  • 深入探讨集合与数组转换方法
  • 让大模型看得见自己的推理 — KnowTrace结构化知识追踪
  • 【HarmonyOS 5应用架构详解】深入理解应用程序包与多Module设计机制
  • 【Oracle】DCL语言
  • MySQL强化关键_017_索引
  • stm32——SPI协议
  • Linux 下如何查看进程的资源限制信息?
  • 【备忘】php命令行异步执行超长时间任务
  • 对于ARM开发各种手册的分类
  • java开发中#和$的区别
  • 在 RK3588 上通过 VSCode 远程开发配置指南
  • OpenHarmony标准系统-HDF框架之音频驱动开发
  • HTML Day03
  • 篇章六 数据结构——链表(二)
  • Python60日基础学习打卡Day39
  • 吴恩达MCP课程(3):mcp_chatbot
  • MySQL访问控制与账号管理:原理、技术与最佳实践
  • AWS 创建VPC 并且添加权限控制
  • langchain学习 01
  • 【清晰教程】查看和修改Git配置情况
  • JAVA 常用 API 正则表达式
  • 光电设计大赛智能车激光对抗方案分享:低成本高效备赛攻略
  • Python实现P-PSO优化算法优化BP神经网络回归模型项目实战
  • Microsoft的在word中选择文档中的所有表格进行字体和格式的调整时的解决方案
  • C++23:关键特性与最新进展深度解析
  • Rust并发编程实践指南