深度学习入门(第三天)——卷积神经网络
一、卷积神经网络应用领域
CV领域发展:

比赛中预测错误率的百分比,每年逐步下降。Human是人类肉眼的识别能力,2016年开始已经远高于人类肉眼死别能力,后面就取消了该方向的比赛了。
检测任务:

分类与检索:

分类:将图片分到对应类别。
检索:找到相似的图片。
还有图片重构、无人驾驶、人脸识别
二、卷积的作用
卷积网络与传统网络的区别:

输出的数据直接是三维的,还多了深度
整体架构:
输入层、卷积层、池化层、全连接层

这里只有卷积层和池化层我们没有了解过
卷积做了什么事:

比如一个猫的图,眼睛鼻子特征和周围环境特征的重要性明显不一样,需要区别对待。先把图像进行分割(最左边),分割成多个小区域,提取其中一个小区域(第二个5×5×3),蓝色图的右下角3×3矩阵,大字体的值是X的值,而小字体的值是w权重,会不断循环获取最优的w权重和对应的值,并输出右边绿色的14(特征值)。
如果看了不理解,下面的具体计算方法一定能帮助你理解。
三、卷积的计算方法

input是输入,W0是第一层的权重,W1是第二层的权重,Output是输出
我们以input三个块(RGB三颜色)左上角3×3矩阵值 和 第二层W1来计算,内积是乘法再相加。
-
先来第一个(R颜色)左上角3×3:[0,0,0],[0,0,1],[0,0,1] 和 权重 [-1,-1,0],[-1,1,0],[-1,1,0]
(0*(-1) + 0*(-1) + 0*0)+(0*(-1) + 0*1 + 1*0)+(0*(-1) + 0*1 + 1*0)= 0 得出R颜色的左上角矩阵的值为0; -
第二个(G颜色) 左上角3×3矩阵值 和 第二层W1来计算
(0*1 + 0*(-1) + 0*0)+(0*(-1) + 1*0 + 1*(-1))+(0*(-1) + 0*0 + 2*0)= -1 -
第三个(B颜色) 左上角3×3矩阵值 和 第二层W1来计算
((-1)*0 + 0*0 + 1)+(0*1 + 2*0 + 0*1)+(0*0 + 0*(-1) + 0*0)= 0 -
最后再把三者结果相加并加上bias b1(偏值b)
0 + (-1) + 0 + 0 = -1
这级得到了output(0[:,:,1])中左上角的结果 -1。
四、卷积层的参数
卷积层涉及参数:滑动窗口步长、卷积核尺寸、边缘填充、卷积核个数

-
步长(移动多少个单元格):
-
步长为1的卷积:

移动一个步长,得到红色绿色特征值,移动的步长越小,特征值越多
-
步长为2的卷积:

移动两个步长,得到特征值越少
-
一般图像识别的用步长为1的,
-
-
卷积核尺寸:选择区域的大小,如上面是3×3的矩阵,可以选择4×4、5×5的,核尺寸越小,越细粒度提取,特征越多。
-
边缘填充:

+pad表示+1边缘,原本数据只有蓝色背景的部分(中间部分),而周围都是边缘增加的0,为什么这么做,滑动窗口时,边缘数据点明显滑动少,中间多,那能说明中间的就重要吗,为了使边缘的数据点也滑动多几次,就增加了这个边缘填充。文本分类中,有的文本有100个字,有的120字,不同长度无法训练,所以也会对其填充20个字,变成同样120的长度。
-
卷积核个数:最终计算的结果,要得到多少个特征图,个数多少,特征图多少。

-
卷积参数共享:即input使用的W部分的参数是共享的,卷积网络比之前的全连接大大减少了参数,不再需要每个对应的W。
五、池化层的作用
将原始input的所有数据,进行压缩

减少长宽以减少数据量的体积。
最大池化MAX POOLING:

