深度学习-卷积神经网络-纹理表示卷积神经网络-卷积神经网络-[北邮鲁鹏]

这里写目录标题

  • 参考文章
  • 全连接神经网络
    • 全连接神经网络的瓶颈
    • 全连接神经网络应用场景
  • 卷积神经网络
    • 卷积层(CONV)
      • 卷积核
      • 卷积操作
      • 卷积层设计
      • 卷积步长(stride)
      • 边界填充
      • 特征响应图组尺寸计算
    • 激活层
    • 池化层(POOL)
      • 池化操作定义
      • 池化操作作用
      • 池化层超参数
      • 常见池化操作
    • 全连接层(FC)
    • 样本增强
      • 翻转
      • 随机缩放& 抠图
      • 色彩抖动

参考文章

计算机视觉与深度学习-05-纹理表示&卷积神经网络-北邮鲁鹏老师课程笔记

全连接神经网络

在这里插入图片描述

全连接神经网络的瓶颈

参数过多易过拟合&显存压力大

如果图像大小为200 * 200 * 3,隐层每个神经元权值个数是多少?

对于输入层,则输入层神经元个数 d 为 120000,对于全连接神经网络,后一层的每个神经元都会与前一层的所有神经元相连,所以隐层每个神经元就有120000个权值,同时再加上自身的一个偏置值。

参数过多易过拟合&显存压力大

参数越多,计算量越大。

前向传播数据需要存入显存,参数越大,显存压力越大。

全连接神经网络应用场景

全连接神经网络仅适合参数少的情况,

  • 例如:处理小图像。
  • 或者前置输出已经表示为向量的场景,例如:接在卷积神经网络之后对cnn得到的特征(该处的特征可以类比纹理表示中的48维向量)进行处理。

卷积神经网络

可以将卷积神经网络类比为纹理表示例子中的卷积核组,最后得到表示特征响应图组的48维向量,之后接全连接神经网络进行分类(全连接神经网络适合处理小输入)。
在这里插入图片描述

卷积层(CONV)

卷积核

在这里插入图片描述

卷积操作

卷积结果还是一个实数
在这里插入图片描述
对图像所有位置进行卷积

在这里插入图片描述
特征响应图中每个位置上的值反映了图像上对应位置是否存在卷积核所记录的基元结构信息。

使用多个卷积核 得到多个特征响应图
在这里插入图片描述

卷积层设计

卷积核深度 = 前一层图像的深度(前层决定,不是自定义)
卷积核个数 = 自己自定义
特征图个数 = 卷积核个数
在这里插入图片描述
注意:卷积层输入不局限于图像,可以是任意三维数据;该层的卷积核深度要求与输入的三维矩阵的深度一致。

卷积步长(stride)

卷积神经网络中,卷积核可以按照指定的间隔进行卷积操作,这个间隔就是卷积步长

步长为1,卷积核每次移动1个位置
在这里插入图片描述

步长为2,卷积核每次移动2个位置

在这里插入图片描述
卷积步长对卷积结果的影响

输入数据矩阵尺寸:W1 x H1

输出数据矩阵尺寸:W2 x H2

W2与W1关系:

  • W 2 = W 1 − F S + 1 W2 = \tfrac{W1-F}{S} + 1 W2=SW1F+1
  • H 2 = H 1 − F S + 1 H2 = \tfrac{H1-F}{S} + 1 H2=SH1F+1

F 卷积核尺寸
S 卷积核步长

边界填充

卷积神经网络中最常用的填充方式是零值填充

没有填充
在这里插入图片描述
填充后
在这里插入图片描述
作用:保持输入、输出尺寸的一致!

填充对卷积结果的影响

输入数据矩阵尺寸:W1 x H1

输出数据矩阵尺寸:W2 x H2

W2与W1关系:

  • W 2 = W 2 − F + 2 P S + 1 W2 = \tfrac{W2-F+2P}{S} + 1 W2=SW2F+2P+1
  • H 2 = H 1 − F + 2 P S + 1 H2 = \tfrac{H1-F+2P}{S} + 1 H2=SH1F+2P+1

F 卷积核尺寸
S 卷积核步长
P 零填充数量

特征响应图组尺寸计算

在这里插入图片描述
卷积核尺寸,卷积步长,填充数量,以及卷积核数量最好经过周密的设计,到自己输出层时正好是自己需要的尺寸,最好不要中间出现除不尽的情况,如果出现除不尽的情况,就忽略几个像素。

激活层

池化层(POOL)

