【机器学习 深度学习】卷积神经网络简述

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!相对完整的机器学习基础教学!
特别提醒:针对机器学习,特别开始专栏:机器学习python实战 欢迎订阅!本专栏针对机器学习基础专栏的理论知识,利用python代码进行实际展示,真正做到从基础到实战!
💡往期推荐
【机器学习基础】一元线性回归(适合初学者的保姆级文章)
【机器学习基础】多元线性回归(适合初学者的保姆级文章)
【机器学习基础】决策树(Decision Tree)
【机器学习基础】K-Means聚类算法
【机器学习基础】DBSCAN
【机器学习基础】支持向量机
【机器学习基础】集成学习
【机器学习 & 深度学习】神经网络简述
💡本期内容:卷积神经网络最常用于分析视觉图像,并广泛应用于计算机视觉、自然语言处理等领域。卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求。


文章目录

  • 0 前言
  • 1 卷积神经网络的层级结构
  • 2 卷积
    • 2.1 步长和填充
    • 2.2 卷积的作用
      • 2.2.1 用卷积层代替全连接层
      • 2.2.2 多个卷积核
  • 3 池化
    • 3.1 池化层的结构
    • 3.2 池化层的作用
    • 3.3 池化层的参数选择
  • 4 常见的卷积神经网络


0 前言

上一篇文章我们介绍了人工神经网络,神经网络由大量的神经元相互连接而成。每个神经元接受线性组合的输入后,最开始只是简单的线性加权,后来给每个神经元加上了非线性的激活函数,从而进行非线性变换后输出。每两个神经元之间的连接代表加权值,称之为权重(weight)。不同的权重和激活函数,则会导致神经网络不同的输出。

这一篇文章我们来了解一下更加神奇的卷积神经网络

在这里插入图片描述


1 卷积神经网络的层级结构

  • 普通神经网络

在这里插入图片描述

  • 卷积神经网络

卷积神经网络是一种前馈神经网络,受生物学上感受野(Receptive Field)的机制而提出的。在视觉神经系统中,一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够激活该神经元。

在这里插入图片描述

上图给出了经典的卷积神经网络各个层级结构

上图中CNN要做的事情是:给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,总之输出一个结果:如果是车 那是什么车

  • CONV:卷积计算层,线性乘积 求和。
  • RELU:激励层,上文2.2节中有提到:ReLU是激活函数的一种。
  • POOL:池化层,简言之,即取区域平均或最大。
  • FC:全连接层

2 卷积

泛函分析中,卷积、旋积或褶积是通过两个函数f和g生成第三个函数的一种数学运算。
深度学习中, 对图像和滤波矩阵做内积的操作就是卷积。

  • 卷积经常用在信号处理中,用于计算信号的延迟累积。
  • 假设一个信号发生器每个时刻t产生一个信号xt ,其信息的衰减率为wk ,即在k−1个时间步长后,信息为原来的wk
  • 时刻t收到的信号yt 为当前时刻产生的信息和以前时刻延迟信息的叠加。

在这里插入图片描述

  • 举个例子

给定一个输入信号序列𝑥和滤波器𝑤,卷积的输出为:在这里插入图片描述(Filter: [-1,0,1])
在这里插入图片描述

  • 不同的滤波器来提取信号序列中的不同特征

在这里插入图片描述

2.1 步长和填充

在这里插入图片描述

