【卷积神经网络】经典网络之 LeNet-5, AlexNet 与 VGG-16

随着计算机硬件的升级与性能的提高,运算量已不再是阻碍深度学习发展的难题。卷积神经网络(Convolution Neural Network,CNN)是深度学习中一项代表性的工作,其雏形是 1998 年 LeCun 提出的 LeNet-5 模型。如今,卷积神经网络已被广泛应用于计算机视觉领域。本文主要介绍卷积神经网络中的经典网络,包括 LeNet-5, AlexNet 和 VGG-16.

目录

1 LeNet-5

2 AlexNet

3 VGG-16


1 LeNet-5

        LeNet-5 是经典卷积神经网络之一,1998 年由 Yann LeCun 等人在论文 《Gradient-Based Learning Applied to Document Recognition》中提出。LeNet-5 网络使用了卷积层、池化层和全连接层,实现可以应用于手写体识别的卷积神经网络。

论文链接如下:

《Gradient-Based Learning Applied to Document Recognition》

        LeNet-5 包含 2 个卷积层和 3 个全连接层,包含学习参数的网络层有 5 层,这也是 LeNet-5 名字中 5 的由来。LeNet-5 的输入图像大小是 32 x 32,颜色通道数为 1,这表明 LeNet-5 仅支持输入黑白图像。 

卷积 / 池化操作图像大小 / 神经元个数待训练的参数个数
Input32 × 32 × 1/
Conv15 × 5, s = 128 × 28 × 6150
avg pool12 × 2, s = 214 × 14 × 6/
Conv25 × 5, s = 110 × 10 × 162,400
avg pool22 × 2, s = 25 × 5 × 16/
FC112048,000
FC28410,080
FC3 (Output)10840

        LeNet-5 网络拥有约 6.1 万个待训练的参数,与如今常见的卷积神经网络不同, LeNet-5 激活层使用了 Sigmoid 函数,池化层采用平均池化,另外最后一层的输出使用 RBF 函数处理(而现在常用的处理方法是 Softmax 函数)。

2 AlexNet

        与 LeNet-5 类似,AlexNet 是另一个用于图像识别的经典神经网络。AlexNet 的名字来源于其第一作者 Alex Krizhevsky,于 2012 年 ImageNet 赛事夺冠之后为人们所熟知。AlexNet 沿用了 LeNet-5 的思路,把卷积,池化操作应用于更深层的神经网络中。

论文链接如下:

《ImageNet Classification with Deep Convolutional Neural Networks》

卷积 / 池化操作图像大小 / 神经元个数待训练的参数个数
Input224  × 224  × 3/
Conv111 × 11, s = 455 × 55 × 9634,848
max pool13 × 3, s = 227 × 27 × 96/
Conv25 × 5, p = 1, s = 127 × 27 × 256614,400
max pool23 × 3, s = 213 × 13 × 256/
Conv33 × 3, p = 1, s = 113 × 13 × 384884,736
Conv43 × 3, p = 1, s = 113 × 13 × 3841,327,104
Conv53 × 3, p = 1, s = 113 × 13 × 256884,736
max pool33 × 3, s = 26 × 6 × 256/
FC14,09637,748,736
FC24,09616,777,216
FC3 (Output)1,0004,096,000

        AlexNet 网络拥有约 6200 万个参数,AlexNet 的创新点包括:
(1)使用 ReLU 作为卷积层的激活函数,避免了 Sigmoid 函数在网络层数增加时梯度消失或爆炸问题;
(2)全连接层使用 DropOut 随机失活方式,屏蔽一部分神经元的输出值,避免模型的过拟合;
(3)使用重叠的最大池化。AlexNet 使用最大池化替代此前人们常用的平均池化,避免了平均池化的模糊问题,并且池化的步长比池化核小,使池化输出有一定的重叠,丰富输出特征。

3 VGG-16

        VGG 网络是 Oxford 的 Visual Geometry Group 团队提出,在 2014 年的 ImageNet 赛事中取得亚军。VGG 在 AlexNet 的基础上进一步增加了神经网络的深度,表明当网络层数增加到 16~19 个时可以实现显著改进。

论文链接如下:

《Very Deep Convolutional Networks for Large-Scale Image Recognition》

 

        VGG 网络有两个常见的版本,VGG-16 和 VGG-19,分别对应上图中的模型 D 和模型 E,数字 16 和 19 表示带有待训练权重的网络层数。VGG-16 有 13 个卷积层和 3 个全连接层,VGG-19 比 VGG-16 多 3 个卷积层,有 16 个卷积层和 3 个全连接层。

卷积 / 池化操作图像大小 / 神经元个数待训练的参数个数
Input224 × 224 × 3/
Conv13 × 3, p = 1, s = 1224 × 224 × 641,728
Conv23 × 3, p = 1, s = 1224 × 224  × 6436,864
max pool12 × 2, s = 2112 × 112 × 64/
Conv33 × 3, p = 1, s = 1112 × 112 × 12873,728
Conv43 × 3, p = 1, s = 1112 × 112 × 128147,456
max pool22 × 2, s = 256 × 56 × 128/
Conv53 × 3, p = 1, s = 156 × 56 × 256294,912
Conv63 × 3, p = 1, s = 156 × 56 × 256589,824
Conv73 × 3, p = 1, s = 156 × 56 × 256589,824
max pool32 × 2, s = 228 × 28 × 256/
Conv83 × 3, p = 1, s = 128 × 28 × 5121,179,648
Conv93 × 3, p = 1, s = 128 × 28 × 5122,359,296
Conv103 × 3, p = 1, s = 128 × 28 × 5122,359,296
max pool42 × 2, s = 214 × 14 × 512/
Conv113 × 3, p = 1, s = 114 × 14 × 5122,359,296
Conv123 × 3, p = 1, s = 114 × 14 × 5122,359,296
Conv133 × 3, p = 1, s = 114 × 14 × 5122,359,296
max pool52 × 2, s = 27 × 7 × 512/
FC14,096102,760,448
FC24,09616,777,216
FC3 (Output)1,0004,096,000

        VGG-16 网络拥有约 1.38 亿个参数。它的主要创新之处在于,VGG 使用了多个连续的卷积层,以及尺寸更小的卷积核(3 × 3 大小),替代 AlexNet 中大尺寸的卷积核(11 × 11,5 × 5 等大小),以更好地提取图像的深层特征。

        另外,随着神经网络层数的增加,输出图像的宽高减半,卷积层的输出特征数从最初的 64,增加到 128,256 和 512。

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

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

相关文章

WPF使用依赖注入

现在依赖注入在.Net里面已经普及,自己常写一些简单的demo倒是无所谓,但偶尔写一点正式的工程,也免不了要使用一下,于是总结了一下在WPF里面使用依赖注入。 在写简单Demo时候,通常是在MainWindow的构造函数里面直接做初…

Python爬虫——scrapy_日志信息以及日志级别

日志级别(由高到低) CRITICAL: 严重错误 ERROR: 一般错误 WARNING: 警告 INFO: 一般警告 DEBUG: 调试信息 默认的日志等级是DEBUG 只要出现了DEBUG或者DEBUG以上等级的日志,那么这些…

[oneAPI] 基于BERT预训练模型的SQuAD问答任务

[oneAPI] 基于BERT预训练模型的SQuAD问答任务 Intel Optimization for PyTorch and Intel DevCloud for oneAPI基于BERT预训练模型的SQuAD问答任务语料介绍数据下载构建 模型 结果参考资料 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Int…

第2章 数据结构和算法概述

2.3线性结构和非线性结构 数据结构包括: 线性结构和非线性结构 2.3.1线性结构 线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表称…

回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现GAM广义加性模型多输入单输出回归预测(多指标,多图)效果一览基本介绍程序设计参考资料 效果一览 基本…

【24择校指南】华东师范大学计算机考研考情分析

华东师范大学(B) 考研难度(☆☆☆☆) 内容:23考情概况(拟录取和复试分数人数统计)、院校概况、23考试科目、23复试详情、各科目及专业考情分析。 正文2563字,预计阅读:3分钟。 2023考情概况…

机器学习深度学习——NLP实战(自然语言推断——注意力机制实现)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——NLP实战(自然语言推断——数据集) 📚订阅专栏:机器学习&…

Kotlin Channel 热流

协程&#xff1a;Channel 热流 1、Channel是什么&#xff1f; 生产者&#xff1a;多个协程消费者&#xff1a;多个协程中间&#xff1a;Channel 管道 并发安全队列发送send接收recv 协程间通信 1、Channel可以用于协程间通信 // 通道Channelval channel Channel<Int>…

