深度学习笔记(二)

2023-05-16

计算机视觉:

人类肉眼识别的错误率大概在5%。到2016年的时候,计算机视觉中,用深度学习网络达到的错误率已经远低于人类。

卷积神经网络(CNN)

 1.应用领域

 神经网络和卷积神经网络都是用来做特征提取的。传统神经网络在特征提取上有一些问题:第一点,权重参数矩阵特别大;第二点,过拟合风险比较高。卷积神经网络一定程度上就是要解决这些问题。

超分辨率重构:怎么样重构一张图像,怎么样把一张图片做得更清晰一些?通过训练一个网络达到这些效果。

 对人脸做重构、对人脸进行一些分析、关键点的提取、特征提取,然后去分析、判断这个人是不是一个人,或者判断这个人是谁。 

2、卷积网络与传统网络的区别

卷积神经网络整体架构:

卷积层是提取特征,池化层是压缩特征。

 对于一张猫的输入图像,在提取特征时,边界的特征和猫的嘴巴、眼睛的特征是不一样的,把一张图像分成很多部分,对于不同的区域需要提取不同的特征,有的特征重要,有的特征不重要(比如边界特征、背景),需要区别进行处理。

在做卷积的过程中,需要先把图像进行分割,分割为很多小区域,每个小区域是由多个像素点组成的,对每个小区域进行特征提取。接下来,选择一种计算方法,对于每个小区域计算特征值。

3.卷积特征值计算方法

 实际的计算当中,要每个颜色通道分别去做计算,最终再把每个通道卷积完的结果加在一起。

 找到一个立体的区域,对每个区域进行特征提取,得到最终的一个特征值。

 R、G、B的维度都是7x7x1,合在一起是7x7x3的输入。然后分区域对当前的输入进行特征提取。

Filter w0表示先随机化初始一组权重参数。同一个输入数据中不同的部分,它在不同的颜色通道当中像素点值是不一样的。输入数据的通道数c是多少,则Filter中的第三个维度就必须跟它一致。Filter w0中的h*w是卷积核,它的大小代表着在原始输入数据中每多大(比如3*3)的小区域选出来一个特征,对应一个特征值。

所有的卷积网络当中都是用内积做计算的,即对应位置相乘后,所有结果加在一起,最后再加上偏置项。例如上图中所示区域:

R通道的值:0x1+0x1+0x1+0x(-1)+1x(-1)+1x0+0x(-1)+1x1+1x0=0

G通道的值:0x(-1)+0x(-1)+0x1+0x(-1)+0x1+1x0+0x(-1)+2x1+2x0=2

B通道的值:0x1+0x0+0x(-1)+0x0+2x0+2x0+0x1+0x(-1)+0x(-1)=0

w0得到的特征提取的值:(0+2+0)+1(偏置项)=3,对应的就是图中绿色框中的3

 第一步,先粗粒度的提取一些大致的特征;

第二步,再细粒度的提取一些中间特征;

最后,再提取一些组合成的高级特征。

这说明输入一张图像数据后,做一次卷积是不够的,需要进行多次特征提取。通过多次卷积提取出来的特征,才认为是比较好的。卷积层中可以无限制的往下堆叠。

 4.卷积层涉及参数 

 (1)步长

能移动的单元格越多,得到特征值越多,特征图也就越大。

 当步长比较小的时候,相当于慢慢地细粒度地去提取特征,这样得到的特征是比较丰富的;当步长比较大的时候,得到的特征是比较少的。实际步长大小的设置是跟具体任务相关的,一般对于图像任务来说,选择步长为1。当然步长为1时,得到的特征比较多,计算的效率也就比较慢。

(2)卷积核尺寸

卷积核越小,也是相当于越细粒度的去提取特征;卷积核越大,提取的特征也就越少。一般情况下,最小的卷积核是3x3。

(3)边缘填充