池化操作定义

对特征响应图某个区域进行池化就是在该区域上指定一个值来代表整个区域。

  • 池化操作对每个特征响应图独立进行。
  • 池化操作不改变特征图响应图个数。
    在这里插入图片描述

池化操作作用

每一个特征响应图独立进行,降低特征响应图组中每个特征响应图的宽度和高度,减少后续卷积层的参数的数量,降低计算资源耗费,进而控制过拟合。

卷积运算复杂度 O ( k m 2 n 2 ) O(km^{2}n^{2} ) O(km2n2),其中k为卷积核个数,m为卷积核边长,n为图像边长。

减少后续卷积层计算量

神经网络中为了反向计算梯度,需要在显存中保存前向计算结果。

如果卷积之后特征响应图和原图像的长宽相同,卷积核多的情况下,特征响应图组的层数增多,需要保存的数据就变多。可能超出显存存储能力范围。

池化操作可以减少特征响应图的长宽,达到减少计算量的效果。

缩小特征响应图像 & 增大感受野

卷积核的尺寸相对变大,粗粒度提取,使得卷积核在图像上的视野更广,即感受野更大,可以提取更多信息。

池化层超参数

池化窗口(pooling window)

池化窗口是指在进行池化操作时,对输入数据进行采样的窗口大小。通常,池化窗口是正方形的,其尺寸可以通过指定边长来定义。

例如,一个池化窗口大小为2x2的池化层将在输入数据中以2x2的窗口进行采样。

池化步长(pooling stride)

池化步长是指池化窗口在输入数据上滑动的步幅。它决定了池化操作的重叠程度和输出尺寸。

  • 如果池化步长为1,表示池化窗口每次滑动1个单位;
  • 如果池化步长大于1,表示窗口每次滑动的距离更大,因此输出的尺寸会相应减小。

常见池化操作

最大池化

使用区域内的最大值来代表这个区域。

在这里插入图片描述
此次最大池化操作后,特征响应图中的75%的响应信息都丢掉,但不改变特征响应图的个数。

类似于非最大化抑制操作,保留原图中对卷积核响应比较高的地方,其他地方舍弃。

平均池化

采用区域内所有值的均值作为代表。

在这里插入图片描述

全连接层(FC)

全连接层(Fully Connected Layer),也被称为密集连接层或全连接层,是神经网络中常见的一种层类型。全连接层的每个神经元都与前一层的所有神经元相连接。

在全连接层中,每个神经元接收来自前一层的所有输入,并通过使用权重和偏置进行线性变换,然后将变换后的结果输入到激活函数中进行非线性变换。这样,全连接层能够学习到输入数据中的复杂特征和关系。
在这里插入图片描述
全连接层通常用于神经网络的末尾,将前面的特征提取层与最终的输出层连接起来。
在这里插入图片描述

在图像分类任务中,经常在卷积层之后使用全连接层,将卷积层提取到的特征映射转换为一个或多个类别的概率输出。

样本增强

样本增强(Data Augmentation)是一种在机器学习和计算机视觉领域中常用的技术,旨在增加训练数据的多样性和数量,以改善模型的泛化能力和鲁棒性。通过对原始数据应用一系列的变换和扩展操作,可以生成与原始数据不同但具有相似特征的新样本。

样本增强的目的是通过引入数据的多样性来增强模型的鲁棒性,使其在不同的环境、角度、光照条件等下都能产生良好的预测结果。

在这里插入图片描述

翻转

翻转(Flipping)是样本增强中常用的一种技术,通过对图像进行水平或垂直方向的翻转操作来增加数据的多样性。
通过翻转操作,可以增加数据集的样本数量,并且不会改变图像的语义信息。这有助于减轻过拟合的问题,提高模型的泛化能力。

  • 水平翻转:水平翻转是指将图像沿着垂直中轴线进行翻转,即左右调换。这种操作可以模拟镜像效果,从而增加数据的多样性。例如,对于人脸识别任务,可以通过水平翻转来扩充训练数据,使模型能够更好地适应不同的人脸朝向。

  • 垂直翻转:垂直翻转是指将图像沿着水平中轴线进行翻转,即上下调换。这种操作也可以增加数据的多样性。例如,在某些图像分类任务中,垂直翻转可以模拟倒置的物体,使模型更具鲁棒性。
    在这里插入图片描述

需要注意的是,对于一些特定任务,如文本识别或者物体检测,翻转操作可能不适用,因为翻转后的图像可能会改变文本的方向或物体的位置。在应用翻转操作时,需要根据具体任务的需求进行判断和调整。

