【深度学习】搞懂卷积神经网络(一)

卷积神经网络是一种具有局部连接权重共享等特性的深层前馈神经网络。一般是由卷积层,池化层,全连接层交叉堆叠而成,使用反向传播算法进行训练。卷积神经网络具有一定程度上的平移,缩放和旋转不变性,较前馈神经网络而言,其参数更少。

什么是卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN或ConvNet)是一种具有局部连接权重共享等特性的深层前馈神经网络。

卷积神经网络最早主要是用来处理图像信息。在用全连接前馈网络来处理图像时,会存在以下两个问题:

(1) 参数太多:如果输入图像大小为100 × 100 × 3(即图像高度为100,宽度为100 以及 RGB 3 个颜色通道),在全连接前馈网络中,第一个隐藏层的每个神经元到输入层都有 100 × 100 × 3 = 30000 个互相独立的连接,每个连接都对应一个权重参数。随着隐藏层神经元数量的增多,参数的规模也会急剧增加。这会导致整个神经网络的训练效率非常低,也很容易出现过拟合。

(2) 局部不变性特征:自然图像中的物体都具有局部不变性特征,比如尺度缩放、平移、旋转等操作不影响其语义信息。而全连接前馈网络很难提取这些局部不变性特征,一般需要进行数据增强来提高性能。

局部连接

在卷积层(假设是第𝑙 层)中的每一个神经元都只和前一层(第𝑙 −1 层)中某个局部窗口内的神经元相连,构成一个局部连接网络。如下图(b)所示,卷积层和前一层之间的连接数大大减少,由原来的 M_l * M_{l-1}个连接变为M_l * K个连接,𝐾 为卷积核大小。

权重共享

作为参数的卷积核𝒘(𝑙 ) 对于第𝑙 层的所有的神经元都是相同的。如下图(b)中,所有的同颜色连接上的权重是相同的。权重共享可以理解为一个卷积核只捕捉输入数据中的一种特定的局部特征。因此,如果要提取多种特征就需要使用多个不同的卷积核。由于局部连接权重共享,卷积层的参数只有一个 𝐾 维的权重 𝒘(𝑙) 和 1 维的偏置𝑏 (𝑙),共𝐾 + 1个参数。参数个数和神经元的数量无关。此外,第𝑙 层的神经元个数不是任意选择的,而是满足 M_l = M_{l-1} - K + 1

一个典型的卷积网络是由卷积层、池化层、全连接层交叉堆叠而成。目前常用的卷积网络整体结构如图所示。一个卷积块为连续 𝑀 个卷积层和 𝑏 个池化层(𝑀 通常设置为2 ∼ 5,𝑏为0或1)。一个卷积网络中可以堆叠𝑁 个连续的卷积块,然后在后面接着 𝐾 个全连接层(𝑁 的取值区间比较大,比如 1 ∼ 100 或者更大;𝐾 一般为0 ∼ 2)。

目前,卷积网络的整体结构趋向于使用更小的卷积核(比如 1 × 1 和 3 × 3) 以及更深的结构(比如层数大于 50)。此外,由于卷积的操作性越来越灵活(比如不同的步长),池化层的作用也变得越来越小,因此目前比较流行的卷积网络中,池化层的比例正在逐渐降低,趋向于全卷积网络。

几种典型的卷积神经网络

LeNet-5

LeNet-5[LeCun et al., 1998] 虽然提出的时间比较早,但它是一个非常成功的神经网络模型。基于LeNet-5的手写数字识别系统在 20世纪90年代被美国很多银行使用,用来识别支票上面的手写数字。

AlexNet

AlexNet[Krizhevsky et al., 2012] 是第一个现代深度卷积网络模型,其首次使用了很多现代深度卷积网络的技术方法,比如使用 GPU 进行并行训练,采用 了 ReLU 作为非线性激活函数,使用 Dropout 防止过拟合,使用数据增强来提高模型准确率等。这些技术极大地推动了端到端的深度学习模型的发展。AlexNet赢得了2012年ImageNet图像分类竞赛的冠军。AlexNet的结构如图所示,包括5个卷积层、3个池化层和3个全连接层。

VGGNet

VGGNet是牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起研发的深度卷积神经网络

VGGNet探索了卷积神经网络的深度与其性能之间的关系,通过反复堆叠3×3的小型卷积核和2×2的最大池化层,VGGNet成功地构筑了16~19层深的卷积神经网络VGGNet相比之前state-of-the-art的网络结构,错误率大幅下降,VGGNet论文中全部使用了3×3的小型卷积核和2×2的最大池化核,通过不断加深网络结构来提升性能。VGG16的结构如图所示:

Inception网络

在卷积网络中,如何设置卷积层的卷积核大小是一个十分关键的问题。在 Inception 网络中,一个卷积层包含多个不同大小的卷积操作,称为Inception模块。Inception网络是由有多个Inception模块和少量的池化层堆叠而成。

Inception模块同时使用1 × 1、3 × 3、5 × 5等不同大小的卷积核,并将得到的特征映射在深度上拼接(堆叠)起来作为输出特征映射。

GoogLeNet 由 9 个 Inception v1 模块和5个池化层以及其他一些卷积层和全连接层构成,总共为22层网络。为了解决梯度消失问题,GoogLeNet 在网络中间层引入两个辅助分类器来加强监督信息。GoogLeNet赢得了2014年ImageNet图像分类竞赛的冠军。

ResNet

残差网络(Residual Networks,简称为 ResNets)残差网络有助于解决梯度消失和梯度爆炸问题,使得在训练更深的网络的同时,又能保证良好的性能。残差块定义如下,通过捷径(Short cut,或者称跳远连接,Skip connections)可以将 a[l]添加到第二个 ReLU 过程中,直接建立a[l] 与a[l+2] 之间的隔层联系。

理论上,随着网络深度的增加,性能应该越来越好。但实际上,对于一个普通网络,随着神经网络层数增加,训练错误会先减少,然后开始增多。但残差网络的训练效果显示,即使网络再深,其在训练集上的表现也会越来越好。


http://www.ppmy.cn/embedded/110469.html

相关文章

Ubuntu 24.04中安装virtualenv

在Ubuntu 24.04中安装virtualenv,可以按照以下步骤进行: 1. 确保Python已安装‌: 在终端中输入python --version或python3 --version来检查Python的安装情况。 python3 --version2. 安装pip‌(如果尚未安装)&#x…

分布式锁-Redisson 可重入锁

在分布式系统中,分布式锁是一种常用的机制,用来在多个实例或服务之间控制共享资源的访问,确保不会出现并发冲突或资源竞争。Redis 是常用的分布式锁实现工具,而 Redisson 是 Redis 的一个 Java 客户端,它提供了强大且易…

【白话Redis】缓存雪崩、穿透、击穿、失效和热点缓存重建

快速导航 Redis不可不知的故障现象一、缓存雪崩定义:解决方案: 二、缓存穿透定义:解决方案一:解决方案二(更普遍的做法): 三、缓存击穿定义:解决方案: 四、缓存失效Redis…

【MySQL】MySQL常用的数据类型——表的操作

前言: 🌟🌟本期讲解关于MySQL常用数据类型,表的简单使用,希望能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/wwaqe 🌈感兴趣的小伙伴看一看小编主页:GGBondl…

需求分析例题

答案:B 知识点:软件需求按照需求分类分为 业务需求 用户需求 系统需求 业务需求是整体全局角度看的 用户需求是按照用户视角的角度提的 系统需求是从计算机本身角度产生的 系统需求又细分为功能需求,性能需求,设计约束。性需…

前后端时间转换的那些常见问题及处理方法

在现代的Web开发中,前后端分离的架构已经成为主流,尤其是在Spring Boot和Vue.js的组合中。开发者在这种架构下经常遇到的一个问题就是如何处理时间的转换和显示。前端和后端对时间的处理方式不同,可能会导致时间在传递过程中出现问题&#xf…

前端vue项目服务器部署(docker)

前端vue项目服务器部署(docker) 步骤 1: 导入 Nginx Docker 镜像 1、上传 Nginx Docker 镜像 将你的nginx-alpine.tar包上传到服务器上。假设路径为 /var/v3-admin-vite/nginx-alpine.tar。 scp -r "C:\Users\86184\Desktop\v3-admin-vite" root110.40.179.182:/…

华为HCIA、HCIP和HCIE认证考试明细