在卷积计算过程中,越往边界的点,能够计算到的次数越少;越往中间的点,能够计算到的次数越多。为了解决这个问题,在边界点外面加上一圈0,使边界点远离边界,一定程度上能弥补边界信息缺失、边界特征利用不充分的问题。加0而不是加其他数据的原因是,如果添加其他数据,比如1,则在计算过程中会对最终结果产生影响;而加0则只会起到一个数据扩充作用,不会影响最终结果。我们将其叫做zero pading——以0为值进行边界填充。可以按照自己的需求添加多圈0。

(4)卷积核个数

也就是在计算的过程中,最终要得到多少个特征图。比如要得到10个特征图,卷积核的个数就定为10;要得到20个特征图,卷积核的个数就为20。

5.卷积计算公式

假设卷积核的大小是3x4,则F_{H}等于3,F_{W}等于4.

6.卷积参数共享

 

        卷积神经网络的一个优点就是卷积参数共享。用同样一组卷积核对图像中每一个小区域进行特征提取,在进行特征提取时,卷积核里面的参数值是不变的,这样的话卷积神经网络里面的权重参数要比传统的全连接网络中的参数少得多,方便训练。 

7.池化层

(1)池化层的作用

池化层是用来压缩特征图的,也叫做下采样(downsampling)。当提取的特征过多,并不是所有的都有用,选择重要的特征留下,不重要的就丢弃。

压缩的过程:在每个小区域选择其中比较重要的特征留下,不重要的就进行丢弃。

注意:特征图的个数不会变,只会改变特征图的长(h)和宽(w)。

(2)最大池化

 最大池化:按照固定的filter大小和步长,在每个小区域中提取出最大值(即最重要的特征),组成新的特征图。

平均池化(aver pooling):按照固定的filter大小和步长对特征图进行分区,将每个小区域中的特征值计算其平均值,然后组成新的特征图。

例如:上图中,黄色区域的特征值进行平均,即(3+2+1+2)/4=2,则对应的新的特征图的黄色区域就是2。

注意:池化层中没有涉及到任何的矩阵计算,它只是进行一个压缩、筛选、过滤。

