卷积神经网络(Datawhale X 李宏毅苹果书AI夏令营)

news2024/11/14 13:35:38

卷积神经网络(Datawhale X 李宏毅苹果书AI夏令营)

卷积神经网络是一种非常典型的网络 架构,常用于图像分类等任务。

一张图像是一个三维的张量,其中一维代表图像的 宽,另外一维代表图像的高,还有一维代表图像的通道(channel)的数目

通道:彩色图像的每个像素都可以描述为红色(red)、绿色(green)、蓝色(blue)的组 合,这 3 种颜色就称为图像的 3 个色彩通道。这种颜色描述方式称为 RGB 色彩模型, 常用于在屏幕上显示颜色。

网络输入通常是向量,因此在将图片输入网络前,需要对网络进行“拉伸”。

image-20240903162507328

1. 感受野

对于图像识别,很多时候我们并不需要检测整张图像才能进行识别。如对于鸟、猫、狗三张照片,我们只需要看如头就能确定照片的类别。

image-20240903194553754

为了将图片中的某个区域如头给检测出来,我们就用到了 感受野。神经网络会设定一个区域,即感受野(receptive field),每个神经元都只关心自己的感受野里面发生的事情,感受野是由我们自己决定的。

image-20240903194739469

image-20240903194804376

1.1 感受野设计

图像识别中高跟宽大小叫做核大小,之所以不说深度,因为深度等于通道数。经典感受野核大小为3x3

一般同一个感受野会有一组神经元去守备这个范围,比如 64 个或者是 128 个神经元去守 备一个感受野的范围。

步幅(stride): 旧感受野移动到一个新的感受野所移动的量。一般设为1和2.

image-20240903195604270

image-20240903195633091

当感受野超出了图像的范围,为了让剩余的边界视野不会丢失,我们会进行填充(padding),填充就是补值,一般使用零填充(zero padding),超出范围就补 0,如果感受野有一部分超出图像的范围 之外,就当做那个里面的值都是 0。其实也有别的补值的方法,比如补整张图像里面所有值的 平均值或者把边界的这些数字拿出来补没有值的地方。

image-20240903200044318

,

2. 共享参数(不变性)

对于某一个模式,如鸟嘴,可能出现在图片左上角、中间等。那么对于这些检测鸟嘴的神经元做的事情是一样的,只是它们守备的范围不一样。既然如 此,其实没必要每个守备范围都去放一个检测鸟嘴的神经元。如果不同的守备范围都要有一 个检测鸟嘴的神经元,参数量会太多了,因此需要做出相应的简化。

共享参数:两个神经元的权重完全是一样的

image-20240903200452972

3. 1和2总结

全连接网络是弹性最 大的。全连接网络可以决定它看整张图像还是只看一个范围,如果它只想看一个范围,可以 把很多权重设成 0。但加上感受野的概念以后,只能看一个小范围,网络的弹性是变小的。参数共享 又进一步限制了网络的弹性。本来在学习的时候,每个神经元可以各自有不同的参数,它们 可以学出相同的参数,也可以有不一样的参数。但是加入参数共享以后,某一些神经元无论 如何参数都要一模一样的,这又增加了对神经元的限制。而感受野加上参数共享就是卷积层 (convolutional layer),用到卷积层的网络就叫卷积神经网络。

image-20240903201042600

卷积层是专门为图像设计的,感受野、参数共享都是为图像设计

如果把它用在图像之外的任务,就要仔细 想想这些任务有没有图像用的特性。

image-20240903211718134

image-20240903211752486

4. 池化(汇聚)

把一张比较大的图像做下采样(downsampling), 把图像偶数的列都拿掉,奇数的行都拿掉,图像变成为原来的 1/4,但是不会影响里面是什么 东西。如图 4.26 所示,把一张大的鸟的图像缩小,这张小的图像还是一只鸟。

image-20240903211938942

对于上面的现象,我们可以使用池化 来处理图像,汇聚没有参数,所以它不是一个层,它里面 没有权重,它没有要学习的东西,它只是一个操作运算。

Max pooling 最大池化:

image-20240903212645395

image-20240903212802317

