深度学习——卷积神经网络CNN

卷积神经网络CNN

图像原理

我们眼中的图像,在计算机世界里其实是一组有序排列的数字矩阵。

对于黑白灰度图,每个像素的数值范围是 0-255,0 代表最暗的黑色,255 代表最亮的白色,整个图像就是一个二维矩阵。

彩色图像则采用 RGB 颜色模型,通过红、绿、蓝三原色的不同比例组合生成各种色彩,对应着三个并列的二维矩阵,也就是三维张量(Tensor),可以用 “宽 × 高 × 深(通道数)” 来描述,其中每个矩阵称为一个通道(Channel)。这种数字化表示是 CNN 能够处理图像的基础。

图像不变性

图像识别的核心挑战在于 “不变性”—— 一个物体无论在画面的左侧还是右侧(平移不变性)、旋转一定角度(旋转不变性)、缩放大小(尺度不变性),甚至在不同光照条件下(光照不变性),都应该被准确识别为同一物体。

希望所建立的网络可以尽可能的满足这些不变性特点

传统神经网络面对这类变体时显得力不从心,因为它会将图像像素全部摊平为一维向量输入,丢失了空间结构信息,需要海量标注数据和极深的网络才能勉强学习这些变体特征。而 CNN 通过特殊的网络结构,天然具备了学习这些不变性的能力。

如下图所示:

卷积层

什么是卷积?

