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

这里写目录标题

  • 参考文章
  • 全连接神经网络
    • 全连接神经网络的瓶颈
    • 全连接神经网络应用场景
  • 卷积神经网络
    • 卷积层(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.mzph.cn/news/80046.shtml

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

相关文章

【看好了】如何使用fiddler实现手机抓包,Filters过滤器!

一、Fiddler与其他抓包工具的区别  1、Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存&#xff…

文安县人社局 举办“情暖灾区 就业护航”直播带岗活动

关于防汛救灾工作重要指示精神,助力受灾企业尽快复工复产、受灾群众尽早实现就业。9月15日,文安县人力资源和社会保障局联合文安县总工会、国家税务总局文安县税务局共同举办文安县助力企业灾后重建“直播带岗”活动。 本次活动以“情暖灾区 就业护航”…

IDEA中DEBUG技巧

Debug 介绍 Debug 设置 如上图标注 1 所示,表示设置 Debug 连接方式,默认是 Socket。Shared memory 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,相对于 Socket 会快点。 ## Debug 常用快捷键 Win 快捷键M…

分享一个Python 写的监控日志log txt文档 的代码

监控log文件的需求 某些特殊原因,想一直看到.log 的最后一行打印,所以写了一些代码监控log (有个奇怪需求,就是log 因为重复启动原因,会一直加,不是同一个log) 监控界面 涉及的Python代码&…

Unity SteamVR 开发教程:用摇杆/触摸板控制人物持续移动(2.x 以上版本)

文章目录 📕教程说明📕场景搭建📕创建移动的动作📕移动脚本⭐移动⭐实时调整 CharacterController 的高度 📕取消手部和 CharacterController 的碰撞 持续移动是 VR 开发中的一个常用功能。一般是用户推动手柄摇杆&…

CNN(八):Inception V1算法实战与解析

🍨 本文为🔗365天深度学习训练营 中的学习记录博客 🍖 原作者:K同学啊|接辅导、项目定制 1 Inception V1 Inception v1论文 1.1 理论知识 GoogLeNet首次出现在2014年ILSVRC比赛中获得冠军。这次的版本通常称其为Inception V1。…

strncpy

strncpy: 函数介绍: 函数原型: char *strncpy(char *dest, const char *src, int n) 返回值:dest字符串起始地址 说明: 1、当src字符串长度小于n时,则拷贝完字符串后,剩余部分将用空字节填…

建站系列(八)--- 本地开发环境搭建(WNMP)

目录 相关系列文章前言一、准备工作二、Nginx安装三、MySQL安装四、PHP安装及Nginx配置五、总结 相关系列文章 建站系列(一)— 网站基本常识 建站系列(二)— 域名、IP地址、URL、端口详解 建站系列(三)— …

【设计模式】二、UML 类图概述

文章目录 常见含义含义依赖关系(Dependence)泛化关系(Generalization)实现关系(Implementation)关联关系(Association)聚合关系(Aggregation)组合关系&#x…

【JavaScript保姆级教程】输出函数和初识变量

文章目录 前言一、输出内容1.1 document.write()函数1.2 console.log()函数查看终端输出信息 1.3 alert()函数 二、变量的使用1.1 变量的声明1.3变量的赋值1.4 变量的声明和赋值 三、输入提示框的使用总结 前言 JavaScript是一种强大的脚本语言,广泛应用于网页开发…

文件批量重命名:自定义命名与扩展名更改

你是否曾经需要批量更改文件名称和类型?如果你有大量文件需要重命名和更改类型,那么今天我们将向你介绍一种简单的方法来轻松批量更改文件名称和类型。无论你是需要将一个文件夹中的所有图片改为另一种格式,还是需要将一个文件夹中的所有文档…

【基于多输出方向的同步异步日志系统】

本项目涉及的到所有源码见以下链接: https://gitee.com/ace-zhe/wz_log 一、项目简介 1.日志的概念(白话版) 日志类似于日记,通常是指对完成某件事情的过程中状态等的记录,而计算机中的日志是指日志数据&#xff0c…

轻松学习 Spring 事务

文章目录 一. Spring事务简介二. Spring事务使用1. 编程式事务2. 声明式事务 三. Transactional的使用1. 参数作用2. 事务失效的场景3. Transactional工作原理 四. Spring 事务的隔离级别五. Spring事务传播机制 一. Spring事务简介 在之前的博客已经介绍了在 Spring 环境中整…

结构体变量的初始化和引用

任务描述 本关任务:从键盘输入两个学生的学号,姓名和成绩(整数),分别存入结构体中,输出成绩较高的学生的学号,姓名和成绩。 相关知识 结构体类型用于描述由多个不同数据类型的数据构成的复合…

浅析安防监控系统/AI视频智能分析算法:河道水文水位超标算法应用

传统的水位水尺刻度尺位监测中,所采用的人工读数方式,效率较为低下且 人工成本较高,不利于作业流程的数字化。尽管感应器检测会自动对水位的模拟输入进行筛选,但是由于成本、使用场景要求高、后续日常维护复杂等多种因素&#xff…

Pytorch实现图像语义分割(初体验)

Pytorch实现图像语义分割(初体验) 这些天在学习图像语义分割相关的知识,并简单写了篇概述。原本想先看几篇经典论文,如全卷积网络FCN,奈何英语水平有限,翻译起来实在费劲。想来不如先直接体验一下语义分割…

vscode c++解决包含头文件红色波浪线问题

安装c/c插件后,按ctrlshiftp, 点击打开了c_cpp_properties.json文件,对其中的IncludePath进行编辑,示例如下: "includePath": ["${workspaceFolder}/**","${workspaceFolder}/include/**&q…

Gin 打包vue或react项目输出文件到程序二进制文件

Gin 打包vue或react项目输出文件到程序二进制文件 背景解决方案1. 示例目录结构2. 有如下问题要解决:3. 方案探索 效果 背景 前后端分离已成为行业主流,vue或react等项目生成的文件独立在一个单独目录,与后端项目无关。 实际部署中,通常前面套…

JDK9特性——模块化REPL工具

文章目录 前言模块化模块化案例 可交互的REPL工具 前言 谈到Java9大家往往第一个想到的就是Jigsaw项目(后改名为Modularity)。众所周知,Java已经发展超过20年(95年最初发布),Java和相关生态在不断丰富的同时也越来越暴露出一些问…

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

目录 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…