Python 全栈体系【四阶】(十八)

第五章 深度学习

请添加图片描述

一、基本理论

4. 神经网络的改进

4.1 神经网络的局限

全连接神经网络的局限(一)

  • 未考虑数据的“形状”,会破坏数据空间结构。例如,输入数据是图像时,图像通常是高长通道方向上的 3 维形状。但是,向全连接层输入时,需要将 3 维数据拉平为 1 维数据
    请添加图片描述

全连接神经网络的局限(二)

  • 全连接网络参数量庞大,需要降低参数量
    请添加图片描述

全连接神经网络的局限(三)

  • 全连接网络层次深度受限,一般不超过七层,过深会导致梯度消失(梯度过小)或梯度爆炸(梯度过大),模型性能无法进一步提升。神经网络由输入、权重相乘得到,如果输入 X 进行了归一化(0~1)之间,会导致越乘越小(梯度消失);如果 X 不做归一化,会导致值越乘越大
    请添加图片描述

如何克服全连接模型的局限

  • 增加卷积操作,卷积操作不需要变维成向量,不破坏图像空间结构
  • 增加卷积、池化操作,提取特征同时,对数据降维
  • 增加其它策略解决梯度消失问题
4.2 卷积神经网络
4.2.1 什么是卷积

“卷积”其实是一个数学概念,它描述一个函数和另一个函数在某个维度上的加权“叠加”作用。函数定义如下:
在这里插入图片描述
其中,函数 f 和函数 g 是卷积对象,a 为积分变量,星号“*”表示卷积。公式所示的操作,被称为连续域上的卷积操作。这种操作通常也被简记为如下公式:
在这里插入图片描述

4.2.2 离散卷积与多维卷积

一般情况下,我们并不需要记录任意时刻的数据,而是以一定的时间间隔(也即频率)进行采样即可。对于离散信号,卷积操作可用如下表示:
在这里插入图片描述
当然,对于离散卷积的定义可推广到更高维度的空间上。例如,二维的公式可表示为公式:
在这里插入图片描述

4.2.3 生活中的卷积

在一根铁丝某处不停地弯曲,假设发热函数是 f(t),散热函数是 g(t),此时此刻的温度就是 f(t) 跟 g(t) 的卷积。

在一个特定环境下,发声体的声源函数是 f(t),该环境下对声源的反射效应函数是 g(t),那么在这个环境下感受到的声音就是 f(t) 的和 g(t) 的卷积。

记忆也是一种卷积。

在这里插入图片描述

4.2.4 什么是卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)针对全连接网络的局限做出了修正,加入了卷积层(Convolution 层)和池化层(Pooling 层)。

4.2.5 卷积神经网络的用途

CNN 被广泛应用于图像识别、语音识别等各种场合,在图像识别的比赛中,基于深度学习的方法几乎都以 CNN 为基础(比如,AlexNet、VGGNet、Google Inception Net 及微软的 ResNet 等)上。近几年深度学习大放异彩,CNN 功不可没。

4.2.6 卷积运算

单通道、二维卷积运算示例
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
单通道、二维、带偏置的卷积运算示例
请添加图片描述
带填充(padding)的单通道、二维卷积运算示例
请添加图片描述
步幅(stride)为 2 的卷积运算示例
请添加图片描述
卷积运算输出矩阵大小计算公式
请添加图片描述

  • 其中,输入大小为(H, W),滤波器大小为(FH, FW),输出大小为(OH, OW),填充为 P,步幅为 S。例如:输入大小(28,31);填充 2;步幅 3;滤波器大小(5,5),则输出矩阵大小为:

请添加图片描述
多通道、多卷积核卷积

  • 每个通道先与第一组卷积核执行卷积,然后多通道结果叠加,产生一个输出
  • 每个通道与下一组卷积核执行卷积,产生另一个输出
  • 有多少组卷积核,就有多少个通道输出(如下图,两组卷积核,产生两个通道的输出数据)

在这里插入图片描述

4.2.7 卷积运算的效果

通过卷积运算,能对输入数据起到加强或平滑效果。在图像处理中,通过选取合适的卷积核(或称算子),可以对图像进行锐化、去噪、模糊、加强边沿。
请添加图片描述
卷积运算能提取深层次复杂特征。
请添加图片描述
请添加图片描述

