深度学习(1)---卷积神经网络

文章目录

  • 一、发展历史
    • 1.1 CNN简要说明
    • 1.2 猫的视觉实验
    • 1.3 新认知机
    • 1.4 LeNet-5
    • 1.5 AlexNet
  • 二、卷积层
    • 2.1 图像识别特点
    • 2.2 卷积运算
    • 2.3 卷积核
    • 2.4 填充和步长
    • 2.5 卷积计算公式
    • 2.6 多通道卷积
  • 三、池化层


一、发展历史

1.1 CNN简要说明

 1. 卷积神经网络(Convolutional Neural Networks,CNN)是一种专门针对图像领域任务提出的神经网络,它通过多个卷积层和池化层来对输入图像进行特征提取和分类。自2012年以来,卷积神经网络在大部分图像任务中表现出了卓越的性能,例如图像分类、图像分割、目标检测、图像检索等。

 2. 卷积神经网络的基本结构包括输入层、卷积层、池化层和全连接层。其中,卷积层负责在输入图像上进行卷积运算,提取局部特征;池化层则用于减小特征图的尺寸,从而减少计算量和避免过拟合;全连接层则用于将前面各层的特征进行组合,产生具有更高级别的特征表示。

 3. 卷积神经网络的优点在于:它可以自动提取图像中的特征,不需要手工设计特征;它可以处理高维度的图像输入,具有很强的通用性;同时,卷积神经网络具有较强的鲁棒性和容错性,能够有效地处理噪声和干扰。

1.2 猫的视觉实验

 1. 卷积神经网络的发展,最早可以追溯到 1962 年,Hubel 和 Wiesel 对 猫大脑中的视觉系统的研究 。他们首次发现猫的视觉系统中存在层级结构,并且发现了两种重要的细胞simple cells和complex cells,不同类型的细胞承担不同抽象层次的视觉感知功能。

Simple cells和complex cells是视觉皮层中的两种不同类型的细胞。
Simple cells(简单细胞)是视皮层中一种具有简单功能、对视觉刺激产生简单反应的神经元。它们主要接收来自视网膜的信号,对视野中的某种特定特征,如方向、颜色或形状等,产生反应。
与simple cells相比,complex cells(复杂细胞)具有更复杂的功能,能够对更复杂的视觉刺激产生反应。它们不仅能对特定的方向、颜色或形状产生反应,还能对更复杂的视觉信息如运动、纹理等产生反应。
总的来说,视觉皮层中的simple cells和complex cells是两种不同类型的神经元,它们各自具有其特殊的视觉功能和反应机制。

 2. 实验过程:(1)在猫脑上打开3mm,插入电极。(2)让猫看各种形状、位置、亮度和运动的光条。(3)观察大脑视觉神经元激活情况。

在这里插入图片描述
 3. 通过实验得到的一些结论:(1)神经元细胞存在局部感受区域(receptive field),也称为感受野,是神经元对特定刺激产生反应的感受区域。(2)细胞对角度有选择性。(3)细胞对运动方向有选择性。

 4. 对CNN的启发:(1)视觉系统是一个分层次和分阶段进行处理的过程,从低级到高级的抽象过程→堆叠使用卷积和池化。(2)神经元细胞实际上是存在局部感受区域的,具体来说它们是局部敏感→神经元局部连接。

1.3 新认知机

 1. 在上述实验的启发下,日本科学家福岛邦彦提出了神经认知模型。福岛邦彦说:人类的视觉神经是分层的。首先,物体发出或者反射的光进入眼睛,通过瞳孔晶状体等照射到视网膜上成像,然后视网膜上的感光细胞会将图像转化为神经冲动传递到大脑。

在这里插入图片描述
 2. 大脑最初接受视觉信号的神经皮层叫做初级皮层V1,它所获得的是一大堆像素点;随后,V1皮层会把处理过的信号传递到V2皮层,V2皮层会得到图像的边缘、方向等信息;V2皮层再次对信号进行处理,进入V3皮层,在这里神经元会获得物体的轮廓、细节等信息…信号经过多个皮层的传递,最终抽象出物体的大量特征,从而做出判断。

在这里插入图片描述
 3. 日本科学家福岛邦彦于1988年提出的一个卷积神经网络的雏形----新认知机(Neocognitron)该模型采用了基于局部感受野的卷积操作,通过无监督学习进行特征的层次聚类,从而实现了对于输入图像的识别和分类。新认知机是一种八层前馈网络,包括输入层、两个卷积层、两个池化层(下采样层)、两个全连接层和一个输出层。新认知机是卷积神经网络的一个重要基础,后来的卷积神经网络模型,例如LeNet-5和AlexNet等,都采用了类似的结构和设计思路。

