深度学习之卷积神经网络(CNN)

news2024/11/18 7:46:12

      大家好,我是带我去滑雪!

      卷积神经网络(Convolutional Neural Network,CNN)是一种基于深度学习的前馈神经网络,主要用于图像视频识别分类分割标注等计算机视觉任务。它主要由卷积层池化层全连接层激活函数层等组成。其中,卷积层通过一组卷积核(权值矩阵)提取输入图像的不同特征、对其进行特征提取和抽象;池化层则通过降采样的方式减小特征图的大小,提高模型的泛化能力;全连接层则负责将卷积层和池化层的输出映射到模型最后的分类结果上。最后,激活函数层利用非线性变换使模型更加具有表达能力和拟合能力。下面依次学习关于卷积神经网络的相关知识。

目录

1、认识图像数据

2、卷积运算与池化运算

(1)卷积运算      

(2)池化运算

3、卷积神经网络的处理过程

4、卷积层

(1)局部连接

(2)权重共享

5、多维数据的卷积层输入与输出

6、Dropout层


1、认识图像数据

      位图是一种图像文件格式,也叫做栅格图像(Raster Image),它是由象素组成的图像。简单来说,一个位图就是由很多个像素点组成的。每个像素点可以保存图像中的颜色信息和位置信息,其大小和位数决定着位图的清晰度和占用的存储空间。 在位图图像中,每个像素点只能表示一种颜色,且颜色深度是固定的。由于是由固定数量的像素点组成的,所以缩放、旋转等图像变换会使图像出现锯齿等失真现象。位图通常用于存储比较简单的图形、图标、照片等,常见的位图格式有BMP、JPEG、GIF、PNG等。

     卷积神经网络处理的就是位图,位图类似矩阵,每一个像素是矩阵中的一个元素,依据像素色彩分为两种:

  • 黑白图:每一个像素的元素值为0~255的灰度值;
  • 彩色图:每一个像素的元素值为RGB红蓝绿三原色值的向量,称为通道,三个值的范围均为0~255,其中黑色为[0,0,0],白色为[255,255,255],红色为[255,0,0],绿色为[0,255,0],蓝色为[0,0,255]。

      卷积神经网络是模仿人脑视觉,使用特征来识别图片,下面学习卷积运算和池化运算。

2、卷积运算与池化运算

(1)卷积运算      

      卷积运算(Convolutional operation):卷积运算是指利用卷积核在图像或特征图上进行卷积操作,得到一系列新的卷积特征图。卷积核通常是一个小的矩阵,它在原始图像上按照步长移动,并与图片像素一一对应地相乘并求和,最终将卷积核的所有结果汇总在一起形成一个新的特征图。卷积运算通过不断地提取特征,将图像或特征图逐渐压缩和减小,使得后续的神经网络处理更加高效。

(2)池化运算

       池化运算(Pooling operation):池化运算是对卷积特征图进行压缩或减小的一种操作,通常使用的是最大池化或平均池化,即在每个小的窗口内求取最大值或平均值,并将这个值作为该窗口的池化结果,池化运算一样采用滑动窗格。池化运算可以降低特征图的数据量,减少运算量,防止过拟合,同时能保留特征图的主要特征,使得神经网络更加易于训练和泛化

      卷积和池化在卷积神经网络中频繁使用,它们相辅相成,相互配合,共同完成图像特征的提取和抽取。

3、卷积神经网络的处理过程

     卷积神经网络的处理过程:

3885412a58734265b78b060ccce21975.png

      卷积神经网络到底学习什么呢?卷积神经网络学习卷积层的权重,即滤波器,首先使用随机数初始化滤波器的矩阵内容,然后使用正向和反向传播学习权重后,滤波器可以自动识别图片所需提取的特征。

4、卷积层

       卷积神经网络的卷积层,是卷积神经网络的主要组成部分之一,也是卷积神经网络中最核心的层之一。卷积层的操作是将位图原来点对点的全域比对,转换为滤波器较小范围的局部对比,通过局部小范围一块一块的特征研判来综合出识别的结果。

      卷积层和全连接层有合不同:

  • 在卷积神经网络中,使用全连接层,神经网络的参数量过大;
  • 卷积层相比于全连接层,可以实现局部连接与权重共享;

(1)局部连接

       卷积神经网络使用局部连接,从局部扩展至全域,一个一个小区域去认识,通过从各个小区域得到局部特征后,然后汇总局部特征得到完整的全域信息。

