卷积神经网络CNN :1.基础知识

news2024/11/15 12:55:14

​卷积神经网络是一种深度学习概念,专为处理图像而构建。机器学习是计算机从过去的经验中学习的概念。深度学习是机器学习的高级部分。CNN 旨在寻找视觉模式。

  • 当我们人类看到图像时,我们看到物体、颜色等。我们在成长过程中学习这些东西,但计算机只能理解 0 和 1,即二进制值。那么计算机将如何看到图像呢?

  • 每个图像都是由像素组成的。下图很好地描述了计算机如何读取图像。有两种类型的图像,灰度和彩色。灰度(黑色和白色)由范围从 0 到 255(黑色到白色)的值数组组成。彩色图像有 3 个数组,红色数组、绿色数组和蓝色数组 (RGB)。这些数组中的每一个都在 0 到 255 之间(黑色到相应的颜色)。

MIT深度学习第3讲

架构

卷积神经网络有3种类型的层:卷积层、池化层和全连接层。

卷积层

卷积层是从输入图像中提取重要特征的层。该层使用一个小方块来从输入图像中提取特征。这个小方块被称为内核或过滤器。解释一下,这一层在输入图像和过滤器之间有一个数学运算,以便保留和提取特征。这被称为CNN中的特征提取。

特征图的大小:n-f+1

n = 输入的大小

f = 滤波器的大小

通过不同的过滤器,可以进行不同的操作,如边缘检测、模糊等。

为了进行卷积操作,应指定一个过滤器为一定大小。滤波器在输入图像矩阵上移动,并将数值与滤波器相乘并求和。其结果比输入图像矩阵的大小要小。

总而言之,在CNN中卷积层是最重要的步骤或层。它用于从输入图像矩阵中提取重要特征。一个CNN可以由任意数量的卷积层组成。

非线性层

这一层是在每个卷积层之后添加的,以便为矩阵引入非线性。非线性的引入是为了使输出不受输入的影响或输出与输入不成正比。这种非线性是由激活函数完成的。这是另一篇文章的需要讲述的。

为什么我们需要在神经网络中引入非线性?如果数据没有非线性,那么输入就会直接影响输出,而我们使用多少层都无所谓。结果将是一样的。通过增加非线性的力量,网络的建立可以在数据中找到更多新的和独特的模式。

常用的激活函数有RELU、Tanh等。

padding层

现在你已经明白卷积层有多重要了。一个内核或过滤器被用来提取重要的特征。我提到过,卷积层可以被使用任何次数,而且每次特征图的大小都会减少。我们不需要这样。考虑一个5x5的输入矩阵和一个大小为3x3的过滤器。特征图的大小是5-3+1=3。如果我们再增加一层,那么大小就是1。

为了使特征图的大小与输入矩阵相同,我们使用填充。让我们进行逆向工程。我们需要一个大小为5的特征图。滤波器的大小是3。从上面的公式来看,n = 5+f-1 = 5+3-1 = 7。

我们需要从一个大小为5的输入矩阵中得到一个大小为7的输入矩阵。我们添加填充物,即在顶部、底部添加一行,在左侧和右侧添加一列,得到一个大小为7x7的矩阵。因此证明了。

padding =n+2p-f+1(p=padding)

如果p=1,那么就有一行和一列,所以这就是为什么我们要加2p,所以我们得到2行和2列。

上述添加的行和列都是用零填充的,称为零填充。

这就是填充物的应用方式。

步幅

我们在卷积层中谈到了过滤器。步幅被定义为在任何方向上移动的像素数,以应用过滤器。如果步幅是[1,1],那么滤波器在任何方向上每次移动一个像素,如果是[2,2],那么滤波器在任何方向上移动两个像素。

这个参数主要在有高分辨率的输入图像时有用,然后有更多的像素需要过滤。步幅越大,卷积特征图就越小。

[1,1]看起来就像下面的样子。

一个[2,2]的步幅看起来就像下面那样。

总结一下,步幅是内核或滤波器在输入矩阵上移动的一个值。

池化层