4.2.8 案例:图像卷积运算

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

4.2.9 卷积神经网络结构

总体结构

  • 通常情况下,卷积神经网络由若干个卷积层(Convolutional Layer)、激活层(Activation Layer)、池化层(Pooling Layer)及全连接层(Fully Connected Layer)组成。
    请添加图片描述

卷积层

  • 它是卷积神经网络的核心所在,通过卷积运算,达到降维处理和提取特征两个重要目的
    在这里插入图片描述

激活层

  • 其作用在于将前一层的线性输出,通过非线性的激活函数进行处理,这样用以模拟任意函数,从而增强网络的表征能力。前面章节中介绍的激活函数,如挤压函数 Sigmoid 也是可用的,但效果并不好。在深度学习领域,ReLU(Rectified-Linear Unit,修正线性单元)是目前使用较多的激活函数,主要原因是它收敛更快,次要原因在于它部分解决了梯度消失问题。

池化层(Pooling Layer)

  • 也称子采样层或下采样层(Subsampling Layer),目的是缩小高、长方向上的空间的运算,以降低计算量,提高泛化能力。如下的示例,将 4*4 的矩阵缩小成 2*2 的矩阵输出。
    请添加图片描述

池化层计算

  • 对于每个输入矩阵,我们将其切割成若干大小相等的正方形小块,对每一个区块取最大值或者平均值,并将结果组成一个新的矩阵
  • Max 池化:对各个参与池化计算的区域取最大值,形成的新矩阵。在图像识别领域,主要使用 Max 池化
  • Average 池化:对各个参与池化计算的区域计算平均值

池化层的特征

  • 没有要学习的参数。池化层和卷积层不同,没有要学习的参数。池化只是从目标区域中取最大值(或者平均值),所以不存在要学习的参数。

  • 通道数不发生变化。经过池化运算,输入数据和输出数据的通道数不会发生变化。

  • 对微小的位置变化具有鲁棒性(健壮)。输入数据发生微小偏差时,池化仍会返回相同的结果。

全连接层

  • 这个网络层相当于多层感知机(Multi-Layer Perceptron,简称 MLP),其在整个卷积神经网络中起到分类器的作用
  • 通过前面多个“卷积-激活-池化”层的反复处理,待处理的数据特性已有了显著提高:一方面,输入数据的维度已下降到可用传统的前馈全连接网络来处理了;另一方面,此时的全连接层输入的数据已不再是“泥沙俱下、鱼龙混杂”,而是经过反复提纯过的结果,因此输出的分类品质要高得多。
4.2.10 经典 CNN 介绍(LeNet)

结构

  • LeNet 是 Yann LeCun 在 1998 年提出,用于解决手写数字识别的视觉任务。自那时起,CNN 的最基本的架构就定下来了:卷积层、池化层、全连接层。
    在这里插入图片描述

主要参数

  • 输入:输入 32*32 大小单通道图像
  • 两个“卷积-池化层”
  • 第一个全连接层神经元数目为 500,再接激活函数
  • 第三个全连接层神经元数目为 10,得到 10 维的特征向量,用于 10 个数字的分类训练,送入 softmaxt 分类,得到分类结果的概率
4.2.11 经典 CNN 介绍(AlexNet)

AlexNet 是 2012 年 ImageNet 竞赛冠军获得者 Hinton 和他的学生 Alex Krizhevsky 设计的,把 CNN 的基本原理应用到了很深很宽的网络中。其特点有:

  • 使用 ReLU 作为激活函数,并验证其效果在较深的网络超过了 Sigmoid,成功解决了 Sigmoid 在网络较深时的梯度弥散问题
  • 使用 Dropout(丢弃学习)随机忽略一部分神经元防止过拟合
  • 在 CNN 中使用重叠的最大池化。此前 CNN 中普遍使用平均池化,AlexNet 全部使用最大池化,避免平均池化的模糊化效果
  • 提出了 LRN(Local Response Normalization,局部正规化)层,对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力
  • 使用 CUDA 加速深度卷积网络的训练,利用 GPU 强大的并行计算能力,处理神经网络训练时大量的矩阵运算

网络结构