在这里插入图片描述

1.4 LeNet-5

 1. LeNet-5是由Yann LeCun等人于1998年提出的一种卷积神经网络,它是第一个大规模商用的卷积神经网络。LeNet-5在手写邮政编码识别方面取得了显著的成功,并被广泛应用于美国邮政系统。

 2. 下图是LeCun在原始论文中的一张结构图。如果不计输入层,该模型共7层,包括2个卷积层,2个池化层,3个全连接层。

在这里插入图片描述
 3. LeNet5这个网络虽然很小,但是它包含了深度学习的基本模块:卷积层,池化层,全连接层,是其它深度学习模型的基础。

1.5 AlexNet

 1. AlexNet是第一个震惊整个计算机视觉领域的卷积神经网络。由亚历克斯·克罗素(Alex Krizhevsky)和团队在2012年提出,并在当年的ImageNet图像分类挑战赛中取得了突破性的成绩,使得卷积神经网络成为计算机视觉领域的热门研究课题。

在这里插入图片描述
 2. 上图为AlexNet原始的网络结构图,可以发现看起来并不是那么的直观明了。同时,受限于当时GPU缓存的大小,所以当时在训练这一网络时,将其分成了上下两个部分分别在不同的GPU上运算。但是,我们现在就大可不必这样做,直接合并在一起即可。因此,我们可以重新将其画成如下形式:

在这里插入图片描述

二、卷积层

2.1 图像识别特点

 1. 特征具有局部性。比如老虎头部的 “王字” 只出现在老虎的头部区域。

在这里插入图片描述
 2. 特征可能出现在图像的任意位置。比如下面这张老虎的图片和上面的图片的特征位置不一样。

在这里插入图片描述
 3. 下采样图像,不会改变图像的类别和目标。如下面的图片虽然尺寸变了,但是类型和特征不变。

在这里插入图片描述

2.2 卷积运算

 卷积运算是指从图像的左上角开始,开一个与卷积核同样大小的活动窗口,窗口图像与卷积核像元对应起来相乘再相加,并用计算结果代替窗口中心的像元亮度值。然后,活动窗口向右移动一列,并作同样的运算。以此类推,从左到右、从上到下,即可得到一幅新图像。

在这里插入图片描述

2.3 卷积核

 1. 卷积核是图像处理时给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。卷积核是一个权矩阵,与使用的图像区域大小相同。

 2. 卷积核对图像进行处理之后。相当于对图像进行了特征提取,输出通常成为特征图。

 3. 如下面图片中:

  • 第一个卷积核是边缘识别类卷积核。这类卷积核的共同特征是:卷积核内所有的值求和为0,这是因为边缘的区域,图像的像素值会发生突变,与这样的卷积核做卷积会得到一个不为0的值。而非边缘的区域,像素值很接近,与这样的卷积核做卷积会得到一个约等于0的值。
  • 第二个卷积核是锐利化卷积核。这类卷积核的作用是凸显像素值有变化的区域,使得本来像素值梯度就比较大的区域(边缘区域)变得像素值梯度更大。在边缘检测中,卷积核的设计要求卷积核内的所有值求和为0,这里的要求刚好相反,要求卷积核内的所有值应该不为0,凸显出像素值梯度较大的区域。
  • 第三个卷积核是模糊化卷积核。这类卷积核的作用原理是对一片区域内的像素值求平均值,使得像素变化更加平缓,达到模糊化的目的。

在这里插入图片描述
 4. 案例解析:

import torch
from PIL import Image
import torchvisionimage = Image.open('girl.png').convert('RGB') #导入图片
image_to_tensor = torchvision.transforms.ToTensor()   #实例化ToTensor
original_image_tensor = image_to_tensor(image).unsqueeze(0)     #把图片转换成tensor#卷积核:prewitt横向
conv_prewitt_h = torch.nn.Conv2d(in_channels=3,out_channels=1,kernel_size=3,padding=0,bias=False)  #bias要设定成False,要不然会随机生成bias,每次结果都不一样
conv_prewitt_h.weight.data = torch.tensor([[[[-1,-1,-1],[0,0,0],[1,1,1]],[[-1,-1,-1],[0,0,0],[1,1,1]],[[-1,-1,-1],[0,0,0],[1,1,1]]]], dtype=torch.float32)#卷积核:模糊化
conv_blur = torch.nn.Conv2d(in_channels=3,out_channels=1,kernel_size=5,padding=0,bias=False)
conv_blur.weight.data = torch.full((1,3,5,5),0.04)#卷积核:锐利化
conv_sharp = torch.nn.Conv2d(in_channels=3,out_channels=1,kernel_size=3,padding=0,bias=False)
conv_sharp.weight.data = torch.tensor([[[[-1,-1,1],[-1,-1,-1],[-1,-1,-1]],[[-1,-1,1],[-1,22,-1],[-1,-1,-1]],[[-1,-1,1],[-1,-1,-1],[-1,-1,-1]]]], dtype=torch.float32)#生成并保存图片
tensor_prewitt_h = conv_prewitt_h(original_image_tensor)
torchvision.utils.save_image(tensor_prewitt_h, 'prewitt_h.png')tensor_blur = conv_blur(original_image_tensor)
torchvision.utils.save_image(tensor_blur, 'blur.png')tensor_sharp = conv_sharp(original_image_tensor)
torchvision.utils.save_image(tensor_sharp, 'sharp.png')

 (1)原图:

在这里插入图片描述
 (2)横向边缘卷积后:

在这里插入图片描述
 (3)锐利化卷积后:

在这里插入图片描述
 (4)模糊化卷积后:

在这里插入图片描述

2.4 填充和步长

 1. 填充(Padding):输入图像与卷积核进行卷积后的结果中会损失部分值,输入图像的边缘被“修剪”掉了(边缘处只检测了部分像素点,丢失了图片边界处的众多信息)。这是因为边缘上的像素永远不会位于卷积核中心,而卷积核也没法扩展到边缘区域以外。为解决这个问题,可以在进行卷积操作前,对原矩阵进行边界填充(Padding),也就是在矩阵的边界上填充一些值,以增加矩阵的大小,通常都用“0”来进行填充的。

 2. 填充的作用:(1)使卷积后图像分辨率保持不变,方便计算特征图尺寸的变化。(2)弥补边界信息的 “丢失” 问题。

在这里插入图片描述

在这里插入图片描述
 3. 步长(Stride):滑动卷积核时,我们会先从输入的左上角开始,每次往左滑动一列或者往下滑动一行逐一计算输出,我们将每次滑动的行数和列数称为Stride。在之前的图片中,Stride=1;在下图中,Stride=2。

在这里插入图片描述
 4. Stride的作用是:成倍缩小尺寸,而这个参数的值就是缩小的具体倍数。比如步幅为2,输出就是输入的1/2;步幅为3,输出就是输入的1/3;以此类推。

在这里插入图片描述

2.5 卷积计算公式

 1. 计算公式:

 输入图片的尺寸:一般用n*n表示输入的image大小。

 卷积核的大小:一般用 f*f表示卷积核的大小。

 填充(Padding):一般用 p来表示填充大小。

 步长(Stride):一般用 s来表示步长大小。

 输出图片的尺寸:一般用 o来表示。

 如果这些都已知,可以求得计算公式如下,其中的符号是向下取整符号,用于结果不是整数时进行向下取整。

在这里插入图片描述
 2. 举例如下:

在这里插入图片描述

2.6 多通道卷积

 1. 上述例子都只包含一个输入通道,而实际上大多数输入图像都有 RGB 3个通道。

RGB是一种颜色模型,它代表了红色(R)、绿色(G)和蓝色(B)三种基本颜色的组合。通过调整这三种颜色的强度和亮度,可以创建出各种不同的颜色。在计算机图形学和数字图像处理中,RGB是最常用的颜色表示方法之一。每个颜色通道的取值范围为0-255,表示颜色的强度,通过不同通道的组合可以得到大约1600万种不同的颜色。
通过调整RGB中每个通道的值,可以混合和匹配不同的颜色,从而对图像进行卷积操作。举个例子,假设有一张彩色图片,我们可以使用RGB模式来获取每个像素点的颜色信息,然后通过卷积算法对图像进行处理。

 2. 多通道卷积的计算过程如下:

  • (1)将卷积核与输入数据的每个通道对应进行点积运算。这涉及到将卷积核的每个元素与输入数据的相应元素相乘,然后将所有乘积相加。
  • (2)将步骤(1)中的结果相加,得到卷积的结果。
  • (3)将步骤(2)中的结果存储在输出特征图的相应位置。
  • (4)通过滑动卷积核并重复步骤(1)到(3),直到遍历输入数据的所有位置,从而计算输出特征图的所有值。

 3. 下面这些图片可以帮助理解上面的过程:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、池化层

 1. 池化:一个像素表示一块区域的像素值,降低图像的分辨率。

 2. 池化层:池化层是深度学习中常用的一种层级结构,它可以对输入数据进行降采样,减少数据量,同时保留重要的特征信息。池化层通常紧跟在卷积层之后,可以有效地减少数据量和计算复杂度,提高模型的训练速度和泛化能力。

 3. 池化层的结构与卷积层类似,它也由多个滤波器组成,每个滤波器对输入数据进行卷积操作,得到一个输出特征图。不同的是,池化层的卷积操作通常不使用权重参数,而是使用一种固定的池化函数,例如最大池化、平均池化等。