每个滤波器都产生一组数字,要做汇聚的时候,把这些数字分组,可以 2 × 2 个 一组,3 × 3、4 × 4 也可以,这个是我们自己决定的,图 4.27 中的例子是 2 × 2 个一组。汇聚 有很多不同的版本,以最大汇聚(max pooling)为例。最大汇聚在每一组里面选一个代表, 选的代表就是最大的一个,如图 4.28 所示。除了最大汇聚,还有平均汇聚(mean pooling), 平均汇聚是取每一组的平均值。

一般在实践上,往往就是卷积跟汇聚交替 使用,可能做几次卷积,做一次汇聚。比如两次卷积,一次汇聚。不过汇聚对于模型的性能 (performance)可能会带来一点伤害。

汇聚最主要的作用是减少运算量, 通过下采样把图像变小,从而减少运算量。

image-20240903213128531

5. 卷积神经网络的应用:下围棋

下围棋、语音上和文字处理上

image-20240903213257164

CNN不能处理图像放大缩小或者是旋转的问题

卷积神经网络并没有想像的那么强。因此在做图像识别的时候往往都要做数据增强。

数据增强就是把训练数据每张图像里面截一小块出来放大,让卷积神经网络看过不 同大小的模式;把图像旋转,让它看过某一个物体旋转以后长什么样子,卷积神经网络才会做 到好的结果。卷积神经网络不能够处理缩放(scaling)跟旋转(rotation)的问题,但 Special Transformer Layer 网络架构可以处理这个问题。

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

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

相关文章

【Tensor】(基础篇一) —— 安装TensorFlow和介绍Tensor

安装TensorFlow和介绍Tensor 之前我们已经学了一些简单的回归和神经网络,但程序员之间“不重复造轮子”这个指导思想让我们可以不用每次在使用机器学习算法的时候都进行手动从底层开始搭建,回归很多在sklearn中进行了集成,神经网络中很多内容…

【方法】如何防止他人看到压缩包内部的文件列表?

在使用压缩工具时,保护文件内容的安全性非常重要。有时,仅仅加密文件内容还不够,还需要隐藏压缩包中的文件名,防止他人看到压缩包内部的文件列表。下面小编分享两种简单有效的方法,一起来看看吧! 方法一&a…

Windows .NET8 实现 远程一键部署,几秒完成发布,提高效率 - CICD

1. 前言 场景 (工作环境 一键部署 到 远端服务器 [阿里云]) CICD 基本步骤回顾 https://blog.csdn.net/CsethCRM/article/details/141604638 2. 环境准备 服务器端IP:106.15.74.25(阿里云服务器) 客户端&#xff1…

金蝶云星空协同平台业务对象下同时存在未加载未引入对象的原因分析和处理方式

文章目录 问题截图原因分析,解决方式 问题截图 原因分析,解决方式 未加载是 别的账套提交的数据,本账套不存在,点击加载则回、会同步到当前数据中心 未引入,则是在A账套删除后提交到应用,在B账套则显示未…

使用go语言获取海南七星彩历史开奖记录并打印输出

效果如下 : 1.引用json与http模块 import ("encoding/json""fmt""github.com/nahid/gohttp" ) 2.创建请求: req := gohttp.NewRequest()resp, err := req.Get("这里填写请求地址")if err != nil {panic(err)} 3.处理响应结果 : if…

数据恢复工具,电脑+手机双端,十分好用!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 今天给大家安利两款数据恢复工具,分别为电脑手机双端,无论是因为格式化误操作、设备损坏还是其他意外情况,都能轻松找回重要的文件、照片、视频等数…

JavaScript编程语言的学习

一、JavaScript介绍 JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”,指的是它不具备开发操作系统的能力,而是只用来编写控制其他大型应用程序的“脚本”。 JavaScript 是一种嵌入式(embedded)语言。它本身提供的核心语法不…

【流式输出】LangChain流式输出的概念

😁 作者简介:一名大四的学生,致力学习前端开发技术 ⭐️个人主页:夜宵饽饽的主页 ❔ 系列专栏:JavaScript小贴士 👐学习格言:成功不是终点,失败也并非末日,最重要的是继续…

Visual Studio提示‘缺少MSVXXXX.dll文件’和‘应用程序无法正常启动0xc000007b’的解决办法