如果把输入图像推导到1/4就能确定整个图像所描述的内容,那么在处理整个图像时就没有好处。这就是池化的作用。

这是一个通过保留特征来减少大的特征矩阵的层。这就是所谓的空间间隔(spatial spacing)。池化也有一个内核和跨度。有不同类型的空间间距。

  • 最大池化。这是在过滤器中选择最大的元素。

  • 最小池化。这是在过滤器中选择最小的元素。

  • 平均值池化。这是过滤器中所有元素的平均值。

  • 平均值池化。这是过滤器中所有元素的平均值。这个池化层主要用于连接卷积层和全连接层。池化层用在卷积层之后的主要原因是为了减少特征图的大小以节省计算资源。

全连接层

所以到目前为止,我们已经获得了一个具有重要特征的矩阵。这个矩阵被扁平化为一个1d向量,并将其送入一个全连接的神经网络。它被称为全连接层,因为每一个神经元都与下一层的每个神经元相连。

输出层基本上使用softmax激活函数。使用Softmax激活,所以输出的所有概率之和为1。从这里开始,网络作为一个神经网络。

结论

CNN是一个深度学习概念,从图像中提取特征和模式。CNN是一个基本的ANN,但还有两个层,称为卷积层和集合层。

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

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

相关文章

CRPS:贝叶斯机器学习模型的评分函数

连续分级概率评分(Continuous Ranked Probability Score, CRPS)或“连续概率排位分数”是一个函数或统计量,可以将分布预测与真实值进行比较。 机器学习工作流程的一个重要部分是模型评估。这个过程本身可以被认为是常识:将数据分…

【CLYZ集训】变量取值【网络流】

思路: 容易把答案转化为∑siwi∑ti(wx−wy)\sum{s_iw_i}\sum{t_i(w_x-w_y)}∑si​wi​∑ti​(wx​−wy​),然后我们设初始代价为−∑∣si∣wi-\sum{|s_i|w_i}−∑∣si​∣wi​,然后考虑建模。 如果Si大于0,则源点向i连一条流量为2…

【Java AWT 图形界面编程】FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )

文章目录一、FileDialog 对话框1、构造函数2、获取文件路径3、获取文件名称二、FileDialog 对话框代码示例一、FileDialog 对话框 在开发时 , 经常遇到文件相关操作 , 如 : 选择文件 , 保存文件 等 , 在 AWT 中使用 FileDialog 文件对话框 实现上述功能 ; 1、构造函数 FileDial…

量子计算初创公司Oxford Ionics完成3000万英镑A轮融资

