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

🚀个人主页:为梦而生~ 关注我一起学习吧!
💡专栏:机器学习 欢迎订阅!相对完整的机器学习基础教学!
特别提醒:针对机器学习,特别开始专栏:机器学习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个全连接层

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

telnet笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、场景二、介绍1.测试端口2.访问百度3. 简单的爬虫 前言 最近telnet命令用的比较多,所以记录一下。 一、场景 ping应该是大家最常用的命令&…

unity角色触摸转向

1、挂载脚本到角色的父物体A上 2 、以屏幕左边的触摸为移动,右边为转向操作 3、加载角色时,将角色的父物体设置为A,须将角色的位置和角度置0 using System; using System.Collections; using System.Collections.Generic; using UnityEngin…

python之组合数据类型-字典dict

字典 字典的定义与特点操作字典创建字典字典的增删改查添加键值对删除键值对修改键值对访问元素 遍历字典 嵌套 字典的定义与特点 字典:字典是一系列键值对,是一种无序的数据集合,它是通过键来访问的,而不是索引 字典的特点&#…

【Go语言成长之路】安装Go

文章目录 安装Go一、下载Go语言安装包二、删除以前安装的Go版本三、添加/usr/local/go/bin到环境变量内四、确认安装成功 安装Go Note: 这里只演示安装Linux版本的Go,若为其它版本,请按照官网的安装教程进行安装即可。 一、下载Go语言安装包 ​ 在浏览…

Unity | Spine动画记录

https://blog.csdn.net/linshuhe1/article/details/79792432 https://blog.csdn.net/winds_tide/article/details/128925407 1.需要的三个文件 通常制作好的 Spine 动画导出时会有三个文件: .png 、.json 和 .atlas: skeleton-name.json 或 skeleton-…

Blender教程(基础)-面的法向-12

一、准备 新建如下图所示立方体演示面的法向 默认法向方向 二、显示法向 再菜单栏右上角、找到网络编辑模式,最下面的显示发法线打勾,如下图所示,出现的浅蓝色线条就是代表法向方向。 调整大小显示 三、正面 再显示叠加层菜单下找到面…

pytorch调用多个gpu训练,手动分配gpu以及指定gpu训练模型的流程以及示例

torch.device("cuda" if torch.cuda.is_available() else "cpu") 当使用上面的这个命令时,PyTorch 会检查系统是否有可用的 CUDA 支持的 GPU。如果有,它将选择默认的 GPU(通常是第一块,即 “cuda:0”&#xf…

win10重装Ubuntu22.04安装报错复盘

目录 一:补充启动盘制作 二:错误信息[0xC0030570] The file or directory is corrupted and unreadable. 三:ubuntu重装步骤: 四:磁盘冗余阵列 五:尝试将SCS11(2,0.0), 第1分区(sda)设备的一个vfat文…

获取指定进程中的数据

此文章是对《打印指定进程中的数据》的扩展&#xff0c;增加了用户空间的控制接口&#xff0c;可以实现从用户空间发送指令&#xff0c;指定要获取数据的进程id和内存地址&#xff0c;然后将取到的数据返回给用户空间。 下面是驱动部分的代码 #include <linux/module.h>…

2024年混合云:趋势和预测

混合云环境对于 DevOps 团队变得越来越重要&#xff0c;主要是因为它们能够弥合公共云资源的快速部署与私有云基础设施的安全和控制之间的差距。这种环境的混合为 DevOps 团队提供了灵活性和可扩展性&#xff0c;这对于大型企业中的持续集成和持续部署 (CI/CD) 至关重要。 在混…

react+ProComponents简单实现表格

文章目录 使用ProComponents的原因 一般后台管理系统&#xff0c;大部分页面功能都是列表和表单的形式。 即便使用了组件、等&#xff0c;依旧需要写大量高度重复性的代码&#xff0c;比如列表页通常会有 筛选栏、操作栏、表格区域、和分页栏四个部分&#xff0c; 新增/编辑页…

【JavaEE Spring】Spring事务和事务传播机制

Spring事务和事务传播机制 1. 事务回顾1.1 什么是事务?1.2 为什么需要事务?1.3 事务的操作 2. Spring 中事务的实现2.1 Spring编程式事务(了解)2.2 Spring声明式事务Transactional 3. Transactional 详解3.1 rollbackFor3.2 事务隔离级别3.2.1 MySQL事务隔离级别(回顾)3.2.2 …

avast网页随机密码生成器

随机密码生成器 | 告别 12345 | Avast 可以生成随机密码 按需调整

C++ 新特性 构造函数

1.委托构造函数 委托构造函数出现的意义: 委托构造初始化能够减少代码的冗余的问题 使代码变得简洁 明朗 现在大家来看一个例子: 本代码采用了普通函数的构造方法 看起来简洁一些 但是并没有从实际上解决问题 尤其是对于 复杂数据类型的存储 比如String类型 已经发生了默认的…

cherles抓包,安卓,http/https

前置条件&#xff1a;charles抓取手机数据包的前提&#xff0c;手机和电脑需要在一个局域网内。 1、charles官网下载地址 Download a Free Trial of Charles • Charles Web Debugging Proxy 下载以后按提示安装即可。 2、charles的配置 在charles中【proxy->proxy Set…

nba2k24 灌篮高手Q版流川枫面补

nba2k24 灌篮高手Q版流川枫面补 此面补nba2k23-nba2k24通用 下载地址&#xff1a; https://www.changyouzuhao.cn/9979.html

kubernetes基本概念和操作

基本概念和操作 1.Namespace1.1概述1.2应用示例 2.Pod2.1概述2.2语法及应用示例 3.Label3.1概述3.2语法及应用示例 4.Deployment4.1概述4.2语法及应用示例 5.Service5.1概述5.2语法及应用示例5.2.1创建集群内部可访问的Service5.2.2创建集群外部可访问的Service5.2.3删除服务5.…

【Go语言成长之路】创建Go模块

文章目录 创建Go模块一、包、模块、函数的关系二、创建模块2.1 创建目录2.2 跟踪包2.3 编写模块代码 三、其它模块调用函数3.1 修改hello.go代码3.2 修改go.mod文件3.3 运行程序 四、错误处理4.1 函数添加错误处理4.2 调用者获取函数返回值4.4 执行错误处理代码 五、单元测试5.…

R语言分析任务:

有需要实验报告的可CSDN 主页个人私信 《大数据统计分析软件&#xff08;R语言&#xff09;》 实 验 报 告 指导教师&#xff1a; 专 业&#xff1a; 班 级&#xff1a; 姓 名&#xff1a; 学 …

【Pg数据库】删除数据库失败,提示有session正在连接

目录 问题现象原因分析处理方法1.断开所有连接2. 查找相关连接数据库的主机信息3. 再次删除 总结 问题现象 Navicat 删除 PostgreSQL 数据库时失败&#xff0c;提示&#xff1a;正在被其他用户访问&#xff08;有session正在连接&#xff09;如何处理&#xff1f; 如下所示&am…