vs调试bug记录 1提示:缺失MSVCR120D.dll 在该地址下载dll文件: https://cn.dll-files.com/search/?qMSVCR120D.dll 下载之后放入本地C:\Windows\System32文件夹里面,缺失MSVCR120D.dll的错误信息消失 2提示:应用程序无法正常启…

深入解析Linux轻量级进程:线程的概念、原理、优缺点及其与进程的关系与区别

🍑个人主页:Jupiter. 🚀 所属专栏:Linux从入门到进阶 欢迎大家点赞收藏评论😊 目录 📚Linux线程📕什么是线程*可以使用多进程去并发的执行一个进程的代码,那为什么要由线程呢&#x…

Dev C++:简单步骤下载与安装指南

1. 前言 在当今这个数字化时代,编程已成为连接创意与技术的桥梁,它不仅推动着科技的进步,也深刻地改变着我们的生活方式。对于初学者而言,选择一款合适且易于上手的集成开发环境(IDE)是学习编程旅程中的重…

Vmware虚拟机断电重启后无法正常启动报Unmount and run xfs_repair

目录 一、问题描述二、解决方法 一、问题描述 Vmware虚拟机断电重启后无法正常启动,报错信息如下: 二、解决方法 执行以下命令: umount /dev/sda5 xfs_repair -L /dev/sda5 reboot

jmeter响应断言、json断言、断言持续时间、大小断言操作

在jmeter断言当中、常用的有响应断言、json断言、断言持续时间,大小断言等 一、响应断言 Apply to:断言应用的范围,这里默认,通常发出一个请求只触发一个服务器测试字段 响应文本,response响应体内的信息响应代码&am…

awk详解

文章目录 一、概述二、工作原理三、工作流程3.1 运行模式3.2 执行流程 四、基本语法4.1 命令格式 五、实战案例5.1 开始块(BEGIN block)5.1.1print 5.2 内置变量5.3 BEGIN END 运算5.3.1 扩展生产:网卡的ip、流量5.3.2 根分区的可用量5.3.3 a…

python与pytroch相关

1.pytroch模型类 PyTorch 是一个易学且清晰明了的深度学习库。本节讲解如何查看一个模型的结构。 首先,最简单创建模型的方式如下: #导入必要的库 import torch.nn as nn myNetnn.Sequential(nn.Linear(2,10),#第一层(全连接层)&…

Leetcode236经典题目二叉树的最近公共祖先

本次为大家带来的题目是leetcode236二叉树的最近公共祖先 本道题的直观思路是自底向上进行寻找,如果存在的话那么向上返回,如何能够自底向上遍历呢?我们可以利用回溯进行处理,那么需要注意的是进行回溯的时候一定要使用后序遍历来…

Centos7安装FFmpeg详细步骤(已验证成功)

最近我们需要使用FFmpeg来合成视频功能,这就需要用到服务器必须安装FFmpeg了。 FFmpeg 是一款功能强大的跨平台命令行工具,可以处理各种音频和视频文件,包括转换视频和音频格式、剪辑、合并视频和音频、提取音频、添加字幕、添加水印、调整视…

读书学习笔记入门 # Datawhale X 李宏毅苹果书 AI夏令营

文章目录 学习目标:学习内容:Task 1 通过案例了解机器学习机器学习(Machine Learning,ML)和深度学习(Deep Learning,DL)的基本概念什么是回归(regression)什么…

【机器学习】表示学习的基本概念和方法以及编解码结构的基本概念

引言 表示学习(Representation Learning)是机器学习的一个子领域,它专注于学习数据的表示形式,即数据的高层特征或抽象概念 文章目录 引言一、表示学习1.1 表示学习的重要性1.2 表示学习的方法1.3 应用场景1.4 挑战1.5 总结 二、如…

AUTOSAR_EXP_ARAComAPI的5章笔记(2)

返回目录 5.3 Proxy Class Proxy Class从AutoSar元模型的服务接口描述中生成。 ara::com确实标准化了生成的Proxy Class的接口。一个AP产品供应商的工具链将生成一个代理实现类来精确地实现这个接口。 注意: 因为Proxy Class必须提供的接口是由ara::com定义的,所…