计算机视觉与深度学习-经典网络解析-VGG-[北邮鲁鹏]

news2024/11/24 7:35:19

目录标题

  • VGG
    • 参考
    • VGG网络贡献
      • 使用尺寸更小的$3 \times 3$卷积串联来获得更大的感受野
      • 放弃使用$11 \times 11$和$5 \times 5$这样的大尺寸卷积核
      • 深度更深、非线性更强,网络的参数也更少;
      • 去掉了AlexNet中的局部响应归一化层(LRN)层。
    • 网络结构
    • 主要改进
      • 输入去均值
      • 小卷积核串联代替大卷积核
      • 无重叠池化
      • 卷积核个数逐层增加

VGG

VGG是Oxford的Visual Geometry Group的组提出的(大家应该能看出VGG名字的由来了)。该网络是在ILSVRC 2014上的相关工作,主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。VGG有两种结构,分别是VGG16和VGG19,两者并没有本质上的区别,只是网络深度不一样。
在这里插入图片描述

参考

论文地址
一文读懂VGG网络

在这里插入图片描述

VGG网络贡献

使用尺寸更小的 3 × 3 3 \times 3 3×3卷积串联来获得更大的感受野

对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以额增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。

放弃使用 11 × 11 11 \times 11 11×11 5 × 5 5 \times 5 5×5这样的大尺寸卷积核

使用了3个3x3卷积核来代替7x7卷积核,使用了2个3x3卷积核来代替5*5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,提升了网络的深度,在一定程度上提升了神经网络的效果。

2个 3 × 3 3 \times 3 3×3卷积核串联,感受野为 5 × 5 5 \times 5 5×5
在这里插入图片描述
3个 3 × 3 3 \times 3 3×3卷积核串联,感受野为 7 × 7 7 \times 7 7×7
在这里插入图片描述

深度更深、非线性更强,网络的参数也更少;

比如,3个步长为1的3x3卷积核的一层层叠加作用可看成一个大小为7的感受野(其实就表示3个3x3连续卷积相当于一个7x7卷积),其参数总量为 ( 3 × 3 × C ) × C × 3 = 27 C 2 (3 \times 3 \times C) \times C \times 3 = 27C^2 (3×3×C)×C×3=27C2
如果直接使用7x7卷积核,其参数总量为 ( 7 × 7 × C ) × C = 49 C 2 (7 \times 7 \times C) \times C = 49C^2 (7×7×C)×C=49C2 ,这里 C 指的是输入和输出的通道数。

很明显, 27 C 2 27C^2 27C2小于 49 C 2 49C^2 49C2,即减少了参数;而且3x3卷积核有利于更好地保持图像性质。

去掉了AlexNet中的局部响应归一化层(LRN)层。

网络结构

在这里插入图片描述

1、输入224x224x3的图片,经64个3x3的卷积核作两次卷积+ReLU,卷积后的尺寸变为224x224x64

2、作max pooling(最大化池化),池化单元尺寸为2x2(效果为图像尺寸减半),池化后的尺寸变为112x112x64

3、经128个3x3的卷积核作两次卷积+ReLU,尺寸变为112x112x128

4、作2x2的max pooling池化,尺寸变为56x56x128

5、经256个3x3的卷积核作三次卷积+ReLU,尺寸变为56x56x256

6、作2x2的max pooling池化,尺寸变为28x28x256

7、经512个3x3的卷积核作三次卷积+ReLU,尺寸变为28x28x512

8、作2x2的max pooling池化,尺寸变为14x14x512

9、经512个3x3的卷积核作三次卷积+ReLU,尺寸变为14x14x512

10、作2x2的max pooling池化,尺寸变为7x7x512

11、与两层1x1x4096,一层1x1x1000进行全连接+ReLU(共三层)

12、通过softmax输出1000个预测结果

主要改进

输入去均值

AlexNet和ZFNet的输入去均值:求所有图像向量的均值,最后得出一个与原始图像大小相同维度的均值向量。

VGG输入去均值:求所有图像向量的RGB均值,最后得到的是一个3×1的向量 [R,G,B]

小卷积核串联代替大卷积核

增加了非线性能力。

多个小尺寸卷积核串联可以得到与大尺寸卷积核相同的感受野。

与高斯核不同,高斯核中两个小卷积核组合卷积核大卷积核卷积结果相同。但是卷积神经网络中的卷积核,多个小卷积核组合和大卷积核结果不同,但是感受野相同。