-
如上图,从可选中,选出最大的值。为什么选择最大的值,因为前面是有权重W相乘的,还记得前面的W0和W1吗,如果计算完成得到的结果最大,那说明该结果是最重要的,所以这里选最大的,即挑最重要的。
-
体积也从上图的2×2矩阵变成4×4的矩阵
-
除了最大池化还有平均池化,不过平均池化基本没人用,既然有最好的结果,就应该拿最好的。
-
池化层没有结果任何计算,只是选最大的
六、整体网络架构
只有带参数的才能算层,Relu和池化不算

将一张图,通过不断卷积、池化、最后变成一条向量,接上全连接层,进行分类。
七、残差网络ResNet
深度网络遇到的问题:越大的层数理论上意味着越好,但实际是这样吗?下面是一组很早前测试的图

左边的训练集和右边的预测集都是20层的反而比56层的好,那么说明多出的36层起负作用。
解决方案:

我们还是跟原来一样增加层数,但在此基础上增加残差,也就是如果多的一层网络效果并不比上一层好,那么依然使用上一层的结果,可以看到X直接跳过了两层,这样就能保证了效果一定是越来越好的。
传统神经网络和Resnet的对比

ResNet是层数越多效果越好。
下图是某个比赛中,冠军方案使用ResNet的层数是152层,第二名的22层有6.7的残差,而第一名的152层只有3.57的残差,相差近一倍的效果