(2)权重共享

       权重共享是指每一个局部连接的神经元都使用相同的权重,使用权重共享后神经网络的参数个数将会大大下降。

5、多维数据的卷积层输入与输出

(1)卷积层的输入通道数根据图片而定,彩色图的通道数为3,灰度图的通道数为1。

(2)滤波器的通道数和卷积层的输入通道数相同。

(3)卷积层的输出通道数需根据滤波器的数量而定,而卷积层的输出通道就是下一层卷积层的输入通道数。

6、Dropout层

       Dropout层是神经网络的一种优化方法,可以在不增加训练数据集的情况下,对抗过拟合问题。Dropout层的目的是在损失函数中加入随机性,破坏各层神经元之间的共适性来修正前一层神经层学习方向的错误,能够让预测模型更加强壮,并提升预测模型的泛化性。

 

更多优质内容持续发布中,请移步主页查看。

   点赞+关注,下次不迷路!

 

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

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

相关文章

【开源、应用】QT—TCP网络上位机的设计

本文设计一个终端控制的上位机软件(如“设计目标”下图所示),可以和STM32、Adruino等通信实现无线局域网控制系统。 本文的通信内容和图表内容可以参考作者之前的文章 STM32ESP8266连接电脑Qt网络上位机——QT篇https://blog.csdn.net/qq_53…

【STM32G431RBTx】备战蓝桥杯嵌入式→决赛试题→第六届

文章目录 前言一、题目二、模块初始化三、代码实现interrupt.h:interrupt.c:main.h:main.c: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置,直接使用提供的资源包就行 2.ADC:开启ADCsingle-ended 3.LED:开启PC8-15,PD2输出模式就行了…

【JVM001】宋红康JVM字节码举例