在这里插入图片描述
主要参数

  • AlexNet 网络包含 8 层,其中前 5 层为卷积-池化层,后 3 层为全连接层;输入 224×224×3 的图像,第一卷积层用 96 个 11×11×3 的卷积核对进行滤波,步幅 4 像素;全连接的每层有 4096 个神经元,最后一个完全连接的层的输出被馈送到 1000 路 SoftMax,它产生超过 1000 个类别标签的分布;整个网络共 650000 个神经元。

  • 参考论文:http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf

4.2.12 经典 CNN 介绍(VGG)

概要介绍

  • VGG 是 Visual Geometry Group, Department of Engineering Science, University of Oxford(牛津大学工程科学系视觉几何组)的缩写,2014 年参加 ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 2014 大赛获得亚军(当年冠军为 GoogLeNet,但因为 VGG 结构简单,应用性强,所以很多技术人员都喜欢使用基于 VGG 的网络)

主要参数

  • 网络深度:16~19 层
  • 5 组卷积-池化层,3 个全连接层
  • 三个全连接层,前两层都有 4096 通道,第三层共 1000 路及代表 1000 个标签
    • 类别;最后一层为 softmax 层
  • 所有卷积层有相同的配置,即卷积核大小为 3x3,步长为 1,填充为 1
  • 池化层区域大小 2x2,步长为 2

模型结构

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

4.2.13 经典 CNN 介绍(GoogLeNet)

GoogLeNet 包含大量 Inception 并行卷积结构
在这里插入图片描述

  • 请参考论文:https://arxiv.org/pdf/1409.4842.pdf
4.2.14 经典 CNN 介绍(ResNet)

介绍

  • ResNet 是 ILSVRC 2015 大赛冠军,在 ImageNet 测试集上取得了 3.57%的错误率
  • 更深的网络结构,采用残差结构来缓解深度 CNN 的梯度消失问题
    在这里插入图片描述

结构

在这里插入图片描述

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

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

相关文章

基于springboot+vue实现的房源出租信息系统

作者主页:Java码库 主营内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】:Java 【框架】:spring…

Java学习之类和对象、内存底层

目录 表格结构和类结构 表格的动作和类的方法 与面向过程的区别 具体实现 对象和类的详解 类的定义 属性(field 成员变量) 方法 示例--编写简单的学生类 简单内存分析(理解面向对象) 构造方法(构造器 constructor) 声明格式: 四…

深入探究Shrio反序列化漏洞

Shrio反序列化漏洞 什么是shrio反序列化漏洞环境搭建漏洞判断rememberMe解密流程代码分析第一层解密第二层解密2.1层解密2.2层解密 exp 什么是shrio反序列化漏洞 Shiro是Apache的一个强大且易用的Java安全框架,用于执行身份验证、授权、密码和会话管理。使用 Shiro 易于理解的…

FittenChat:程序员写代码的最好辅助利器,没有之一

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师,大模型,爬虫、ACM算法 💒 公众号&#xff…

如何评估基于指令微调的视觉语言模型的各项能力-MMBench论文解读

1. 传统基准的固有局限 VQAv2:视觉问题回答数据集,主要用于评估视觉理解与推理能力。COCO Caption:图像描述生成数据集,用于评估模型对图像内容的理解与描述能力。GQA:结合常识的视觉问题回答数据集。OK-VQA:需要外部知识的视觉问题回答数据集。TextVQA:图像中包含文本的…

Linux系统网络的实时性评估

目录 1.使用 cyclictest 测试系统实时性2.测试系统通信实时性2.1 PingPlotter2.2 使用 ping 测试通讯实时性 3. 使用 iperf 测试带宽4.网络性能测试 1.使用 cyclictest 测试系统实时性 安装cyclictest sudo apt-get update sudo apt-get install rt-testscyclictest -p 99 -i…

TS学习01 基本类型、编译选项、打包ts代码

TS学习 TypeScript00 概念01 开发环境搭建02 基本类型基本使用⭐类型 03 编译选项tsconfig.jsoncompilerOptions语法检查相关 04 webpack打包ts代码错误解决 05 babel TypeScript BV1Xy4y1v7S2学习笔记 00 概念 以 JavaScript 为基础构建的语言 一个 JavaScript 的超集 Type…

如何使用KST指标进行多头交易,Anzo Capital一个条件设置