随机缩放& 抠图

  • 随机缩放:随机缩放是指对图像进行随机放大或缩小的操作。通过随机选择缩放比例或目标尺寸,可以改变图像的大小。这种操作可以模拟不同距离、不同视角下的图像变化,增加数据的多样性。在应用随机缩放时,可以保持图像的宽高比,或者在特定情况下进行非等比例缩放。

  • 抠图:抠图是指从原始图像中随机裁剪出一个子区域作为新的图像。通过随机选择裁剪位置和尺寸,可以改变图像的视野和内容。抠图操作可以模拟不同的视角、不同的目标尺寸和位置,增加数据的多样性。在应用抠图时,通常需要保证裁剪后的图像仍具有足够的信息来表示图像中的目标。
    在这里插入图片描述

这两种操作可以结合使用,例如先随机缩放图像,然后在缩放后的图像上进行随机抠图。这样可以进一步增加数据的多样性,提高模型的鲁棒性和泛化能力。

需要注意的是,在进行随机缩放和抠图时,应该保持数据的一致性和合理性。例如,在目标检测任务中,图像的缩放和抠图操作应该与目标的尺寸和位置相对应,以避免引入错误的标注信息。此外,也应该避免过度缩放或抠图导致关键信息丢失的情况发生。

色彩抖动

色彩抖动(Color Jittering)是样本增强中常用的一种技术,用于改变图像的颜色分布,增加数据多样性。通过对图像的颜色通道进行随机的扰动,可以引入一定程度的颜色变化,从而增强模型的鲁棒性。

在这里插入图片描述
在色彩抖动中,常用的颜色通道操作包括亮度调整、对比度调整、饱和度调整和色相调整。这些操作可以单独应用,也可以组合使用。具体的操作方式如下:

  • 亮度调整(Brightness Adjustment):通过增加或减小图像的亮度值,改变图像的明暗程度。

  • 对比度调整(Contrast Adjustment):通过增加或减小图像的对比度,改变图像中不同区域的亮度差异。

  • 饱和度调整(Saturation Adjustment):通过增加或减小图像的饱和度,改变图像的色彩鲜艳程度。

  • 色相调整(Hue Adjustment):通过旋转图像的色相角度,改变图像中的颜色。

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

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

相关文章

重建与发展:数字资产借贷行业朝着可持续发展迈进!

纵观历史,贷款和货币一样古老,无论哪种形式的货币都需要有其借贷市场。现在,比特币以其分散和透明的性质,在加密领域占据龙头地位。 就像之前的货币一样,比特币要真正蓬勃发展,也需要一个强大的借贷市场。然…

如何在Windows 10/11中重置网络,以及重置后的注意事项有哪些

本文介绍如何在Windows 10和Windows 11中重置网络设置。 如何重置Windows 10网络设置 在Windows10中使用网络重置实用程序相当简单。 一、进入“开始”菜单>“设置”,然后选择“网络和Internet”。 二、在左侧导航窗格中,选择“状态”以确保你正在查看网络状态窗口。然…

嵌入式入门教学——模电基础概念

目录 1、模拟信号和模拟电路 2、研究领域 3、常用术语 3.1、共价键 3.2、电场 3.3、温度的电压当量 3.4、动态信号 3.5、直流电流和交流电流 3.6、内阻 3.7、信号频率 3.8、电容 3.9、电感 3.10、相位 3.11、信号失真 3.12、电导 3.13、跨导 3.14、电位 3.15…

数据结构——图(图的存储及基本操作)

文章目录 前言一、邻接矩阵法(顺序存储)1.无向图存储邻接矩阵算法2.有向图存储邻接矩阵算法 二、邻接表法(图的链式存储结构)总结 前言 邻接矩阵法(图的顺序存储结构) 1.1 无向图邻接矩阵算法 1.2 有向图邻接矩阵算法邻接表法(图的一种链式存储结构) 一…

Unity WebView 中文输入支持

WebView 中文输入支持 🥪效果展示🍱原理 🥪效果展示 💡使用版本为4.4; 💡测试环境:unity editor 2022.3.15f1c1、Windows; 🍱原理 提取页面激活的输入框,…

github上创建分支并合并到master

github上创建分支并合并到master 目录概述需求: 设计思路实现思路分析1.创建分支2.commit changes3.create pull request按钮4.网页解析器5.数据处理器 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,ful…

多线程|多进程|高并发网络编程