在这里插入图片描述
 4. 池化层的作用:(1)缓解卷积层对位置的过度敏感。(2)减少冗余,降低图像的分辨率,从而减少参数量。

在这里插入图片描述
 5. 池化层的分类:最大池化(max pooling)、平均池化(average pooling)、重叠池化(OverlappingPooling)、空金字塔池化(Spatial Pyramid Pooling)。

  • 最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。
  • 平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。
  • 重叠池化(OverlappingPooling):相邻池化窗口之间有重叠区域,此时一般sizeX > stride。
  • 空金字塔池化(Spatial Pyramid Pooling):将一个pooling变成了多个scale的pooling,用不同大小池化窗口作用于上层的卷积特征。

 6. 如下图是一个最大池化和平均池化:

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Spring源码分析 事务 实现原理

文章目录 什么是事务Spring事务管理Spring事务实现原理事务管理器事务定义事务的开启事务核心方法业务代码使用事务TransactionInterceptor 什么是事务 一般所指的事务是数据库事务,是指一批不可分割的数据库操作序列,也是数据库并发控制的基本单位。其…

26591-2011 粮油机械 糙米精选机

声明 本文是学习GB-T 26591-2011 粮油机械 糙米精选机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了糙米精选机的有关术语和定义、工作原理、型号及基本参数、技术要求、试验方法、检 验规则、标志、包装、运输和储存要求。 …

常见列表字典排序

一、列表排序 demoList [1, 3, 2, 4, 9 ,7]res sorted(demoList) # 默认升序# 降序 # res sorted(demoList, reverseTrue)print(res)二、字典排序 demoDict {"篮球": 5, "排球": 9, "网球": 6, "足球": 3}# sorted排序 res so…

Spring面试题21:说一说Spring的@Required注解和@Qualifier注解

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring的@Required注解 @Required ,用于标记在注入的属性上。它表示被注解的属性在配置 Bean 的时候是必需的,如果没有正确配置,则会抛出…

如何使用 API 接口获取商品数据,从申请 API 接口、使用 API 接口到实际应用,一一讲解

在当今的数字化时代,应用程序接口(API)已经成为数据获取的重要通道。API 接口使得不同的应用程序能够方便地进行数据交换,从而促进了信息的广泛传播和利用。在众多的数据源中,商品数据是一个非常重要的领域&#xff0c…

OS 模拟进程状态转换

下面的这个博主写的很好 但是他给的代码print部分和语言风格python三识别不了 这个特别感谢辰同学帮我调好了代码 我放在主页上了 估计过两天就可以通过了 《操作系统导论》实验一:模拟进程状态转换_process-run.py-CSDN博客 这个补充一下他没有的:OS…

R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列...

全文链接:http://tecdat.cn/?p31162 最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出(点击文末“阅读原文”获取完整代码数据)。 相关视频 本文做SV模型,选取马尔可夫蒙特卡罗法(MCMC)、正则化广…

汽车电子——产品标准规范汇总和梳理(信息安全)

文章目录 前言 一、整车 二、充电接口 三、诊断接口 四、远程接口 五、实施指南 总结 前言 见《汽车电子——产品标准规范汇总和梳理》 一、整车 《GB/T 40861-2021 汽车信息安全通用技术要求》 《GB XXXXX—XXXX 汽车整车信息安全技术要求》 《GB/T 41871-2022 信息…

uni-app:canvas-绘制图形4(获取画布宽高,根据画布宽高进行图形绘制)

效果 代码 var width ; var height ; const query uni.createSelectorQuery(); //获取宽度 query.select(#firstCanvas).fields({ size: true }, (res) > { width res.width; height res.height; }).exec(); console.log(宽度width); console.log(高…

计算机网络 - 链路层