在之前的文章中,我们进行分享了以下知识:什么是KST指标,以及如何进行计算KST指标。有聪明的投资者就在后台进行咨询Anzo Capital昂首资本了,我们知道这些知识有什么用呢? 当然有用了,只要理解背后的逻辑知…

三层架构实验--对抗遗忘

交换配置顺序: channel vlan Trunk stp svi vrrp dhcp 绑定channel [sw1]interface e [sw1]interface Eth-Trunk 0 [sw1-Eth-Trunk0]int g 0/0/22 [sw1-GigabitEthernet0/0/22]eth-trunk 0 [sw1-GigabitEthernet0/0/23]eth-trunk 0 [sw2]interface Eth…

【语言信号增强算法研究-1】维纳滤波(Wiener Filter)

1 语音增强方法分类 2 维纳滤波的局限性 对于非线性和非高斯噪声的处理效果不佳; 对于信号和噪声的统计特性要求比较高,需要准确地了解信号和噪声的分布规律(说明自适应很差); 在处理复杂信号时,需要进行多…

副业赚钱攻略:给工资低的你6个实用建议,闷声致富不是梦

经常有朋友向我咨询,哪些副业比较靠谱且能赚钱。实际上,对于大多数打工族而言,副业不仅是增加收入的途径,更是利用业余时间提升自我、实现价值的重要方式。 鉴于此,今天我想和大家分享六个值得尝试的副业,…

sql注入---Union注入

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 学习目标 了解union注入过程中用到的关键数据库,数据表,数据列sql查询中group_concat的作用使用union注入拿到靶机中数据库里的所有用户名和密码 一. 获得数据库表名和列…

CDN流量清洗

CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率,因此CDN也用到了负载均衡技术。…

57、FreeRTOS/串口通信和DMA ADC PWM相关20240401

一、使用PWMADC光敏电阻完成光控灯的实验。(根据测得的光敏电阻大小,控制灯的亮度) 代码: /* USER CODE BEGIN 2 */HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_3);//打开定时器的PWM通道3HAL_TIM_PWM_Start(&htim3,TIM_CHANN…

如何写好面向新人的开发文档

前言 大家在进入公司的时候,或多或少会接触到公司或者来自前辈的文档。文档水平层次不齐,好的事无巨细,层次清晰,拉跨的可能就像正确的废话,正确的说了正确的话。文档形式也是多种多样,word、markdown、云…

【学习笔记】java项目—苍穹外卖day06

文章目录 苍穹外卖-day06课程内容1. HttpClient1.1 介绍1.2 入门案例1.2.1 GET方式请求1.2.2 POST方式请求 2. 微信小程序开发2.1 介绍2.2 准备工作2.3 入门案例2.3.1 小程序目录结构2.3.2 编写和编译小程序2.3.3 发布小程序 3. 微信登录3.1 导入小程序代码3.2 微信登录流程3.3…

详解ExecutorService 和 Executors

代码示例: ExecutorService 表⽰⼀个线程池实例. Executors 是⼀个⼯⼚类, 能够创建出⼏种不同⻛格的线程池. ExecutorService 的 submit ⽅法能够向线程池中提交若⼲个任务. ExecutorService pool Executors.newFixedThreadPool(10);pool.submit(new Runnable() {Overri…

算法系列--递归,回溯,剪枝的综合应用(1)

💕"对相爱的人来说,对方的心意,才是最好的房子。"💕 作者:Lvzi 文章主要内容:算法系列–递归,回溯,剪枝的综合应用(1) 大家好,今天为大家带来的是算法系列--递归,回溯,剪枝的综合应用(1) 1.全排…

Multisim14.2仿真参数的修改

本内容讲述Multisim14.2仿真参数的修改,以放大倍数修改为例说明。紫色文字是超链接,点击自动跳转至相关博文。持续更新,原创不易! 目录: 1、三极管放大倍数的修改 2、Uc的电压计算 1、三极管放大倍数的修改 在仿真…

2024第16届成都实验室装备展6月1日举办

2024第16届成都实验室装备展6月1日举办 邀请函 主办单位: 中国西部教体融合博览会组委会 承办单位:重庆港华展览有限公司 博览会主题:责任教育 科教兴邦 展会背景 现代高新技术与基础科学实验研究对科学仪器的先进性、稳定性、性价比等…