对图像(不同的窗口数据)和卷积核(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

卷积层原理

a、步长stride:每次滑动的位置步长。

b. 卷积核的个数:决定输出的depth厚度。同时代表卷积核的个数。

c. 填充值zero-padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。

数据窗口每次移动两个步长取3*3的局部数据,即stride=2。

两组神经元(卷积核),即depth=2,意味着有两个滤波器。

zero-padding=1

神经网络的构造

图片精通卷积核处理后的样子

与人眼观看事物原理相似,先看事物的轮廓

卷积层计算的结果

例如:输入数据为32*32*3的图像,用10个5*5*3的卷积核来进行操作,步长为1,边界0填充为2, 最终输出结果为?

(32-5+2*2)/1 +1 =32,输出规模为32*32*10的特征图

池化层

池化层的作用

一种降采样,减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合

常见的池化层

最大池化、平均池化、全局平均池化、全局最大池化。

平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。

最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。是最为常见的。 通常来说,CNN的卷积层之间都会周期性地插入池化层。

池化层操作方法

与卷积层类似,池化层运算符由一个固定形状的窗口组成,该窗口根据其步幅大小在输入的所有区域上滑动,为固定形状窗口(有时称为 池化窗口)遍历的每个位置计算一个输出。 然而,不同于卷积层中的输入与卷积核之间的互相关计算,池化层不包含参数。

最大池化的原理分析

Max pooling的主要功能是压缩,却不会损坏识别结果。 这意味着卷积后的Feature Map中有对于识别物体不必要的冗余信息。 那么我们就反过来思考,这些“冗余”信息是如何产生的。

全连接层(Fully Connected Layer)

当抓取到足以用来识别图片的特征后,接下来的就是如何进行分类。

全连接层(也叫前馈层)就可以用来将最后的输出映射到线性可分的空间。 通常卷积网络的最后会将末端得到的长方体平摊(flatten)成一个长长的向量,并送入全连接层配合输出层进行分类。

感受野

例如图片是3通道:

卷积核为7*7的,则卷积核所需要的参数个数为:7*7=49个

卷积核为3个3*3的,则卷积核所需要的参数个数为:(3*3*3) =27

一张250*250的图片和一张500*500的图片,卷积层的权重参数数谁多?

答案:一样多

卷积神经网络的多种模型

LeNet:第一个成功的卷积神经网络应用

AlexNet:类似LeNet,但更深更大。使用了层叠的卷积层来抓取特征(通常是一个卷积层马上一个max pooling层)

ZF Net:增加了中间卷积层的尺寸,让第一层的stride和filter size更小。

GoogLeNet:减少parameters数量,最后一层用max pooling层代替了全连接层,更重要的是Inception-v4模块的使用。

VGGNet:只使用3x3 卷积层和2x2 pooling层从头到尾堆叠。 ResNet:引入了跨层连接和batch normalization。

DenseNet:将跨层连接从头进行到尾。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1165500.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【保姆级】一招教你彻底关闭Windows系统自动更新(近期Win11严重BUG,不要更新),禁止win11更新

谁没被 Windows 更新背刺过啊!老电脑越更越卡还找不到回退按钮… 为啥系统更新这么招人烦? 不是反对更新,是这强制打扰的操作太离谱: ✅ 偷偷占地:后台悄悄下载几个 G 的安装包,C 盘空间莫名缩水&#…

django-flask基于python的观赏鱼养殖互助商城系统的设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着观赏鱼养殖行业的快速发展,养殖爱好者对专业化的信息交流与商品交易平台需求日益增长。基于Python的D…

我就纳闷了,岁数大了就这么不受人待见啦?然后有人说了,你就写写需求,用用框架,画画UI,复制粘贴,你只是用一年的经验工作了十年而已,一点价值都没有! 你这么大岁数,应该与时俱进,不断学习新技术,1或

我就纳闷了,岁数大了就这么不受人待见啦?然后有人说了,你就写写需求,用用框架,画画UI,复制粘贴,你只是用一年的经验工作了十年而已,一点价值都没有! 你这么大岁数&#x…

告别“玩具”级开发:如何用向量引擎构建企业级 AI Agent 集群?(含 Python 异步并发实战)

万字详解:当 GPT-5.2 遇上 Veo3,全栈开发者如何利用“向量引擎”实现弯道超车? 🚀 前言:AI 开发的“下半场”已经开始 如果说 2023 年是“聊天机器人(Chatbot)”的元年。 那么 2025 年&#x…

django-flask基于python的高中信息技术在线学习网站的设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着信息技术的快速发展,在线学习平台逐渐成为教育领域的重要组成部分。本研究基于Python语言&#xff0c…

元宇宙崩溃实录:缺乏AI压力测试引发的虚拟世界雪崩

—— 一份给软件测试从业者的技术警示录 一、灾难现场:虚拟世界的“切尔诺贝利时刻” (模拟事故时间:元历2030年1月15日 16:04) 当「寰宇互联」元宇宙平台迎来建网三周年庆典时,1200万用户涌入虚拟主城。16时04分&…

AI后端工程化:FastAPI + Pydantic + JWT 鉴权实战,从零构建 AI 接口服务

作者:飞哥(一个喜欢讲故事的全栈开发者,擅长把复杂的代码翻译成“人话”) 难度:⭐⭐⭐ 关键词:FastAPI, Async, Pydantic, JWT, 鉴权大家好,我是飞哥!👋 在之前的课程里&…

短视频缺音效?2026年免费音效素材网站推荐榜单 自媒体/影视后期/游戏

一、引言:免费音效素材需求激增,品质与版权成关键痛点据中国音像与数字出版协会2025年《数字音效素材行业发展报告》显示,国内自媒体创作、影视后期制作、游戏开发等领域对免费音效素材的年需求量达48亿次,较上年增长51%。但行业调…

比如我现在左转没看到门左走,然后右转也没看到门后退,结果过了门了,最后一步奖励100,训练的时候会怎么修改神经网络 gru+ppo,还有离门就差一步结果跑出去绕了5步最后奖励20

我来详细解释一下在GRUPPO算法中,神经网络是如何根据这些情况进行训练和更新的。 PPO训练过程中的神经网络更新机制 1. 奖励信号传播 # 在 [GRUPPOAgent.update](file:///e%3A/code/my_python_server/sifu_control/ppo_networks.py#L576-714) 方法中:# 计…

扫描线算法

一.简介扫描线算法(Sweep Line Algorithm)是一种用于高效解决几何问题(尤其是设计区间,矩形,线段等)的经典算法思想。扫描线算法的核心思想是:用一条假象的线在平面上扫过整个图形,将…

ue5 设置分辨率笔记

3种方法: https://blog.csdn.net/weixin_52555766/article/details/134695226 测试没起作用。

[原创]基于CCO-ELM多输出回归+SHAP可解释性分析 Matlab代码(多输入多输出)

目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 (CCO-ELMSHAP)基于杜鹃鲶鱼算法优化极限学习机的数据多输入多输出SHAP可解释性分析的回归预测模型 1、在机器学习和深度学习领域,模型复杂度的不断攀升使得决策过程的可解释性成为研究热点。模型…

11. 命令缓冲区和DMA

1.命令缓冲区和DMA1.命令缓冲区和DMA 两者是"协作关系" —— CPU先把"数据上传指令"写入命令缓冲区, GPU执行指令时, 底层通过DMA完成实际的数据拷贝a.命令缓冲区- 本质: CPU写给GPU的"指令清单"(内存块)- 类比: 你填的"快递单"(写清楚…

【Java】万字解读Java的动态代理(JDK原生动态代理、CGLIB动态代理)_java 动态代理,零基础入门到精通,收藏这篇就够了

1. 前言 动态代理在Java中有着广泛的应用,比如 Spring AOP、RPC 远程调用、Java 注解对象获取、日志、用户鉴权、全局性异常处理、性能监控,甚至事务处理等。 下面我将着重的介绍两个常用的动态代理:JDK原生动态代理 和 CGLIB 动态代理。 …

[原创]基于CCO-LSSVM多输出回归+SHAP可解释性分析 Matlab代码(多输入多输出)

目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 (CCO-LSSVMSHAP)基于杜鹃鲶鱼算法优化最小二乘向量机的数据多输入多输出SHAP可解释性分析的回归预测模型 1、在机器学习和深度学习领域,模型复杂度的不断攀升使得决策过程的可解释性成为研究热点…

12. CPU → GPU数据上传 + 渲染指令执行流程

1.CPU → GPU数据上传 渲染指令执行流程 2.绑定GPU显存中的VBO/IBO说明1.CPU → GPU数据上传 渲染指令执行流程 以渲染一个3D对象为例, 全流程如下1).CPU准备阶段a.CPU在内存中整理好顶点数据、索引数据、常量缓冲区参数(比如 MVP 矩阵)b.CPU确定本次渲染的渲染状态(深度测试…

java中反射机制的应用场景,零基础入门到精通,收藏这篇就够了

1. 动态代理 动态代理是Java反射机制的一个重要应用场景。通过动态代理,可以在运行时创建代理类并处理方法调用。动态代理在Java中的主要应用场景是AOP(面向切面编程),如事务管理、日志记录、权限控制等。 示例: im…

django基于python的秦宇宙智慧游乐场游乐园门票售票系统网站的设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 随着信息技术的快速发展,智慧化管理系统在游乐园行业的应用日益广泛。本文设计并实现了一个基于Python和D…

Java 开发转前端:利用 AI 竟然如此简单_java 对象生成前端文档,零基础入门到精通,收藏这篇就够了

🔥关注墨瑾轩,带你探索编程的奥秘!🚀 🔥超萌技术攻略,轻松晋级编程高手🚀 🔥技术宝库已备好,就等你来挖掘🚀 🔥订阅墨瑾轩,智趣学习不…

[原创]基于ELM多输出回归+SHAP可解释性分析+NSGAII多目标优化算法的工艺参数优化 Matlab代码

目录 1、代码简介 2、代码运行结果展示 3、代码获取 1、代码简介 (ELMSHAP)基于ELM极限学习机的数据多输入多输出SHAP可解释性分析的回归预测模型 SHAP部分: 1、在机器学习和深度学习领域,模型复杂度的不断攀升使得决策过程的可解释性成为研究热点…