8.整体网络架构

 首先,一张图像输入以后先通过卷积进行特征提取,与传统神经网络一样,每个卷积层后面都搭配一个Relu函数,且执行多次卷积后就需要进行一次池化压缩。经过多次的“卷积\rightarrowRelu线性变换\rightarrow卷积\rightarrow线性变换\rightarrow池化”这一过程后,需要将得到的三维特征图转换为一维的特征向量,然后通过全连接层来得到各个类别的概率值。假如经过特征提取后得到一个32x32x10的三维特征图,转换为一维特征向量,包含10240个特征值,然后将其转换为各个类别的概率值。

 一个神经网络包含多少层?带参数计算的才能叫做一层,卷积层要乘内积然后加偏执参数,是带参数计算的,全连接层也有权重参数矩阵,也是带参数计算的,Relu激活函数和池化层都不带参数计算。如上图所示,有6个卷积层和1个全连接层,加在一起是一个7层的神经网络。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深度学习笔记(二) 的相关文章

  • 深度学习笔记(二)

    计算机视觉 xff1a 人类肉眼识别的错误率大概在5 到2016年的时候 xff0c 计算机视觉中 xff0c 用深度学习网络达到的错误率已经远低于人类 卷积神经网络 xff08 CNN xff09 1 应用领域 神经网络和卷积神经网络都是
  • 动手学深度学习——数据操作之ndarray与tensor间的转换

    为什么可以转换 无论使用哪个深度学习框架 它的张量类 在MXNet中为ndarray 在PyTorch和TensorFlow中为tensor 都与Numpy的ndarray类似 但深度学习框架又比Numpy的ndarray多一些重要功能 首
  • 激活函数之softmax函数

    1 softmax函数 分类问题中使用的 softmax 函数可以用下面的式表示 exp x 是表示 ex 的指数函数 e 是纳皮尔常数 2 7182 式 3 10 表示假设输出层共有 n 个神经元 计算第 k 个神经元的输出 yk 如式
  • 【深度学习】最全的十九种损失函数汇总

    tensorflow和pytorch很多都是相似的 这里以pytorch为例 文章目录 一 L1范数损失 L1Loss 二 均方误差损失 MSELoss 三 交叉熵损失 CrossEntropyLoss 四 KL 散度损失 KLDivLos
  • 【ChatGPT】如何让 ChatGPT 不再频繁报错,获取更加稳定的体验?

    文章目录 一 问题描述 二 方案1 使用 OpenAI API Key 来访问 ChatGPT 三 方案2 安装 Chrome 插件 3 1 介绍 3 2 安装步骤 3 2 1 插件 脚本安装 3 2 2 解读功能 一 问题描述 最近一段时
  • 深度学习(二)(loss、BP、正则化、激活函数)

    神经网络基础 目录 神经网络基础 5 得分函数 6 损失函数 7 前向传播整体流程 8 反向传播计算方法 9 神经网络整体架构 10 神经网络架构细节 11 神经元的个数对结果的影响 12 正则化与激活函数 13 神经网络过拟合解决办法 5
  • varifocal loss(VFL)介绍

    文章目录 一 论文链接 二 公式理解 代码 一 论文链接 https arxiv org pdf 2008 13367 pdf 二 公式理解 简单说明下 这里的IACS是IoU aware classification score的缩写 V
  • 【深度学习

    文章目录 一 问题引入 二 如何读取路径呢 一 问题引入 当使用 torchvision datasets Celeba 加载 CELEBA 数据集时 我们如何获取文件的路径是一个问题 celeba torchvision datasets
  • 【机器学习 & 深度学习】通俗讲解集成学习算法

    目录 集成学习 一 机器学习中的集成学习 1 1 定义 1 2 分类器 Classifier 1 2 1 决策树分类器 1 2 2 朴素贝叶斯分类器 1 2 3 AdaBoost算法 1 2 4 支持向量机 1 2 5 K近邻算法 1 3
  • 深度学习笔记丨李沐深度学习课程kaggle竞赛——加利福尼亚房价预测(我的第一个深度学习项目)

    记录作为小白的第一个深度学习项目 1 kaggle竞赛题目 The task is to predict house sale prices based on the house information such as of bedroom
  • jaffe 数据库百度网盘下载

    供学术研究讨论使用 禁止商用 如有引用请注明jaffe论文出处 链接 https pan baidu com s 1Rc18GnVqP7WRmayFAhrtYA 提取码 2jq8
  • caffe的学习笔记一——深度学习框架caffe介绍

    1 深度学习框架caffe介绍 caffe的介绍 谷歌有tensorflow 微软和百度都有自己的框架 caffe入手简单 应用场景广 很多公司用此框架完成工程项目 caffe是基于服务器端的 要在PC端做这个事情 目前深度学习很多场景都应
  • 【torch】如何把把几个 tensor 连接起来?(含源代码)

    一 cat 在 PyTorch 中 要向一个 tensor 中添加元素 你通常需要创建一个新的 tensor 然后将元素添加到新的 tensor 中 PyTorch tensors 是不可变的 所以不能像列表一样直接追加元素 以下是如何实现
  • 笔记记录--基于ccpd数据集利用Paddle OCR训练车牌检测模型

    目录 1 环境搭建 2 数据集划分 3 训练模型 4 推理测试 1 环境搭建 安装Paddle OCR参考 创建环境 conda create n paddle env python 3 8 conda activate paddle en
  • pytorch 2.0.1 版本 [gpu] 安装

    安装Anaconda 1 下载官网 我们下载anaconda的目的主要是为了下一步的python环境管理 所以不考虑anaconda与已有的python的版本是否匹配的问题 下方点击之后会出现 可以根据自己的需要下载安装包 本文以Windo
  • 【计算机视觉】最后显示的CIFAR-100数据集照片很模糊怎么解决?

    文章目录 一 前言 二 如何解决 2 1 使用图像增强技术 2 2 使用插值方法 2 3 使用更高分辨率的图像数据集 2 4 手动调整图像尺寸 三 总结 一 前言 如果从CIFAR 100数据集加载的图像显示模糊 可能有几个可能的原因 分辨
  • 【ViT(Vision Transformer)】(二) 阅读笔记

    简介 ViT是2020年Google团队提出的将Transformer应用在图像分类的模型 虽然不是第一篇将transformer应用在视觉任务的论文 但是因为其模型 简单 且效果好 可扩展性强 scalable 模型越大效果越好 成为了t
  • 高效计算基础与线性分类器

    七月算法5月深度学习班课程笔记 No 2 1 深度学习与应用 1 图像上的应用 可以根据图片 识别图片的内容 描述图像 模仿人的创造性生成画作 相册自动归类等 2 NLP上的应用 用RNN学习某作家的文笔风格进行写作 学习代码写作等 下图为
  • 卷积神经网络中用1*1 卷积有什么作用或者好处呢?

    一 来源 1312 4400 Network In Network 如果1 1卷积核接在普通的卷积层后面 配合激活函数 即可实现network in network的结构 二 应用 GoogleNet中的Inception ResNet中的
  • 机器学习的12个基础问题

    1 阐述批归一化的意义 算法 1 批归一化变换 在一个 mini batch 上应用于激活 x 批归一化是一种用于训练神经网络模型的有效方法 这种方法的目标是对特征进行归一化处理 使每层网络的输出都经过激活 得到标准差为 1 的零均值状态