宋红康JVM字节码举例 1 Integer package jvmT; public class IntegerTest {public static void main(String[] args) {Integer i 5;int y 5;System.out.println(iy); //trueInteger i6 5;Integer y6 5;System.out.println(i6y6);//trueInteger i5 128;Integer y5 128;System.…

SpringBoot中使用lombok

1.添加依赖 在项目的根目录中找到pom.xml&#xff0c;在dependencies下复制这段代码 <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifac…

解决Python爬虫中selenium模块中的find_element_by_id方法无法使用

如有错误&#xff0c;敬请谅解&#xff01; 此文章仅为本人学习笔记&#xff0c;仅供参考&#xff0c;如有冒犯&#xff0c;请联系作者删除&#xff01;&#xff01; 我们在学习selenium模块的时候&#xff0c;经常会用到 browser.find_element_by_id命令&#xff0c;但随着se…

代码随想录算法训练营第四十六天 | bool的背包题,细节多

139.单词拆分 文档讲解&#xff1a;代码随想录 (programmercarl.com) 视频讲解&#xff1a;动态规划之完全背包&#xff0c;你的背包如何装满&#xff1f;| LeetCode&#xff1a;139.单词拆分_哔哩哔哩_bilibili 状态&#xff1a;不会做&#xff0c;不知道怎么把bool类型与背包…

推荐系统系列之推荐系统概览(下)

在推荐系统概览的第一讲中&#xff0c;我们介绍了推荐系统的常见概念&#xff0c;常用的评价指标以及首页推荐场景的通用召回策略。本文我们将继续介绍推荐系统概览的其余内容&#xff0c;包括详情页推荐场景中的通用召回策略&#xff0c;排序阶段常用的排序模型&#xff0c;推…

软件测试实验:loadrunner的高级使用

目录 前言实验目的实验内容实验要求实验过程loadrunner中插入事务与集合点loadrunner中插入检查点loadrunner中参数化-table分析报告功能loadrunner手动设置场景loadrunner监视图标 总结 前言 本实验主要介绍了loadrunner这一强大的性能测试工具的高级使用方法&#xff0c;包括…

python实现九宫格的车辆路径轨迹上位机界面

实验环境&#xff1a;wxFormBuilder v3.5 python3.7.5 MC9S12G128开发板 基本功能&#xff1a;控制开发板上的按键&#xff0c;模拟车辆移动的上下左右四个方位&#xff0c;通过can通信告诉上位机界面&#xff0c;车辆轨迹的移动方位&#xff1b; 1. python重新封装control…

技巧:jetbrain全家桶系列如何撤销已经提交本地仓库但还没push的commit

目录 1. 哎呀&#xff0c;不小心把不能提交的“机密”加入commit了2. 使用reset来修复的话要注意有坑&#xff0c;选Soft和Mixed&#xff0c;千万别选Hard和Keep3. 使用revert&#xff0c;只能修修补补&#xff0c;但commit还在&#xff0c;当然有好处是会留下使用痕迹&#xf…

异常处理机制

编程错误 编写程序时遇到的错误可大致分为 2 类&#xff0c;分别为语法错误和运行时错误。 语法错误 语法错误&#xff0c;也就是解析代码时出现的错误。当代码不符合Python语法规则时&#xff0c;Python解释器在解析时就会报出SyntaxError语法错误&#xff0c;与此同时还会…

服务(第二十六篇)redis的主从复制、哨兵、集群

主从复制&#xff1a; 主从复制&#xff0c;是指将一台Redis服务器的数据&#xff0c;复制到其他的Redis服务器。前者称为主节点(Master)&#xff0c;后者称为从节点(Slave)&#xff1b;数据的复制是单向的&#xff0c;只能由主节点到从节点。 原理&#xff1a; 主从关系确定…

[算法前沿]--009-HuggingFace介绍(大语言模型底座)

基础介绍 HuggingFace 是一家专注于自然语言处理(NLP)、人工智能和分布式系统的创业公司,创立于2016年。最早是主营业务是做闲聊机器人,2018年 Bert 发布之后,他们贡献了一个基于 Pytorch 的 Bert 预训练模型,即 pytorch-pretrained-bert,大受欢迎,进而将重心转向维护…

PoseiSwap以2500万美元估值,再获新一轮融资

近日&#xff0c;Nautilus Chain 上的首个 DEX PoseiSwap 宣布&#xff0c;其目前已经以 2500 万美元的估值&#xff0c;从 Gate Labs、Emurgo Ventures、Republic以及Cipholio Ventures 等行业顶级投资机构中&#xff0c;获得了新一轮的融资&#xff0c;不过目前该融资的具体数…

asp.net网上捐赠系统

一该源码功能十分的全面&#xff0c;具体介绍如下&#xff1a; 本版本软件主要完成三个功能&#xff1a; 1、建立网上捐赠功能 实现网上捐赠程序自动化&#xff0c;智能化&#xff0c;在捐赠者与受捐者填写各种资料后&#xff0c;自动保存方便以后调阅查询&#xff0c…

Java【网络编程1】详解DatagramSocket和DatagramPacket类, 逐行代码解析如何服务器客户端通信(附代码)

文章目录 前言一、认识 Socket(套接字), TCP 协议和 UDP 协议1, 什么是 Socket(套接字)2, 浅谈 TCP 协议和 UDP 协议的区别和特点 二、基于 UDP 协议的 Socket API1, DatagramSocket 类2, DatagramPacket 类 三、逐行代码解析网络编程1, 逐行解析客户端1.1, 核心成员方法 start…

【C++】-类和对象完结(内部类、匿名对象以及编译器的优化的讲解)(下)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 …

m1安装svn

背景&#xff1a;电脑是mac m2&#xff0c;好多软件都不太兼容&#xff0c;安装软件成了一个问题&#xff0c;想着装一个SVN&#xff0c;跟大家一起协同开发&#xff0c;这下可麻烦死了&#xff0c;&#x1f604;&#xff0c;终于弄明白用brew命令了&#xff0c;然后就用brew命…

Metasploitable2靶机渗透学习

目录 一、介绍 二、环境 三、渗透攻击 1.前期渗透 1.1主机发现 1.2.端口扫描 1.3.测试漏洞 2.弱密码漏洞 2.1系统弱密码登录&#xff08;telnet &#xff1a;23端口&#xff09; 2.2 MySQL弱密码登录&#xff08;端口&#xff1a;3306&#xff09; 2.3 PostgreSQL弱…

K8s全套快速入门

K8s快速入门 1 介绍 google开源的容器化管理工具机器数量十几台、上百台时&#xff0c;就可以考虑使用k8s高可用、自动容灾恢复、灰度更新、一键回滚历史版本、方便伸缩扩展等 k8s集群架构&#xff1a; 通常&#xff1a;一主多从 master&#xff1a;主节点&#xff0c;控制平台…