深度学习入门(第三天)——卷积神经网络

news2024/11/27 0:38:55
卷积神经网络应用领域

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的残差,相差近一倍的效果

当然层数越多,可能收益越少,但是保证残差一定是小于等于之前的低层数,也就是结果一定是向好的发展。

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

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

相关文章

【实习】modbus

介绍 详解Modbus通信协议—清晰易懂 Modbus协议是一个master/slave架构的协议。有一个节点是master节点,其他使用Modbus协议参与通信的节点是slave节点。每一个slave设备都有一个唯一的地址。在串行和MB网络中,只有被指定为主节点的节点可以启动一个命令…

Nginx配置免费HTTPS详细教程

文章目录 背景说明环境准备说明安装Nginx及依赖环境配置HTTPS步骤步骤1:创建服务器私钥步骤2:创建签名请求的证书(CSR)步骤3:加载SSL支持的Nginx并使用私钥时去除口令步骤4:将密钥文件移动到Nginx配置文件目…

redis未授权访问漏洞利用

当redis服务(6379)端口对外开放且未作密码认证时,任意用户可未授权访问redis服务并操作获取其数据。 攻击机:10.1.1.100 kali 目标靶机:10.1.1.200 一、探测redis的未授权访问 首先在攻击机上使用nmap对目标机进行扫描,探测开放的…

强引用、软引用、弱引用、虚引用的区别

Java中的引用有四种,分为强引用(Strongly Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)4种,这4种引用强度依次逐…

单片机FLASH下载算法的制作

环境 硬件使用正点原子STM32F407探索者V2开发板 编程环境使用MDK 下载工具使用JLINK FLASH芯片使用W25Q128 什么是下载算法 单片机FLASH的下载算法是一个FLM文件,FLM通过编译链接得到,其内部包含一系列对FLASH的操作,包括初始化、擦除、写…

Python如何使用Networkx实现复杂的人物关系图?

Python如何使用Networkx实现复杂的人物关系图? 1 简单引入2 关于Networkx2.1 Networkx简单说明2.2 Networkx部分源码2.3 Networkx一个示例 3 人物关系图绘制过程3.1 创建原始数据3.2 获取目标文件数据3.3 获取颜色数据3.5 添加边数据3.6 定义边及权重3.7 图的布局、…

MySQL内部组件与日志详解

MySQL的内部组件结构 MySQL 可以分为 Server 层和存储引擎层两部分。 Server 层主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等)&am…

GoLong的学习之路,进阶,标准库之并发(context)补充并发三部曲,你真的明白context吗?

其实对于,context来说,如果只是用来做并发处理就有些不太合适。因为对于golang来说,context应用场景不仅在并发有用,并且在网络链接,http处理,gorm中都有体现。但是其实,本质来说。以上这些场景…

租赁小程序|租赁系统一种新型的商业模式

租赁市场是一个庞大的市场,它由出租人和承租人组成,以及相关的中介机构和供应商等。随着经济的发展和人们对灵活性的需求增加,租赁市场也在不断发展和壮大。特别是在共享经济时代,租赁市场得到了进一步的推动和发展。租赁系统是一…

Kontakt Factory Library 2(Kontakt原厂音色库2)

Kontakt Factory Library 2是一款由Native Instruments开发的音乐采样库。它是Kontakt采样器软件的官方库之一,提供了丰富的音色和音乐资源,可用于制作各种类型的音乐。 Kontakt Factory Library 2包含了数千个高质量的乐器采样,涵盖了各种乐…

Java实现俄罗斯方块游戏

俄罗斯方块游戏本身的逻辑: 俄罗斯方块游戏的逻辑是比较简单的。它就类似于堆砌房子一样,各种各样的方地形状是不同的。但是,俄罗斯方块游戏的界面被等均的分为若干行和若干列,因此方块的本质就是占用了多少个单元。 首先来考虑…

MySQL怎样处理排序⭐️如何优化需要排序的查询?

前言 在MySQL的查询中常常会用到 order by 和 group by 这两个关键字 它们的相同点是都会对字段进行排序,那查询语句中的排序是如何实现的呢? 当使用的查询语句需要进行排序时有两种处理情况: 当前记录本来就是有序的,不需要进…

京联易捷科技与劳埃德私募基金管理有限公司达成合作协议签署

京联易捷科技与劳埃德私募基金管理有限公司今日宣布正式签署合作协议,双方在数字化进程、资产管理与投资以及中英金融合作方面将展开全面合作。 劳埃德(中国)私募基金管理有限公司是英国劳埃德私募基金管理有限公司的全资子公司,拥有丰富的跨境投资经验和卓越的募资能力。该集…

pyhton将socket接收数据的字节改变并做处理

问题说明: 遇到发送过来的数据有一位是有问题的,但后面的数据是有效,还得用。甲方不愿意改信号。所以用代码直接在接收到数据后,将错误的数据位改正。 下面是修改后的demo例子: import socket def main(funcode):dict…

2013年12月1日 Go生态洞察:Go 1.2版本发布

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

【AI视野·今日Robot 机器人论文速览 第六十三期】Thu, 26 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Fri, 27 Oct 2023 Totally 27 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers 6-DoF Stability Field via Diffusion Models Authors Takuma Yoneda, Tianchong Jiang, Gregory Shakhnarovich, Matthew R. …

安装node.js指定任意版本详解

Node.js是一种基于Chrome V8引擎的JavaScript运行时环境。它允许开发人员使用JavaScript编写服务器端和网络应用程序。与传统的JavaScript在浏览器中执行不同,Node.js使得JavaScript可以在服务器端运行。 Node.js具有以下特点: 1. 非阻塞式I/O&#xf…

Seatunnel及web搭建流程

准备工作 Java环境 要求java8或者java11,并设置JAVA_HOME,如果JAVA_HOME无效,需要设置为有效状态。 echo ${JAVA_HOME} 创建安装软件目录 sudo mkdir -p /opt/seatunnel/backend sudo mkdir -p /opt/seatunnel/web 下载软件 从https://…

VS2017的redis客户端实现

VS2017下Redis服务器源码地址 https://download.csdn.net/download/qq_23350817/88541316 VS2017下Redis客户端源码地址(hiredis已完成windows下编译)&#xff1a; https://download.csdn.net/download/qq_23350817/88541242 C代码实现&#xff1a; #include <stdio.h>…