计算机网络 - 链路层 计算机网络 - 链路层 基本问题 1. 封装成帧2. 透明传输3. 差错检测 信道分类 1. 广播信道2. 点对点信道 信道复用技术 1. 频分复用2. 时分复用3. 统计时分复用4. 波分复用5. 码分复用 CSMA/CD 协议PPP 协议MAC 地址局域网以太网交换机虚拟局域网 基本问题…

AIGC快速入门体验之虚拟对象

AIGC快速入门体验之虚拟对象 一、什么是AIGC二、AIGC应用场景2.1 代码生成2.2 图片生成2.3 对象生成 三、AIGC虚拟对象3.1 AIGC完全免费工具3.2 快速获取对象3.3 给对象取名3.4 为对象写首诗3.5 和对象聊聊天 一、什么是AIGC AIGC是生成式人工智能(Artificial Intel…

吉利微型纯电,5 万元的快乐

熊猫骑士作为一款主打下层市场的迷你车型,吉利熊猫骑士剑指宝骏悦也,五菱宏光 MINI 等热门选手。 9 月 15 日,吉利熊猫骑士正式上市,售价为 5.39 万,限时优享价 4 .99 万元。价格和配置上对这个级别定位的战略车型有一…

【kkFileView】源码编译打包构建镜像部署

目录 官网使用源码构建镜像k8s启动yaml参考使用介绍 官网 官网: http://kkfileview.keking.cn/zh-cn/index.html在线文档: http://kkfileview.keking.cn/zh-cn/docs/home.html源码地址: https://gitee.com/kekingcn/file-online-preview发行版下载页面: https://gitee.com/kek…

运行软件mfc100u.dll缺失是怎么办?mfc100u.dll丢失解决方法分享

Mfc100u.dll 丢失的问题可能困扰着许多使用计算机的用户。Mfc100u.dll 是一个重要的动态链接库文件,它包含了许多功能模块,如字符串处理、数学计算、文件操作等。当 Mfc100u.dll 文件丢失或损坏时,可能会导致许多应用程序无法正常运行&#x…

kafka环境搭建以及基本原理

kafka最先是作为日志数据采集,后用于消息传递,kafka能承担tb级别数据存储,确保服务的可用性,允许少量数据的丢失 作为消息中间件就有异步、解耦、削峰三个作用 一、单机搭建 单机ip:192.168.64.133 下载地址&#…

JOSEF约瑟DZJ-402 DZY-401导轨式中间继电器 触点形式 两转换 AC、DC220V

DZY(J)-400导轨式中间继电器 系列型号 DZY、DZJ-401 DZY、DZJ-402 DZY、DZJ-403 DZY、DZJ-404 DZY、DZJ-405 DZY、DZJ-406 DZY、DZJ-407 DZY、DZJ-408 DZY、DZJ-409 DZY、DZJ-410 DZY、DZJ-411 DZY、DZJ-412 DZY、DZJ-413 DZY、DZJ-414 DzY、DZJ-415 DZY、DZJ…

[Qt]QListView 重绘实例之一:背景重绘

0 环境 Windows 11Qt 5.15.2 MinGW x64 1 系列文章 简介:本系列文章,是以纯代码方式实现 Qt 控件的重构,尽量不使用 Qss 方式。 《[Qt]QListView 重绘实例之一:背景重绘》 《[Qt]QListView 重绘实例之二:列表项覆…

亿发连锁商超新零售解决方案提供商,提供定制新零售管理系统

时代的发展带动了经济环境的变化,为迎合市场经济的发展需求,数字化收银逐渐融入到大中生活中,中小型商铺都倾向于使用智慧收银系统取代传统收银模式。新零售系统成为了商家在竞争激烈的市场中立足的关键。但随之也带来了数不尽的竞争压力&…

提升群辉AudioStation音乐体验,实现公网音乐播放

文章目录 本教程解决的问题是:按照本教程方法操作后,达到的效果是本教程使用环境:1 群晖系统安装audiostation套件2 下载移动端app3 内网穿透,映射至公网 很多老铁想在上班路上听点喜欢的歌或者相声解解闷儿,于是打开手…

SpringBoot之视图解析

文章目录 前言一、视图解析1.视图解析原理流程 二、模板引擎——Thymeleaf基本语法表达式字面量文本操作数学运算布尔运算比较运算条件运算特殊操作设置属性值-th:attr迭代条件运算属性优先级 提取公共页面th:insertth:replace区别 总结 前言 SpringBoot默认不支持 JSP&#x…