【深度学习】卷积神经网络CNN

李宏毅深度学习笔记

图像分类

图像可以描述为三维张量(张量可以想成维度大于 2 的矩阵)。一张图像是一个三维的张量,其中一维代表图像的宽,另外一维代表图像的高,还有一维代表图像的通道(channel)的数目。

通道:彩色图像的每个像素都可以描述为红色(red)、绿色(green)、蓝色(blue)的组合,这 3 种颜色就称为图像的 3 个色彩通道。

在这里插入图片描述
如果把向量当做全连接网络的输入,输入的特征向量的长度就是 100 × 100 × 3。这是一个非常长的向量。由于每个神经元跟输入的向量中的每个数值都需要一个权重,所以当输入的向量长度是 100 × 100 × 3,且第 1 层有 1000 个神经元时,
第 1 层的权重就需要 1000 × 100 × 100 × 3 = 3 × 107 个权重。
在这里插入图片描述

更多的参数为模型带来了更好的弹性和更强的能力,但也增加了过拟合的风险。模型的弹性越大,就越容易过拟合。为了避免过拟合,在做图像识别的时候,考虑到图像本身的特性,并不一定需要全连接,即不需要每个神经元跟输入的每个维度都有一个权重。

模型的目标是分类,因此可将不同的分类结果表示成不同的独热向量 y’。模型的输出通过 softmax 以后,输出是 ˆy。我们希望 y′ 和 ˆy 的交叉熵越小越好。
在这里插入图片描述

感受野

对一个图像识别的类神经网络里面的神经元而言,它要做的就是检测图像里面有没有出现一些特别重要的模式,这些模式是代表了某种物体的。比如有三个神经元分别看到鸟嘴、眼睛、鸟爪 3 个模式,这就代表类神经网络看到了一只鸟。

卷积神经网络会设定一个区域,即感受野(receptive field),每个神经元都只关心自己的感受野里面发生的事情,感受野是由我们自己决定的。
在这里插入图片描述

卷积核
在这里插入图片描述
一般同一个感受野会有一组神经元去守备这个范围,比如 64 个或者是 128 个神经元去守备一个感受野的范围。图像里面每个位置都有一群神经元在检测那个地方,有没有出现某些模式

把左上角的感受野往右移一个步幅,就制造出一个新的守备范围,即新的感受野。移动的量称为步幅,步幅是一个超参数。因为希望感受野跟感受野之间是有重叠的,所以步幅往往不会设太大,一般设为 1 或 2。

Q: 为什么希望感受野之间是有重叠的呢?
A: 因为假设感受野完全没有重叠,如果有一个模式正好出现在两个感受野的交界上面,就没有任何神经元去检测它,这个模式可能会丢失,所以希望感受野彼此之间有高度的重叠。如令步幅 = 2,感受野就会重叠。

在这里插入图片描述

共享参数

同样的模式可能会出现在图像的不同区域。比如检测鸟嘴的神经元做的事情是一样的,只是它们守备的范围不一样。如果不同的守备范围都要有一个检测鸟嘴的神经元,参数量会太多了。
所以可以让不同感受野的神经元共享参数,也就是做参数共享。所谓参数共享就是两个神经元的权重完全是一样的

在这里插入图片描述

卷积层

感受野加上参数共享就是卷积层(convolutional layer),用到卷积层的网络就叫卷积神经网络。卷积神经网络的偏差比较大。但模型偏差大不一定是坏事,因为当模型偏差大,模型的灵活性较低时,比较不容易过拟合。
卷积层是专门为图像设计的,感受野、参数共享都是为图像设计的
在这里插入图片描述

多卷积层

每个感受野都只有一组参数而已,这些参数称为滤波器。
一个卷积层里面就是有一排的滤波器,每个滤波器都是一个 3 × 3 × 通道,其作用是要去图像里面检测某个模式

卷积层是可以叠很多层的,第 2 层的卷积里面也有一堆的滤波器,每个滤波器的大小设成 3 × 3。其高度必须设为 64,因为滤波器的高度就是它要处理的图像的通道。(这个 64 是前一个卷积层的滤波器数目,前一个卷积层的滤波器数目是 64,输出以后就是 64 个通道。)

如果滤波器的大小一直设 3 × 3,会不会让网络没有办法看比较大范围的模式呢?
A:不会。如图 4.23 所示,如果在第 2 层卷积层滤波器的大小一样设 3 × 3,当我们看第 1 个卷积层输出的特征映射的 3 × 3 的范围的时候,在原来的图像上是考虑了一个5 × 5 的范围。虽然滤波器只有 3 × 3,但它在图像上考虑的范围是比较大的是 5 × 5。因此网络叠得越深,同样是 3 × 3 的大小的滤波器,它看的范围就会越来越大。所以网络够深,不用怕检测不到比较大的模式。
在这里插入图片描述