一.多进程并发服务器 多进程并发服务器是一种经典的服务器架构,它通过创建多个子进程来处理客户端连接,从而实现并发处理多个客户端请求的能力。 概念: 服务器启动时,创建主进程,并绑定监听端口。当有客户端连接请求…

LLM 04-大模型的数据

LLM 03-大模型的数据 到目前为止,我们已经讨论了大型语言模型的行为(能力和损害)。现在,我们要剥开洋葱的第一层,开始讨论这些模型是如何构建的。任何机器学习方法的起点都是训练数据,因此这就是我们开始的…

【深度学习】 Python 和 NumPy 系列教程(十三):Matplotlib详解:1、2d绘图(上):折线图、散点图、柱状图、直方图、饼图

目录 一、前言 二、实验环境 三、Matplotlib详解 0、绘图风格 1、2d绘图类型 0. 设置中文字体 1. 折线图(Line Plot) 2. 散点图(Scatter Plot) 3. 柱状图(Bar Plot) 4. 直方图(Histogr…

【JavaSE笔记】方法

一、前言 Java中的方法是一种在Java编程中非常常见的概念。 我们可以将方法看作是一种可重复使用的代码块,类似于生活中的工具。就像我们在日常生活中会使用各种各样的工具来完成不同的任务一样,我们在编程中也可以使用方法来完成各种不同的操作。 二…

Flex布局详解

目录 一、Flex 布局是什么? 二、基本概念 三、容器的属性 3.1 flex-direction属性 3.2 flex-wrap属性 3.3 flex-flow 3.4 justify-content属性 3.5 align-items属性 3.6 align-content属性 四、项目的属性 4.1 order属性 4.2 flex-grow属性 4.3 flex-s…

c++11的一些新特性

c11 1. {}初始化2. 范围for循环3. final与override4. 右值引用4.1 左值引用和右值引用4.2 左值引用与右值引用比较 5. lambda表达式6. 声明6.1 auto6.2 decltype6.3 nullptr 7. 可变参数模版 1. {}初始化 在C中,使用花括号初始化的方式被称为列表初始化。列表初始化…

让NPU跑起来迅为RK3588开发板设置交叉编译器

让NPU跑起来迅为RK3588开发板设置交叉编译器 编译器下载地址是网盘资料“iTOP-3588 开发板\02_【iTOP-RK3588 开发板】开发资料 \12_NPU 使用配套资料\03_编译所需工具\Linux”。 拷贝 gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu.tar.gz 到 Ubuntu 的/opt/tool_ch…

记录crack某IDE插件过程

声明:本文仅记录学习过程,已对关键位置脱敏处理,未提供任何工具,请支持正版。 反编译jar包 使用cfr进行对插件核心jar包MyBxxxxxx-obfuss.jar进行反编译,在本地生成a.txt。 java -jar cfr-0.152.jar MyBxxxx-obfuss.…

外包干了2个月,技术退步明显。。。。。

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

MATLAB入门-字符串操作

MATLAB入门-字符串操作 注:本篇文章是学习笔记,课程链接是:link MATLAB中的字符串特性: 无论是字符还是字符串,都要使用单引号来‘’表示;在MATLAB中,字符都是在矩阵中存储的,无论…

【GO语言基础】变量常量

系列文章目录 【Go语言学习】ide安装与配置 【GO语言基础】前言 【GO语言基础】变量常量 【GO语言基础】数据类型 文章目录 系列文章目录常量和枚举变量声明全局变量声明大小写敏感 总结 常量和枚举 使用const关键字声明常量,并为每个常量提供显式的值。Go语言没有…

算法训练营day48|动态规划 part09:打家劫舍(LeetCode 198.打家劫舍、213.打家劫舍II、337.打家劫舍 III)

文章目录 198.打家劫舍思路分析代码实现思考总结 213.打家劫舍II思路分析代码实现 337.打家劫舍 III (树形DP)思路分析代码实现思考总结 198.打家劫舍 题目链接🔥🔥 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金&#…

二维码智慧门牌管理系统:数据现势性,满足应用需求的根本保证

文章目录 前言一、项目背景二、数据的现势性三、系统的优势四、应用前景 前言 在当今信息化社会,数据的重要性日益凸显,尤其是数据的现势性,它决定着服务的质量和满足应用需求的能力。近日,一个创新的二维码智慧门牌管理系统项目…

033:跨域,vue端和 Nignx反向代理的配置详细解析

第033个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。 (1)提供vue2的一些基本操作:安装、引用,模板使…