步长是指感受野窗口每次移动的长度单位,对于2D输入来说,分为沿𝑥(向右)方向和𝑦(向下)方向的移动长度。步长会影响到输出特征图的尺寸,步长越大,输出的特征图尺寸越小,反之亦然。步长的选择需要根据实际任务需求和数据特点来决定,通常情况下,步长为1或2。
填充是指在输入高和宽的两侧填充元素(通常是0元素),以增加输出的特征图尺寸。填充的作用是控制输出特征图的尺寸同时可以使得卷积神经网络具有更强的平移不变性。通过填充,可以在输入特征图上增加一些额外的信息,使得卷积神经网络能够更好地处理数据。

  • 卷积的结果按输出长度不同可以分为三类:
    窄卷积:步长 𝑇 = 1 ,两端不补零 𝑃 = 0 ,卷积后输出长度为 𝑀 − 𝐾 + 1
    宽卷积:步长 𝑇 = 1 ,两端补零 𝑃 = 𝐾 − 1 ,卷积后输出长度 𝑀 + 𝐾 − 1
    等宽卷积:步长 𝑇 = 1 ,两端补零 𝑃 =(𝐾 − 1)/2 ,卷积后输出长度 𝑀

在早期的文献中,卷积一般默认为窄卷积。而目前的文献中,卷积一般默认为等宽卷积。

在这里插入图片描述

2.2 卷积的作用

2.2.1 用卷积层代替全连接层

  1. 局部感知:卷积层可以使得神经网络能够更好地感知局部特征,这对于图像、语音等局部特征较为丰富的任务非常有利。而全连接层则无法实现局部感知,因为它会将每个神经元与输入数据中的每个元素相连,导致计算量和参数数量都非常大。
  2. 参数共享:卷积层中的卷积核可以在整个输入数据上共享参数,这样不仅可以减少参数量,还可以提高模型的泛化能力。而全连接层则没有参数共享的特点。
  3. 平移不变性:由于卷积层可以对输入数据进行局部感知和平移不变性处理,因此它可以使得神经网络对于输入数据的平移变化具有更好的鲁棒性。而全连接层则不具备这种平移不变性的特点。
  4. 特征提取:卷积层可以通过逐渐增加感受野的大小来提取不同尺度的特征,这对于一些需要多尺度特征的任务非常有利。而全连接层则无法实现多尺度特征的提取。

在这里插入图片描述

2.2.2 多个卷积核

  1. 在卷积神经网络中,多个卷积核的作用是提取输入数据的多种局部特征。每个卷积核都可以从输入数据中提取出特定的特征,例如边缘、角点、纹理等。通过使用多个卷积核,可以同时学习多个特征,并在输出层中将这些特征结合起来进行分类或回归。

  2. 卷积核的作用类似于滤波器,可以对输入数据进行滤波操作,提取出局部特征。在卷积神经网络中,卷积核的大小和数量可以根据任务需求和数据特点进行选择和调整。通常情况下,卷积核的大小为3x3或5x5,数量可以从几十到几百不等。

  3. 使用多个卷积核可以增加神经网络的非线性表达能力,使得神经网络能够更好地学习和模拟复杂的特征。同时,多个卷积核还可以提高网络的泛化能力,使得神经网络对于不同的数据分布更加鲁棒。

在这里插入图片描述


3 池化

卷积层虽然可以显著减少连接的个数,但是每一个特征图的神经元个数并没有显著减少。

池化层是卷积神经网络中的一种重要层,用于降低输入数据的空间维度,减少参数数量,提高模型的计算效率

3.1 池化层的结构

池化层通常位于卷积层之后,通过对输入数据的降采样来减小数据的空间尺寸。

池化层的操作可以分为两种:最大池化和平均池化。最大池化是从输入数据中选取固定大小的区域,取该区域中的最大值作为输出;平均池化则是计算固定大小区域的平均值作为输出。

在这里插入图片描述

3.2 池化层的作用

  1. 降低维度:通过减小数据的空间尺寸,池化层可以降低输入数据的维度,减少计算量和参数数量,提高模型的计算效率。
  2. 提高平移不变性:由于池化层的操作是针对固定大小的区域进行的,因此它可以对输入数据进行下采样,使得神经网络对于输入数据的平移变化具有更好的鲁棒性。
  3. 特征提取和降噪:池化层可以提取输入数据中的重要特征和降低噪声干扰。通过减小数据的空间尺寸,可以将一些不重要的细节信息过滤掉,保留重要的特征信息。

在这里插入图片描述