下采样和汇聚

把一张比较大的图像做下采样,把图像偶数的列都拿掉,奇数的行都拿掉,图像变成为原来的 1/4,但是不会影响里面是什么东西。

汇聚被用到了图像识别中。汇聚没有参数,所以它不是一个层,它里面没有权重,它没有要学习的东西,汇聚比较像 Sigmoid、ReLU 等激活函数。

汇聚有很多不同的版本:最大汇聚在每一组里面选一个代表,选的代表就是最大的一个;平均汇聚是取每一组的平均值。

做完卷积以后,往往后面还会搭配汇聚。汇聚就是把图像变小。做完卷积以后会得到一张图像,这张图像里面有很多的通道。做完汇聚以后,这张图像的通道不变。

一般在实践上,往往就是卷积跟汇聚交替使用,可能做几次卷积,做一次汇聚。比如两次卷积,一次汇聚。不过汇聚对于模型的性能可能会带来一点伤害。近年来图像的网络的设计往往也开始把汇聚丢掉,它会做这种全卷积的神经网络,整个网络里面都是卷积,完全都不用汇聚。汇聚最主要的作用是减少运算量,通过下采样把图像变小,从而减少运算量。

CNN

经典图像识别网络:
在这里插入图片描述

输入层:输入图像等信息
卷积层:用来提取图像的底层特征
池化层(汇聚):防止过拟合,将数据维度减小
全连接层:汇总卷积层和池化层得到的图像的底层特征和信息
输出层:根据全连接层的信息得到概率最大的结果

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

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

相关文章

怎样查看vsphere client 的登录日志

- 问题摘要: 怎样查看vsphere client 的登录日志 - 解决方案/工作方法 1.登录vsphere client > vc > Monitor > Tasks and Events > Events, 查看日志 2. 查看VC 的websso.log日志 /var/log/vmware/sso/websso.log 3. 可以把websso.log文件拿到本地电…

前端Web开发HTML5+CSS3+移动web视频教程 Day1 HTML 第一天

链接 HTML 介绍 HTML&#xff1a;HyperText Markup Language&#xff0c;超文本标记语言&#xff0c;是一种用于创建网页的标准标记语言。 HTML 运行在浏览器上&#xff0c;由浏览器来解析。 对于中文网页需要使用 <meta charset"utf-8"> 声明编码&#xf…

多图示例:如何呈现论文结果中的各种图表

本文根据《Journal of the American College of Cardiology》上曾发表的一篇文章《Making Sense of Statistics in Clinical Trial Reports》&#xff0c;来全面而具体地说明临床试验论文中&#xff0c;各种类型数据与结果使用图表的正确展示方法。 本文将着重介绍基线数据、试…

3.Android逆向协议-APP反反编译及回编译

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;微尘网校 上一个内容&#xff1a;2.Android逆向协议-了解常用的逆向工具 在实际应用场景中会阅读smail代码&#xff0c;比如调试app&a…

【ai】tx2 nx :ubuntu查找NvInfer.h 路径及哪个包、查找符号

在Ubuntu系统中,你可以使用多种方法来查找某个头文件的路径。这里有几种常用的方法: 使用find命令: find命令是一个非常强大的工具,可以在文件系统中搜索匹配特定条件的文件。例如,如果你想查找名为stdio.h的头文件,可以使用以下命令:bash 复制代码 sudo find / -name …

响应头缺省xss防御头(X-XSS-Protection、X-Content-Type-Options)

HTTP X-Content-Type-Options 缺失 Web 服务器对于 HTTP 请求的响应头缺少 X-Content-Type-Options,这意味着此网站更易遭受跨站脚本攻击(XSS)。X-Content-Type-Options 响应头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的…

Python头歌数据聚合

在Python中进行数据聚合通常涉及到使用Pandas库&#xff0c;它是一个功能强大的数据分析工具。以下是一些基本的步骤和示例代码&#xff0c;展示如何使用Pandas进行数据聚合&#xff1a; 导入Pandas库: import pandas as pd读取数据: 假设您有两个CSV文件&#xff0c;我们可以使…

嵌入式Linux系统编程 — 4.5 strcmp、strchr 等函数实现字符串比较与查找

目录 1 字符串比较 1.1 strcmp() 函数 1.2 strncmp() 函数 1.3 示例程序 2 字符串查找 2.1 strchr() 函数 2.2 strrchr() 函数 2.3 strstr() 函数 2.4 strpbrk() 函数 2.5 示例程序 1 字符串比较 strcmp() 和 strncmp() 函数是C语言标准库中用于比较两个字符串的函…