当然层数越多,可能收益越少,但是保证残差一定是小于等于之前的低层数,也就是结果一定是向好的发展。
相关文章:
深度学习入门(第三天)——卷积神经网络
一、卷积神经网络应用领域 CV领域发展: 比赛中预测错误率的百分比,每年逐步下降。Human是人类肉眼的识别能力,2016年开始已经远高于人类肉眼死别能力,后面就取消了该方向的比赛了。 检测任务: 分类与检索:…...
【Unity小技巧】图片使用的一些常见问题
文章目录 前言Button不规则按钮点击空白区域不响应点击事件1. 设置资源参数2. 代码设置按钮Image的alphaHitTestMinimumThreshold3. 解释:4. 效果 Unity Image 原图比例控制方法一 Preserve Aspect1. 设置勾选Preserve Aspect(保持长宽比)&am…...
ZJU Beamer学习手册(二)
ZJU Beamer学习手册基于 Overleaf 的 ZJU Beamer模板 进行解读,本文则基于该模版进行进一步修改。 参考文献 首先在frame文件夹中增加reference.tex文件,文件内容如下。这段代码对参考文献的引用进行了预处理。 \usepackage[backendbiber]{biblatex} \…...
Shaderlab的组成部分SubShader
文档 渲染标签 渲染状态 渲染通道 Subshader 一个shader文件至少有一个subshader;多个subshader的顺序一般按照效果好到差的顺序编写显示物体的时候,设备从多个subshader中,按从前到后的顺序找到第一个符合的subshader进行执行 Subshader组成 渲染标…...
C语言 字符函数汇总,模拟实现各字符函数(炒鸡详细)
目录 求字符串长度 strlen 示例 模拟实现strlen 长度不受限制的字符串函数 strcpy 示例 模拟实现strcpy strcat 模拟实现strcat strcmp 示例 模拟实现strcmp 长度受限制的字符串函数介绍 strncpy 示例 模拟实现strncpy strncat 示例 模拟实现strncat s…...
微积分在神经网络中的本质
calculus 在一个神经网络中我们通常将每一层的输出结果表示为: a [ l ] a^{[l]} a[l] 为了方便记录,将神经网络第一层记为: [ 1 ] [1] [1] 对应的计算记录为为: a [ l ] : 第 l 层 a [ j ] : 第 j 个神经…...
CentOS部署Skywalking
一、安装Docker #yum -y install gcc #yum -y install gcc-c #yum install -y yum-utils 设置国内的镜像仓库 #yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 更新yum软件包索引 #yum makecache fast 安装Docker引擎 #yum …...
window上Clion配置C++版本的opencv
window上Clion配置opencv 注意版本一定要对的上,否则可能会出错,亲测 widnows 11mingw 8.1.0opencv 4.5.5 mingw8.1下载地址https://sourceforge.net/projects/mingw/ 配置环境变量 cmake下载 安装完添加环境变量 来到官网,下载 windows 对…...
FPGA时序分析与约束(14)——虚拟路径
一、概述 到目前为止,我们已经看到了如何约束时钟和端口来指定设计中的时序要求,我们可以通过这些基础的约束命令来进行时序约束,但是时序分析工具默认的时序检查方式可能和我们实际工程实现的情况不同,通常来说是约束过紧&#x…...
【Python】解析CPP类定义代码,获取UML类图信息
参考 & 鸣谢 CppHeaderParser - 官方文档Python解析C头文件win10直接获得文件绝对路径的方法总结 目的 解析CPP头文件中的类定义,获取UML中的属性。用于画UML类图。如下所示格式,图片来源-链接 即获取,类名,成员函数&#x…...
Docker存储驱动之- overlay2
docker支持多种graphDriver,包括vfs、devicemapper、overlay、overlay2、aufs等等,其中最常用的就是aufs了,但随着linux内核3.18把overlay纳入其中,overlay的地位变得更重,最近也在自己的虚拟机上用overlay2作为docker…...
Vue3 shallowRef 和 shallowReactive
一、shallowRef 使用shallowRef之前需要进行引入: import { shallowRef } from vue; 使用方法和ref 的使用方法一致,以下是二者的区别: 1. 如果ref 和 shallowRef 都传入的是普通数据类型的数据,那么他们的效果是一样的&#x…...
Python数据分析实战① Python实现数据可视化
文章目录 一、数据可视化介绍二、matplotlib和pandas画图1.matplotlib简介和简单使用2.matplotlib常见作图类型3.使用pandas画图4.pandas中绘图与matplotlib结合使用 三、订单数据分析展示四、Titanic灾难数据分析显示 一、数据可视化介绍 数据可视化是指将数据放在可视环境中…...
ASP.NET 开发几个知识点
1、 皮肤设定: 项目右键,建立皮肤 app_themes 文件夹,右键 建立 web from 皮肤文件, 设定皮肤样式。全局使用皮肤 web.config 增加 <pages styleSheetTheme"Skin1" /> ,或在 具体页面 头 增加 sty…...
企业微信H5开发遇到的坑
企业微信官方推荐wx.agentConfig引用<script src"https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>是没有效果的 必须引用以下代码才有效果,这也是我看了社区的回答才有所收获,是一个坑 且VUE引用在线的…...
mysql使用--分组查询
1.分组数据 _1.复杂的数据统计 如:SELECT AVG(score) FROM student_score WHERE subject ‘Mysql是怎样运行的’; 上述实现查询指定课程的平均成绩。对FROM得到的结果集1,通过WHER进一步过滤得到结果集2。对结果集2中每一行执行汇总计算。 _2.创建分组 …...
Android网络模块基本实现步骤
Android网络模块主要是用于访问网络和获取数据,下面是网络模块的基本实现步骤: 选择网络框架:Android中常用的网络框架有HttpURLConnection、OkHttp、Volley和Retrofit等。最新的版本已经支持使用Kotlin协程完成网络请求,可以根据…...
Rust6.2 An I/O Project: Building a Command Line Program (mini_grep)
Rust学习笔记 Rust编程语言入门教程课程笔记 参考教材: The Rust Programming Language (by Steve Klabnik and Carol Nichols, with contributions from the Rust Community) Lecture 12: An I/O Project: Building a Command Line Program project: minigrep src/main.r…...
云轴科技ZStack信创云平台支撑长江航务管理局35套航运管理系统
信创是数字中国建设的重要组成部分,也是数字经济发展的关键推动力量。作为云基础软件企业,云轴科技ZStack产品矩阵全面覆盖数据中心云基础设施,ZStack信创云首批通过可信云《一云多芯IaaS平台能力要求》先进级,是其中唯一兼容四种…...
Canal+Kafka实现MySQL与Redis数据同步(一)
CanalKafka实现MySQL与Redis数据同步(一) 前言 在很多业务情况下,我们都会在系统中加入redis缓存做查询优化。 如果数据库数据发生更新,这时候就需要在业务代码中写一段同步更新redis的代码。 这种数据同步的代码跟业务代码糅合…...
嵌入式开发中volatile关键字的原理与应用
1. 理解volatile关键字的核心作用在嵌入式C语言开发中,volatile关键字是解决编译器优化导致意外行为的关键工具。当编译器对代码进行优化时,它会假设变量的值只在显式赋值时改变。然而在嵌入式系统中,许多变量的值可能被硬件、中断或其他线程…...
小学期week2记录
本周完成了发射端电路的pcb原理图绘制,还有很多不足,下周将完善pcb的布线并完成接收端电路的设计...
从黑猩猩内战到人类关系:互动是系统的命脉,遗忘是文明的暗礁
从黑猩猩内战到人类关系:互动是系统的命脉,遗忘是文明的暗礁 将黑猩猩Ngogo群体从平和共处走向相互屠戮的演变过程,结合人类关系分型自相似性理论对照分析,一套完整的认知逻辑就此显现。江河支流汇聚、树木枝杈生长,乃…...
[开源] 病历自举报系统:面向临床质控的电子病历智能预审工具,用大模型扮演质疑者角色发现逻辑矛盾与缺项问题
本项目是一个专为中文电子病历(EMR)设计的轻量级质控辅助工具,核心目标是让医生在提交病历前,就能快速识别出文本中潜藏的逻辑矛盾、信息缺项、时间线错乱、数值异常和主观夸大等典型质量问题。我们不替代人工质控,也不…...
【AI Daily】AI日报 | 2026-05-24
今日一句话判断 今天 AI 工程最值得关注的是 AI 方向的基础设施化:开源80386微码实现发布、Making Deep Learning Go Brrrr from F、Lum1104/Understand-Anything 代表能力正在从模型层下沉到工具链和工作流。 行动建议 跟踪 开源80386微码实现发布,判…...
深入解析Gofile下载器:3倍效率提升的Python多线程下载方案
深入解析Gofile下载器:3倍效率提升的Python多线程下载方案 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 在文件传输领域,Gofile作为流行的文件共享…...
用过才敢说!2026年最值得信赖的专业AI论文网站
2026年AI论文写作工具已从“内容生成”进化为“学术全流程智能助手”,核心差异体现在文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规五大维度。本次测评覆盖6款主流工具,涵盖中文/英文、全流程/专项、免费/付费场景,让你快速锁定最…...
ClamAV更新失败真相:DNS TXT协议与版本兼容性解析
1. 这不是网络连通性问题,而是ClamAV更新机制被误读的典型现场“Can’t query current.cvd.clamav.net”这个报错,几乎每个在Linux服务器上维护过ClamAV的人都见过。它第一次出现时,90%的运维会立刻去ping、curl、telnet current.cvd.clamav.…...
深度解析Windows运行库兼容性:VisualCppRedist AIO完整技术方案
深度解析Windows运行库兼容性:VisualCppRedist AIO完整技术方案 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist Visual C运行库缺失问题是Windows系统…...
数据决定上限,准备决定成败:DeepSeek同源训练数据预处理全链路拆解,错过这3个关键阈值=白训2000卡时
更多请点击: https://codechina.net 第一章:数据决定上限,准备决定成败:DeepSeek同源训练数据预处理全链路总览 高质量大模型的基石并非仅在于参数规模或算力堆叠,而深植于训练数据的纯净度、多样性与结构化程度。De…...