3.3 池化层的参数选择

  1. 池化窗口的大小:池化窗口的大小决定了降采样的程度和输出的特征图尺寸。通常情况下,池化窗口的大小为2x2或3x3,但具体选择需要根据任务需求和数据特点进行决定。
  2. 步长(stride):步长决定了池化操作的移动速度,即每次池化操作的间隔。步长越大,输出的特征图尺寸越小,反之亦然。步长的选择也需要根据实际情况进行决定。
  3. 填充(padding):填充是在输入数据的周围添加额外的元素(通常是0),以保持输出特征图的尺寸与输入数据一致。填充可以控制输出特征图的尺寸,但同时也会增加计算量和参数数量。

4 常见的卷积神经网络

  • LeNet-5

LeNet-5 是一个非常成功的神经网络模型。

基于 LeNet-5 的手写数字识别系统在 90 年代被美国很多银行使用,用来识别支票上面的手写数字。

在这里插入图片描述

  • AlexNet

2012 ILSVRC winner(top 5 error of 16% compared to runner-up with 26% error)

第一个现代深度卷积网络模型
首次使用了很多现代深度卷积网络的一些技术方法
使用GPU进行并行训练,采用了ReLU作为非线性激活函数,使用Dropout防止过拟合,使用数据增强
5个卷积层、3个汇聚层和3个全连接层

在这里插入图片描述

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

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

相关文章

算法:箱子之形摆放

一、算法描述及解析 要求将一批箱子按从上到下以‘之’字形的顺序摆放在宽度为 n 的空地上,输出箱子的摆放位置, 例如:箱子ABCDEFG,空地宽为3。 如输入: ABCDEFG 3 输出: AFG BE CD 注:最后一行…

uni-app 经验分享,从入门到离职(三)——关于 uni-app 生命周期快速了解上手

文章目录 📋前言⏬关于专栏 🎯什么是生命周期🧩应用生命周期📌 关于 App.vue/App.uvue 🧩页面生命周期📌关于 onShow 与 onLoad 的区别 📝最后 📋前言 这篇文章是本专栏 uni-app 基…

MacBook安装虚拟机Parallels Desktop

MacBook安装虚拟机Parallels Desktop 官方下载地址: https://www.parallels.cn/pd/general/ 介绍 Parallels Desktop 被称为 macOS 上最强大的虚拟机软件。可以在 Mac 下同时模拟运行 Win、Linux、Android 等多种操作系统及软件而不必重启电脑,并能在不同系统间随…

MySQL原理(一)架构组成之逻辑模块(2)缓存机制