C# 读取pcd、ply点云文件数据

最近研究了下用pcl读取点云数据&#xff0c;又做了个C#的dll&#xff0c;方便读取&#xff0c;同样这个dll基于pcl 最新版本1.13.1版本开发。 上次做的需要先得到点云长度&#xff0c;再获取数据。这次这个定义了一个PointCloudXYZ类来存数据。将下面的dll拷贝到可执行目录下&a…

Docker详解

文章目录 Docker详解一、Docker简介什么是容器 &#xff1f;容器技术有哪些优点 &#xff1f;什么是Docker &#xff1f;Docker的特点Docker的使用场景 二、Docker的基本组成Docker 客户端 / 守护进程Docker Image 镜像Docker Container 容器Docker Registry 仓库 三、Docker 依…

嵌入式系统中如何选择RTC电池?

RTC&#xff08;Real Time Clock&#xff09;是一种用于提供系统时间的独立定时器&#xff0c;它可以在系统断电或低功耗模式下继续运行&#xff0c;只需要一个后备电池作为供电源。在嵌入式系统中&#xff0c;选择合适的RTC电池时非常关键的&#xff0c;它会影响系统时间的准确…

二、SQL注入之联合查询

文章目录 1、SQL注入原理2、SQL注入的原因3、SQL注入的危害4、SQL注入基础4.1 MySQL相关4.2 SQL注入流程&#xff1a; 5、联合注入实例基本步骤6、总结 1、SQL注入原理 SQL注入(Sql Injection&#xff09;就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串&…

【从零学习python 】56. 异常处理在程序设计中的重要性与应用

文章目录 异常的概念读取文件异常try...except语句try...else语句try...finally语句 进阶案例 异常的概念 在程序运行过程中&#xff0c;由于编码不规范或其他客观原因&#xff0c;可能会导致程序无法继续运行&#xff0c;此时就会出现异常。如果不对异常进行处理&#xff0c;…

[C++] string类常用接口的模拟实现

文章目录 1、前言2、遍历2.1 operator[ ]下标方式2.2 迭代器2.3 范围for2.4 c_str 3、容量相关3.1 size&#xff08;大小&#xff09;3.2 capacity&#xff08;容量&#xff09;3.3 empty&#xff08;判空&#xff09;3.4 clear&#xff08;清理&#xff09;3.5 reserve3.6 res…

代码随想录算法训练营day37 | LeetCode 738. 单调递增的数字 968. 监控二叉树

738. 单调递增的数字&#xff08;题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台&#xff09; 思路&#xff1a;从后往前考虑&#xff0c;题目会变得很容易&#xff0c;从前往后考虑&#xff0c;结果很难处理。 int monotoneIn…

最新AI系统ChatGPT网站程序源码/搭建教程/支持GPT4.0/Dall-E2绘画/支持MJ以图生图/H5端/自定义训练知识库

一、正文 SparkAi系统是基于国外很火的ChatGPT进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。 那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧&#xff01…

前端高频面试题 Day03

1. Vue computed 和 watch 区别 对于Computed: ● 它支持缓存&#xff0c;只有依赖的数据发生了变化&#xff0c;才会重新计算 不支持异步&#xff0c;当Computed中有异步操作时,无法监听数据的变化 ● computed的值会默认走缓存&#xff0c;计算属性是基于它们的响应式依赖…

SpringMVC之入门搭建框架

文章目录 前言一、SpringMVC简介1.什么是MVC2.什么是SpringMVC3.SpringMVC的特点 二、搭建框架——HelloWorld1.创建maven工程&#xff08;web项目&#xff09;2.配置web.xml3.配置springMVC.xml4.创建请求控制器 总结 前言 基础小白第一次走进SpringMVC&#xff1a;了解什么是…

自定义HttpClient工具类

自定义HttpClient工具类 简介 依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version> </dependency>api 发送get请求: doGet(String url);发送po…

LinkedList

LinkedList的模拟实现&#xff08;底层是一个双向链表&#xff09;LinkedList使用 LinkedList的模拟实现&#xff08;底层是一个双向链表&#xff09; 无头双向链表&#xff1a;有两个指针&#xff1b;一个指向前一个节点的地址&#xff1b;一个指向后一个节点的地址。 节点定…