经典排序算法详解

目录 创作不易&#xff0c;如对您有帮助&#xff0c;还望一键三连&#xff0c;谢谢&#xff01; 前言 学习目标&#xff1a; 直接插入排序 基本思想&#xff1a; 代码 希尔排序&#xff1a; gap取值 代码 特性总结 选择排序 基本思想 代码 堆排序 思想 代码 冒…

[CTF]-PWN:mips反汇编工具,ida插件retdec的安装

IDA是没有办法直接按F5来反汇编mips的汇编的&#xff0c;而较为复杂的函数直接看汇编不太现实&#xff0c;所以只能借用插件来反汇编 先配置环境&#xff0c;下载python3.4以上的版本&#xff0c;并将其加入到环境变量中 下载retdec 地址&#xff1a;Release v1.0-ida80 ava…

苹果开发者证书申请流程

苹果开发者证书申请流程&#xff1a; 1.Certificates 后面加号 2.iOS Distribution (App Store and Ad Hoc) 点击continue 3.选择Upload a Certificate Signing Request To manually generate a Certificate, you need a Certificate Signing Request (CSR…

Unity关于Addressables.Release释放资源内存问题

前言 最近在编写基于Addressables的资源管理器&#xff0c;对于资源释放模块配合MemoryProfiler进行了测试&#xff0c;下面总结下测试Addressables.Release的结论。 总结 使用Addressables.Release释放资源时&#xff0c;通过MemoryProfiler检查内存信息发现加载的内容还在…

多租户与低代码开发的应用:解锁企业数字化转型的无限可能

在数字化转型的浪潮中&#xff0c;多租户与低代码开发已经成为推动企业快速、灵活、安全地构建和部署应用的关键技术。本文将深入探讨这两种技术的结合如何为企业带来前所未有的变革和机遇。 多租户架构&#xff1a;资源共享与隔离的艺术 多租户架构&#xff0c;是一种高级的软…

一文让你简单明了的知道云管理平台的作用

随着云计算的飞速发展&#xff0c;越来越多的企业实现了上云。因此云管理平台也在云计算环境中扮演着至关重要的角色&#xff0c;在企业上云后充分发挥作用。今天我们小编就来为大家简单讲解一下云管平台的作用。 一文让你简单明了的知道云管理平台的作用 作用1、提高工作效率…

思考-生涯思考-GPT-5对人们的影响

GPT-5 一年半后发布&#xff1f;对此你有何期待&#xff1f; IT之家6月22日消息&#xff0c;在美国达特茅斯工程学院周四公布的采访中&#xff0c;OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布&#xff0c;给出了肯定答案并表示将在一年半后发布。此外&#xff0c;…

20240629 每日AI必读资讯

&#x1f680; Google 深夜突袭&#xff0c;Gemma 2 狂卷 Llama 3 - Gemma2性能超越Llama3&#xff0c;提供9B和27B版本&#xff0c;性能接近70B模型但大小仅为其40% - Gemma2支持高效推理&#xff0c;单个GPU即可实现全精度推理&#xff0c;广泛的硬件支持 - Gemma2兼容多种…

CMake之嵌套的CMakeLists

文章目录 前言项目结构节点关系如何嵌套多个cmake示例程序cmake 总结 前言 在现代软件开发中&#xff0c;CMake 是一个非常重要的工具&#xff0c;它允许开发者编写可移植的构建脚本来管理项目。对于大型项目&#xff0c;通常会有多个模块或子项目&#xff0c;这时候就需要用到…

2024年618各城市跨境电商战况如何?

2024年618各城市 跨境电商战况如何? 2024 城市“618”跨境战绩&#xff08;部分&#xff09; 2024年“618”期间&#xff0c;全国跨境电商交易额实现2,397.12亿元&#xff0c;同比增长8.68%。从跨境商品来看&#xff0c;进口端&#xff0c;婴童食品、美容美妆、营养保健等商…

numpy.random.seed()使用

import numpy as npnp.random.seed(2) # 生成随机种子2 一次使用机会 作用在下一个随机数生成的时候 a np.random.random() # 使用随机种子2 b np.random.random() # 因为随机种子使用完了 &#xff01; 这里使用默认按系统根据时间作为seed参数的随机种子 print(a) # 随…

手机取证基础知识(一)

文章关键词&#xff1a;手机取证、电子数据取证 手机取证&#xff0c;也称为移动设备取证或智能手机取证&#xff0c;是数字取证的一个分支&#xff0c;专注于从智能手机和其他移动设备中提取、分析和呈现证据的过程。这项技术通常用于法律调查&#xff0c;尤其是在犯罪调查中…