前面提到了mysql的逻辑模块中包含Query Cache 。 一、查询缓存 1、作用 MySQL查询缓存即缓存查询数据的SQL文本及查询结果,用Key-Value的形式保存在服务器内存中。当查询命中缓存,MySQL会立刻返回结果,跳过了解析,优化和执行阶段。 2、查询缓存的命中条件 (1&a…

canvas路径剪裁clip(图文示例)

查看专栏目录 canvas实例应用100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

(软件分享)Fotor - AI照片编辑器

【应用名称】:Fotor - AI照片编辑器 【适用平台】:#Android 【软件标签】:#Fotor 【应用版本】:7.5.0.2➡7.5.1.5 【应用大小】:225MB 【软件说明】:软件升级更新。Fotor 包含编辑照片所需的所有工具。用户…

踩坑系列——mysql数据库字段类型为tinyint输入字符串条件查询无效

背景 排查问题发现有个查询sql的条件传的字符串‘ENABLE’,而数据库这个字段类型是tinyint,值只有0和1,看查询结果过滤出的都是值为0的数据。按自己理解这个语句应该查不出数据,但是结果非预期 排查 问了下ChatGpt给的回答是这…

CH395Q之CH395Q驱动库移植与驱动库分析(二)

本节主要介绍以下内容: 一、CH395Q驱动库移植 二、源码分析 一、CH395Q驱动库移植 驱动库移植主要有两个途径,一个是南京沁恒官方网址,一个是通过正点原子官方,原子官方对沁横官方提供的驱动库进行了完善与修改。自用的话推荐…

1个 THM 和多台 BSP 的通讯(以邦纳 BSP 系列 PLC 为例)

一.架构和接线如下图所示 二、建立连接 选择 PLC 的驱动,多台连接请勾选“次连接” “次连接总数”就是要连接的 PLC 台数。 设置触摸屏通讯参数;同时确保每台 PLC 的通讯参数与该设定相同(但站号不能相同)。 三、…

HTML -- 常用标签

标签 表示HTML网页内容的一个最基本的组织单元,类似于语文中的标点符号, 标签的作用:告诉浏览器当前标签中的内容是什么,以什么格式在页面中进行呈现 单标签 单标签(只有一个标签名的标签)的标签格式&…

深入解剖指针篇(2)

目录 指针的使用 strlen的模拟实现 传值调用和传址调用 数组名的理解 使用指针访问数组 一维数组传参的本质 冒泡排序 个人主页(找往期文章):我要学编程(ಥ_ಥ)-CSDN博客 指针的使用 strlen的模拟实现 库函数strlen的功能是求字符串…

PySpark(二)RDD基础、RDD常见算子

目录 RDD RDD五大特性 RDD创建 RDD算子 常见的Transformation算子 map flatMap mapValues reduceByKey groupBy filter distinct union join intersection glom groupByKey groupByKey和reduceByKey的区别 ? sortBy sortByKey 常见的action算子 countByKey…

Python入门到精通(七)——Python文件操作

Python文件操作 一、文件的编码 二、文件的读取 1、操作汇总 2、model 常用的三种基础访问模式 三、文件的写入 四、文件的追加 五、综合案例 一、文件的编码 1、什么是编码? 编码就是一种规则集合,记录了内容和二进制间进行相互转换的逻辑。编…

Flink1.14新版KafkaSource和KafkaSink实践使用(自定义反序列化器、Topic选择器、序列化器、分区器)

前言 在官方文档的描述中,API FlinkKafkaConsumer和FlinkKafkaProducer将在后续版本陆续弃用、移除,所以在未来生产中有版本升级的情况下,新API KafkaSource和KafkaSink还是有必要学会使用的。下面介绍下基于新API的一些自定义类以及主程序的…

解析Excel文件内容,按每列首行元素名打印出某个字符串的统计占比(超详细)

1.示例: 开发需求:读取Excel文件,统计第3列到第5列中每列的"False"字段占比,统计第6列中的"Pass"字段占比,并按每列首行元素名打印出统计占比 1.1 实现代码1:列数为常量 请确保替换y…

测试access和trunk口的区别(华为)

思科设备参考:测试access和trunk口的区别(思科) 一,实验目的 实现同一 Vlan 内的主机互通,不同 Vlan 间的主机隔离。 二,配置前测试 PC1分别ping PC2、PC3、PC4都能通,因为四台PC默认同处于v…

一文掌握SpringBoot注解之@Configuration知识文集(2)

🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…

【JAVA】单例模式的线程安全性

🍎个人博客:个人主页 🏆个人专栏:JAVA ⛳️ 功不唐捐,玉汝于成 目录 正文 我的其他博客 正文 老生常谈的问题了,首先要说的是单例模式的线程安全意味着:某个类的实例在多线程环境 下只会被…

main函数中参数argc和argv用法解析

1 基础 argc 是 argument count 的缩写,表示传入main函数的参数个数; argv 是 argument vector 的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0]一定是程序的名称,并且包含了程序所在的完整路径&…

深度解读NVMe计算存储协议-2

近日,NVME协议组织为了解决这些性能问题并为供应商提供标准化机制,在其架构中集成优化的计算功能,开发了NVM Express (NVMe) 计算存储特性。 计算存储的核心特性包括两个命令集:计算程序集和子系统本地内存。 其中,计算…