华为认证体系包括三个主要等级:HCIA(华为认证ICT助理)、HCIP(华为认证ICT高级工程师)和HCIE(华为认证ICT专家)。每个等级的认证都有其特定的考试内容和费用。 HCIA(华为认证ICT助理…

【H2O2|全栈】关于CSS(2)CSS基础(二)

目录 CSS基础知识 前言 准备工作 选择器的组合 盒模型 示例网页代码 后代选择器 亲代选择器 相邻兄弟选择器 后续兄弟选择器 多个元素选择器 通配符选择器 优先级 其他应用 伪类 锚链接的属性 列表的属性 list-style-type list-style-position list-style…

Win11安装mysql5.7.24

Win11安装mysql5.7.24 资源文件mysql安装过程 资源文件 mysql5.7.24免安装压缩包 下载链接: https://download.csdn.net/download/weixin_44174685/89738053 DirectX(用来修复缺失dll) 下载链接:https://download.csdn.net/downl…

2024数学建模国赛A题详细思路:基于空间几何运动学和优化模型matlab求解

2024数学建模国赛A题“板凳龙”闹元宵 2024高教社杯数学建模竞赛A题B题C题D题E题完整成品文章和全部问题的解题代码完整版本更新如下:https://www.yuque.com/u42168770/qv6z0d/rytbc1nelty1mu4o % 定义常量 L_head 3.41; % 龙头长度(米) L…

C#、C++、Java、Python选择哪个好?

一个好的程序员不能把自己绑定在一种语言上,不能把自己就定义为JAVA程序员,C#程序员,等等。语言没有高下之分,只有适用的场景。好的程序员,应该有很快学会一种新的语言,并解决实际问题的能力。在我二十年的…

Java使用Apache POI向Word文档中填充数据

Java使用Apache POI向Word文档中填充数据 向一个包含占位符的Word文档中填充数据&#xff0c;并保存为新的文档。 准备工作 环境搭建 在项目中添加Apache POI依赖。在pom.xml中添加如下依赖&#xff1a; <dependencies><dependency><groupId>org.apache.po…

【网络安全】-文件包含漏洞-pikachu

文件操作漏洞包括文件上传漏洞&#xff0c;文件包含漏洞&#xff0c;文件下载漏洞。 文章目录 前言 : 什么是文件包含漏洞&#xff1f; 1.文件包含漏洞的分类&#xff1a; 本地文件包含漏洞&#xff1a; 远程文件包含漏洞&#xff1a; 2.两种文件包含漏洞的区别&#xff1a; 3.…

mac m2 安装 nvm

踩坑-填坑 过程 红字都是 启动台-ohter-终端 里面直接输入就行了 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" brew -v 重启终端 brew uninstall nvm brew install nvm 成功提示 > Summary &#x1f37a; /o…

操作系统概述(三、虚拟化)

系列文章目录 文章目录 系列文章目录前言十一、操作系统上的进程1. 从系统启动到第一个进程系统调用&#xff1a;fork(), 创建进程execv()PATH环境变量销毁进程 十二、进程的地址空间**查看进程的地址空间**进程地址空间管理进程地址空间隔离 十三、系统调用和 shell十四、C标准…

LabVIEW高效换热器性能试验系统

随着能源和化工行业对换热器性能提出更高要求&#xff0c;开发了一种基于LabVIEW的换热器性能试验装置测控系统的开发&#xff0c;该系统集成了实时测量、分析、调节等功能&#xff0c;能够精确控制和测试换热器的性能&#xff0c;以支持新品开发和改进设计。 项目背景&#xf…

面试题 Spring bean 循环依赖解决方案以及三级缓存讲解

文章目录 Spring bean 循环依赖1.1 什么是循环依赖1.2 Spring循环依赖几种情况 什么是三级缓存到底是什么东西&#xff0c;三级缓存做了什么&#xff1f;三级缓存源码讲解 Spring bean 循环依赖 1.1 什么是循环依赖 当面试官问到你给我讲一下什么是循环依赖吧&#xff0c;该如…

全国计算机二级考试C语言篇3——选择题

C语言部分——C语言概述 1.程序模块化的优点 程序模块化的优点在于它可以使程序的开发、维护和复用变得更简单。下面是一些主要的优点&#xff1a; 降低复杂度&#xff1a;模块化可以将复杂的问题分解成更小的、更易管理的部分。 可维护性&#xff1a;模块化使得代码更易于维护…

Java面试题精选:分布式(二)

十四、什么是可靠消息最终一致性方案&#xff1f; 可靠消息最终一致性方案。它是保证事务最终一致性的一种方案&#xff0c;允许数据在业务中出现短暂的不一致状态。 可靠消息最终一致性方案是指&#xff0c;当事务的发起方&#xff08;事务参与者&#xff0c;也就是消息发送者…