(图片来源:网络)未来,量子计算机会解决世界上最大的超级计算机无法解决的问题。然而,大规模制造量子计算机仍然是一个巨大的挑战。英国量子计算初创公司Oxford IonicsA轮融资获得的3000万英镑(约合人民币2.…

Java集合(六)Set接口和常用方法

Set接口基本介绍: (1)无序(添加和取出的顺序不一致),没有索引 (2)不允许重复元素,所以最多包含一个null (3)JDK API中Set接口的实现类有: 其中set接口的已…

2023年,最新最权威的上海Java培训机构排行榜出炉!

2022也许你的很多学习和工作计划都被打乱,但是过去的2022不管多艰难,多难熬。都已经成为过去式。2023悄然而至,新的一年,你我都该有新气象新动力,学习什么时候开始都不晚,想跨行从事软件开发、IT行业的小伙…

跳槽至今0 offer的大冤种,问题到底出在哪儿?

众所周知,2022年市场很难!看着企业们纷纷裁员,甚至连内推这个后门都走不通!哪怕有面试,都是屡屡碰壁,你想清楚问题出在哪了吗?😭“求职不得,夜不能寐;三更半夜…

C++基础——C++ 指针

C基础——C 指针C 指针什么是指针?C 中使用指针C 指针详解C Null 指针C 指针的算术运算递增一个指针递减一个指针指针的比较C 指针 vs 数组C 指向指针的指针(多级间接寻址)C 传递指针给函数C 指针 学习 C 的指针既简单又有趣。通过指针&…

Python语言基础学习之Python基础之列表介绍和循环遍历

今天给大家分享一些Python基础 (列表基础和循环遍历介绍),一起来看看吧~ 一、列表介绍 想一想: 字符串可以用来存储一串信息,那么想一想,怎样存储所有同学的名字呢?定义100个变量,每个变量存放一个学生的姓名可行吗…

LinkedList VS ArrayList~

ArrayList VS LinkedList: One: ArrayList:基于数组,需要连续内存LinkedList:基于双向链表,无需连续内存Two: ArrayList:随机访问快(指根据下标访问)LinkedList:随机访问慢(要沿着链表遍历)点击ArrayList的源码: 点击LinkedList的源码: Ar…

九龙证券|看好2-4月份汽车月度销量增速的逐月改善

机构指出,考虑到22年末购置税补助等方针到期,叠加春节假期消费需求的提早,估计年内乘用车销量绝对值及同比增速均于1月触底,后续方针影响、消费回暖等一期效果下,看好车市回暖,估计销量增速将于2-4月逐月回…

15.Set系列,可变参数、Collections

目录 一.Set系列 1.1 Set系列集合特点 1.2 Set集合实现类特点 1.3 HashSet 1.3.1 特点 1.3.2 优点 1.3.3 在理解原理之前要知道的几个概念。 1.3.4 底层原理 1.3.5 哈希表的形成过程/元素的存入过程(Jdk8的版本) 1.3.6 注意事项 1.4 linkedHa…

通用数字支付网络(UDPN)于达沃斯论坛期间正式发布

2023年1月19日,在瑞士达沃斯举行的世界经济论坛 (WEF) 会议期间,通用数字支付网络 (Universal Digital Payment Network, UDPN)正式对外发布。 近年来,全球各国央行数字货币(CBDC)得到了广泛的关注与长足的进步&#…

WebHooks

webhook 究竟是什么呢? Webhook是一个API概念,webhoo是一种web回调或者http的push API。Webhook作为一个轻量的事件处理应用,正变得越来越有用。 具体的说,webhook 是应用给其它应用提供实时信息的一种方式。信息一产生&#xf…

Js如何实现当网页超过一屏时导航菜单始终置顶-吸顶盒效果

前言我们平时在逛一些电商网站时,无论是首页还是详情页,通常会有一个导航菜单石红跟随着页面,无论是页面滚动到中间还是底部这是为了方便用户查看商品的各类信息或提交订单购物也就是吸顶盒效果,那这个效果是怎么实现的?原生Js如下是原生js// 初始化函数 function init() {// …

[Pytorch] CIFAR-10数据集的训练和模型优化

本篇文章借鉴了我的朋友Jc的报告,他是一个十分优秀的人。 本篇文章记录了第一次完整训练优化的过程 0 关于数据集 在CIFAR-10 dataset的介绍中,cifar-10数据集一共10类图片,每一类有6000张图片,加起来就是60000张图片&#xff0…

深度卷积对抗神经网络 基础 第五部分 Inception-v3 architecture GANs

深度卷积对抗神经网络 基础 第五部分 Inception-v3 architecture GANs 对抗神经网络能够产生不存在的图片,换脸或者生成一些艺术品,这些有趣和强大的对抗神经网络的能力不仅能够创造价值,还能够用来犯罪。With Great Power , Comes With Res…

3.1.1 类和对象

文章目录1.类2.对象3.类和对象的关系4.类的创建使用5.对象在内存中的存储过程6.对象创建过程分析1.类 java最基本的单位就是类,可以理解为类型类是一类事物的抽象可以理解为模板或者设计图纸 注意:类在现实世界并不存在,它只是一种对象的数据类型。例如乌鸦&#…

如何使用DevExpress WPF组件实现异步加载TreeList节点?建议收藏

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。在本文中,我…

PADS Layout封装创建时批量放置焊盘的方法

批量放置焊盘一般是在BGA封装的是用的比较多,当然对于一些普通贴片焊盘也是挺常用的。 1、第一步:打开PCB封装编辑器,进入到封装编辑界面,放置焊盘后,点击焊盘右键“分步与重复”既可。2、第二步:点击以后弹…