随机推荐

  • C++STL剖析(八)—— unordered_set和unordered_multiset的概念和使用

    文章目录 前言1 unordered set的介绍和使用 x1f351 unordered set的构造 x1f351 unordered set的使用 x1f345 insert x1f345 find x1f345 erase x1f3
  • C++STL剖析(九)—— unordered_map和unordered_multimap的概念和使用

    文章目录 1 unordered map的介绍和使用 x1f351 unordered map的构造 x1f351 unordered map的使用 x1f345 insert x1f345 operator x1f345 find x1f
  • C++STL剖析(十)—— 位图(bitset)

    文章目录 1 位图的介绍2 位图的概念3 位图的实现 x1f351 构造函数 x1f351 设置指定位 x1f351 清除指定位 x1f351 获取指定位的状态 x1f351 打印函数 4 总结 1 位图的介绍 在介绍位图之前先来看一道面试
  • C/C++数据结构(十二)—— 红黑树

    文章目录 1 红黑树的概念2 红黑树的性质3 红黑树节点的定义4 红黑树的旋转5 红黑树的插入 x1f351 情况一 x1f351 情况二 x1f351 情况三 x1f345 叔叔结点存在且为红色 x1f345 叔叔结点存在且为黑色 x1f
  • 机器学习数学基础

    文章目录 一 学习任务二 学习内容1 梯度下降法的一般求解步骤2 梯度下降法手工求解极值2 1 计算过程 3 Excel中利用梯度下降求解近似根4 线性回归问题求解4 1 最小二乘法4 2 梯度下降法 三 参考资料 一 学习任务 解释微分
  • 一篇文章吃透算法时间复杂度

    文章目录 前言1 什么是好的算法2 算法的效率度量3 时间复杂度4 大 O 时间复杂度表示法5 算法时间复杂度计算规则 x1f351 规则 1 xff1a 只关注循环中的代码段 x1f351 规则 2 xff1a 加法规则 x1f351 规
  • 2023 年最佳 C++ IDE

    文章目录 前言1 Visual Studio2 Code Blocks3 CLion4 Eclipse CDT xff08 C C 43 43 开发工具 xff09 5 CodeLite6 Apache NetBeans7 Qt Creat
  • 掌握顺序表,成为数据结构和算法的高手

    文章目录 1 线性结构与线性表2 线性表的顺序存储3 顺序表的基础操作 x1f351 顺序表接口总览 x1f351 初始化顺序表 x1f351 销毁链表 x1f351 插入操作 x1f351 删除操作 x1f351 获取元素操作 x1f34
  • 数据结构中常见的哈希表,到底是什么?

    文章目录 1 哈希概念 x1f351 举例说明 2 哈希冲突3 哈希函数 x1f351 常见哈希函数 4 哈希冲突解决 x1f351 闭散列 xff08 开放定址法 xff09 x1f345 线性探测 x1f345 二次探测 x1f351
  • 探索数据结构之精髓:单链表解密

    文章目录 1 前言2 单链表的特点3 单链表的基础操作 x1f351 接口总览 x1f351 初始化操作 x1f351 插入操作 x1f345 优化操作 x1f351 删除操作 x1f345 优化操作 x1f351 获取元素 x1f345
  • 引用与指针:在C++中如何做出正确的选择?

    文章目录 前言1 引用入门2 引用作为函数传参3 引用作为函数返回值4 引用和指针5 其他区别 前言 引用是 C 43 43 的新增内容 xff0c 在实际开发中会经常使用 xff0c 它就如同C语言的指针一样重要 xff0c 但它比指针更
  • C++引用进阶篇:让你的程序更加高效、安全、简洁

    文章目录 前言1 引用和临时数据 x1f351 什么样的临时数据会放到寄存器中 x1f351 关于常量表达式 x1f351 引用也不能指代临时数据 x1f351 引用作为函数参数 2 为const引用创建临时变量3 const引用与转换类型
  • 二叉树基础概念详解

    文章目录 前言1 树的基本概念2 二叉树的基本概念3 特殊二叉树 x1f351 满二叉树 x1f351 完全二叉树 x1f351 斜树 4 二叉树的性质 x1f351 性质一 x1f351 性质二 x1f351 性质三 x1f351 性质四
  • 链队列知识总结及代码实现

    目录 链队的存储方式 链队的优点 链队功能函数 代码实现 链队的存储方式 可以通过 单链表 的方式来实现 xff0c 使用链式队的优点在于它能够克服用数组实现的顺序队空间利用率不高的特点 xff0c 但是需要为每个队元素分配额外的指针空间用
  • 【C语言】全面解析结构体,结构体知识点整理

    文章目录 结构体的概念结构体类型的声明结构体变量的创建typedef关键字结构体的嵌套结构体变量的初始化结构体成员的访问结构体的传参总结 结构体的概念 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合 组成结构型数据的每个数据称为
  • 逻辑回归案例 练习

    文章目录 一 学习任务二 学习内容1 常用评价指标2 实验分析 三 参考资料 一 学习任务 学习理解逻辑回归的基本概念 xff0c 练习python代码的实现 xff0c 在notebook中写入自己的理解注释 准确理解机器学习算法的常用评
  • APM飞控学习笔记——自动模式下一分钟自动降落

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 文章目录 前言一 自动模式简介二 添加自动降落功能 1 飞控主循环调用逻辑2 功能添加总结 前言 APM是一款功能齐全的开源多轴飞行器无人
  • Linux基础入门之常用命令

    1 命令的基本格式 1 1 命令的提示符 root 64 localhost xff1a 这是提示符的分隔符号 xff0c 没有特殊含义 root xff1a 显示的是当前的登录用户 xff0c 目前使用的是root用户登录 64 xff1
  • windows10安装python详细过程

    1 下载与安装Python 首先访问网址 https www python org xff0c 进入Downloads 页面 xff0c 即可下载Python 如下图 这里直接下载的是最新版的Python 如果需要下载其他版本的Python
  • 深度学习笔记(二)

    计算机视觉 xff1a 人类肉眼识别的错误率大概在5 到2016年的时候 xff0c 计算机视觉中 xff0c 用深度学习网络达到的错误率已经远低于人类 卷积神经网络 xff08 CNN xff09 1 应用领域 神经网络和卷积神经网络都是