无重叠池化

窗口大小为2×2,步长为2。

卷积核个数逐层增加

前层卷积核少,是因为前层学习到的是图像的基元(点、线、边),基元很少,所以不需要很多的神经元学习,又前层的图像都比较大,若神经元很多,计算量会很大(K×m×m×D×K×n×n)。到后面的层时,包含很多的语义结构,需要更多的卷积核学习。

为什么在VGG网络前四段里,每经过一次池化操作,卷积核个数就增加一倍?

1、池化操作可以减少特征图尺寸,降低显存占用
2、增加卷积核个数有助于学习更多的结构特诊,但会增加网络参数数量以及内存消耗
3、一减一增的设计平衡了识别精度与存储、计算开销

最终提升了网络性能

为什么卷积核个数增加到512后就不再增加了?

1、第一个全连接层含102M参数,占总参数个数的74%
2、这一层的参数个数是特征图的尺寸与个数的乘积
3、参数过多容易过拟合,且不易被训练

如果将最后一层卷积核个数增加至1024,这一层参数个数为: 7 × 7 × 1024 × 4096 = 205520896 ≈ 200 M 7 \times 7 \times 1024 \times 4096 = 205520896 \approx 200M 7×7×1024×4096=205520896200M

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

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

相关文章

车辆检测:An Efficient Wide-Range Pseudo-3D Vehicle Detection Using A Single Camera

论文作者:Zhupeng Ye,Yinqi Li,Zejian Yuan 作者单位:Xian Jiaotong University 论文链接:http://arxiv.org/abs/2309.08369v1 项目链接:https://www.youtube.com/watch?v1gk1PmsQ5Q8 内容简介: 1)方…

GE D20 EME 10BASE-T 控制主板模块

GE D20 EME 控制主板模块通常用于工业自动化和控制系统中,特别是在需要网络连接和通信功能的应用领域。以下是一些可能适用于该模块的应用领域: 工业自动化:GE D20 EME 控制主板模块可用于各种工业自动化应用,包括生产线控制、设备…

【前端知识】Three 学习日志(七)—— 动画渲染循环

Three 学习日志(七)—— 动画渲染循环 一、旋转动画 // 渲染函数 function render() {renderer.render(scene, camera); //执行渲染操作mesh.rotateY(0.01);//每次绕y轴旋转0.01弧度requestAnimationFrame(render);//请求再次执行渲染函数render&#…

【LQR】离散代数黎卡提方程的求解,附Matlab/python代码(笔记)

LQR的核心是设计QRN,并求解对应的黎卡提方程 对于连续状态空间方程系统,先求连续LQR后离散 和 先离散后求离散LQR方程 的结果 是不一样的 1.离散代数黎卡提方程 注:LQR算法中含N项 离散系统: 在matlab里有现成的函数dlqr()&…

【C语言】可变参数列表详解

可变参数列表 一、可变参数列表的使用1、可变参数列表的形式2、可变参数列表的提取3、使用演示4、利用可变参数实现一个简单的日志打印功能 二、可变参数列表的原理1、原理的讲解2、原理的证明 一、可变参数列表的使用 1、可变参数列表的形式 有时我们在使用C语言时可能会碰到…

解决RequestParam.value() was empty on parameter 0

在网上查询很多种方式,都解决不了问题,比如: 在RequestParam RequestBody注解 解决办法:在RequestParam中的name加上对应参数 如 : RequestParam( name "name" ) RequestBody也是同理 最后解决的办法,是发现mave…

【Linux】nohub指令--终端退出后命令仍旧执行

文章目录 0、背景1、作用2、语法3、用法演示4、关于2>&1 0、背景 Shell中,执行一个持续进行的指令,会"霸屏",即你想再执行其他指令,要么重开个shell终端,要么退出这个执行。 1、作用 nohub&#x…

vue 把echarts封装成一个方法 并且从后端读取数据 +转换数据格式 =动态echarts 联动echarts表

1.把echarts 在 methods 封装成一个方法mounted 在中调用 折线图 和柱状图 mounted调用下边两个方法 mounted(){//最早获取DOM元素的生命周期函数 挂载完毕console.log(mounted-id , document.getElementById(charts))this.line()this.pie()},methods里边的方法 line() {// …

苹果麻烦了,全球没有消费者愿意接受印度制造的iPhone

据外媒报道指印度制造的iPhone良率只有一半,以至于发出的货被质量工程师打回一半,由此引发欧洲消费者的抗拒,为安抚欧洲消费者,苹果表示欧洲市场的iPhone15将全数由中国制造供应,而印度制造的iPhone将在印度市场销售以…

基于python的urllib 库抓取网站上的图片

最近写了个爬虫实例,有python环境的话就可以直接运行了。 运行效果是这样的: 完整代码如下: import urllib import urllib.request import re import random import time import os #目标网址: imagePath"https://pic.netbian.com&quo…

JVM对象的创建过程、内存分配、内存布局、访问定位等问题详解

对象 内存分配的两种方式 指针碰撞 适用场合:堆内存规整(即没有内存碎片)的情况下。 原理:用过的内存全部整合到一边,没有用过的内存放在另一边,中间有一个分界指针,只需要向着没用过的内存…

计算机视觉与深度学习-卷积神经网络-卷积图像去噪边缘提取-卷积-[北邮鲁鹏]

目录标题 参考学习链接卷积的定义卷积的性质叠加性平移不变性交换律结合律分配律标量 边界填充边界填充方法 - 常数填充最常用常数填充零填充(zero padding)拉伸镜像 卷积示例单位脉冲核无变化平移平滑锐化 卷积核平均卷积核高斯卷积核高斯卷积核定义高斯…

智能金融决策策略,规则引擎在大数据金融行业的实战案例

在金融风控场景中,规则引擎是一个核心风险管理的利器,它预先设定一系列规则设定,用于便捷的评估和处理各种交易、客户行为或其他需要自动化决策、计算、推理判断的情况。 以下是一个详细的示例,说明规则引擎在金融风控中的使用。 …

智能工厂的产业前景如何?

智能工厂的产业前景相当光明,并且正在迅速发展。智能工厂,也称为工业 4.0 或第四次工业革命,代表了先进技术和数据驱动自动化推动的制造和工业流程的重大转变。以下是智能工厂产业前景的一些关键方面: 1.提高效率:智能…

OSCP系列靶场-Intermediate-BTRSys2.1保姆级

OSCP系列靶场-Intermediate-BTRSys2.1 目录 OSCP系列靶场-Intermediate-BTRSys2.1总结准备工作信息收集-端口扫描目标开放端口收集目标端口对应服务探测 信息收集-端口测试21-FTP端口的信息收集21-FTP版本版本信息与MSF利用21-FTP端口匿名登录测试(成功)21-FTP端口-文件GET收集…

C++中的深拷贝和浅拷贝介绍

对于基本类型的数据以及简单的对象,它们之间的拷贝非常简单,就是按位复制内存。例如: class Base{public:Base(): m_a(0), m_b(0){ }Base(int a, int b): m_a(a), m_b(b){ }private:int m_a;int m_b;};int main(){int a = 10;int b = a; //拷贝Base obj1(10, 20);Base obj2…

项目管理软件在项目中的这些作用,你知道吗?

现在项目管理软件成为各类企业必不可少的工具,给项目提供全面的视图、促进团队协作、实时跟踪和监控、优化资源利用、改善决策制定等优势。 它们可以帮助团队成员更好地组织和协作,是实现项目目标的必备工具。通过合理利用项目管理软件的功能和特点&…

87 # express 应用和创建应用的分离

创建应用的过程和应用本身要进行分离。路由和创建应用的过程也做一个分离。 下面实现创建应用的过程和应用本身要进行分离: express.js const Application require("./application");function createApplication() {// 通过类来实现分离操作return ne…

一篇文章告诉您立仪3D线激光位移传感器

激光位移传感器是利用激光技术进行测量的传感器。它由激光器、激光检测器和测量电路组成。激光传感器是新型测量仪表。能够精确非接触测量被测物体的位置、位移等变化。 可以测量位移、厚度、振动、距离、直径等精密的几何测量。激光有直线度好的优良特性,同样激光…

【MATLAB第75期】#源码分享 | 基于MATLAB的不规则数据插值实现时间序列数据扩充

【MATLAB第75期】#源码分享 | 基于MATLAB的不规则数据插值实现时间序列数据扩充 如时间数据以单位1为间隔排序, 可插间隔为0.5的数据 。 一、实现效果 1.规则间隔数据 2.非规则间隔数据 二、主程序代码 1.插值测试效果 %% 清空环境变量 warning off …