常见深度神经网络介绍
第一周帖子
关于神经网络的发展过程中,几个重要的神经网络概述
常见深度神经网络介绍
0.AlexNet
AlexNet 是一种具有里程碑意义的深度卷积神经网络(CNN),由 Alex Krizhevsky 等人在 2012 年提出
AlexNet 的成功引发了深度学习在计算机视觉领域的热潮,为后续模型(如 VGG、ResNet)的设计提供了基础范式
核心思想
- 深度网络结构:
AlexNet 是首个成功应用深层卷积神经网络的模型,包含 8 层结构(5 个卷积层 + 3 个全连接层),通过堆叠多层卷积和池化操作,提取图像的层次化特征。 - 非线性激活函数(ReLU):
首次在卷积神经网络中大规模使用 ReLU(Rectified Linear Unit)激活函数,解决了传统 Sigmoid 和 Tanh 函数的梯度消失问题,加速了训练收敛。 - 局部响应归一化(LRN):
引入 LRN 层,模拟生物视觉系统的侧抑制机制,增强模型对局部特征的竞争性,提升泛化能力。 - 重叠池化(Overlapping Pooling):
采用步长小于池化窗口大小的池化操作,保留更多空间信息,减少特征损失。 - Dropout 正则化:
在全连接层中引入 Dropout 技术,抑制神经元的协同适应,随机丢弃部分神经元,防止过拟合,提升模型泛化能力。 - 多 GPU 并行计算:
利用两块 GPU 分摊计算任务,解决了当时深度模型训练的计算瓶颈,推动了 GPU 在深度学习中的应用。
使用ReLu激活函数为什么可以解决梯度爆炸?
alexNet以前使用Sigmoid或tanh函数作为激活函数,这些激活函数的导数,在输入下,导数<1,根据链式法则的层层传递,会使的浅层网络的梯度接近于0,从而导致梯度消失,导致神经网络在浅层网络就会难以训练下去
而ReLU(修正线性单元),当输入x>=0,导数恒为1,因此可以解决梯度消失问题,且加快了收敛速度
1.VGG16
VGG16 是一种经典的深度卷积神经网络(CNN)模型,由牛津大学的 Visual Geometry Group(VGG) 团队在2014年提出。
核心思想
VGG16 的核心思想是通过 堆叠多个小尺寸卷积核(3×3) 和 最大池化层(2×2) 来构建深度网络。其设计理念强调 网络深度 对特征提取能力的重要性,通过增加网络层数来学习更抽象、更具判别力的特征
显著提升了图像分类的准确率
优点:
**结构简单:**VGGNet 主要由 3x3 卷积层和 2x2 池化层堆叠而成,这种简单、规则的网络结构易于理解和实现。
较深的网络结构:通过增加卷积层的堆叠,VGGNet 能够捕捉更丰富的特征,提升了在图像分类任务中的表现。
较小的卷积核:尺寸使用 3x3 卷积核既能减小参数数量,又能保持较大的感受野(通过多层堆叠实现),这使得模型能够捕捉细粒度特征。
局限性:
参数量大、模型较重:VGGNet 尤其是全连接层(如两个 4096 维的全连接层)带来了大量参数,导致模型文件较大,对存储和内存要求较高。
计算资源消耗高:尽管卷积层参数较小,但由于网络深度较大,前向和反向传播计算量高,训练和推理时对 GPU 资源要求较高,速度相对较慢。
能耗和效率问题:在实际应用中,VGGNet 由于模型庞大,推理速度较慢,能耗较高,不适合资源受限或实时性要求较高的场景。
缺少跳跃连接:与ResNet 等模型相比,VGGNet 没有采用跳跃连接或残差结构,导致在训练更深网络时可能遇到梯度消失等问题。
2. R-CNN
R-CNN(Regions with CNN features) 是基于区域的卷积神经网络,是计算机视觉领域中首个成功将深度学习应用于目标检测的算法
核心思想是将目标检测任务分解为两个主要步骤:
- 候选区域生成:通过选择性搜索(Selective Search)等方法生成图像中候选区域。比如2000个候选区域
- 区域分类与定位:对每个候选区域提取特征,并使用SVM分类器判断其类别(事先定义类别集合),同时通过回归模型调整候选框的位置,使其更精确地贴合目标。
-
优点
- 首次将深度学习成功应用于目标检测,显著提高了检测精度。
- 模块化设计,易于扩展和改进。
-
缺点
- 计算复杂度高:每个候选区域都需要单独提取特征,导致训练和推理速度慢。
- 训练过程繁琐:需要分别训练 CNN、SVM 和回归模型,难以进行端到端优化。
- 存储开销大:需要保存每个候选区域的特征向量,占用大量内存
示例:
假设我们有一张街道场景的图片,图片中包含行人、汽车和交通信号灯。我们的目标是检测出图片中的所有汽车,并用边界框标记它们的位置。
3. Faster -R-CNN
是R-CNN的改进,目标是保持高精度的同时,提高检测速度
传统 R-CNN 的痛点:
- 重复计算特征:每个候选区域(RoI)都需要单独通过 CNN 提取特征,导致大量冗余计算。
- 多阶段训练:特征提取、SVM 分类器训练、边界框回归需要分别训练,流程复杂且耗时
网络结构:
-
特征提取网络(Backbone)
- 功能:提取图像的特征图(Feature Map)。
- 常用模型:VGG16、ResNet 等。
- 输出:共享的特征图,用于后续的 RPN 和检测头。
-
Region Proposal Network (RPN)
-
功能:在特征图上生成候选区域(Region Proposals)。
-
结构
- 滑动窗口:在特征图上以固定步长滑动窗口。
- 锚点(Anchors):在每个滑动窗口位置生成多个固定尺度和比例的锚点框。
- 分类分支:预测每个锚点框是否包含目标(前景/背景)。
- 回归分支:预测锚点框的偏移量,生成更精确的候选区域。
-
输出:候选区域(RoIs)。
-
-
RoI Pooling(或 RoI Align)
-
功能:将不同大小的候选区域映射到固定大小的特征图。
-
方法
- RoI Pooling:将候选区域划分为固定大小的网格,取每个网格的最大值。
- RoI Align:采用双线性插值,避免量化误差,提高定位精度。
-
-
检测头(Detection Head)
- 功能:对每个候选区域进行分类和边界框回归。
- 结构
- 全连接层:提取候选区域的特征。
- 分类分支:预测候选区域的类别。
- 回归分支:预测候选区域的边界框偏移量。
- 输出:目标类别和边界框。
4.ResNet
为了解决网络退化问题而提出的
网络退化:随着网络层数(深度)的增加,性能反而下降的现象
ResNet使用残差块:
残差块对于神经网络内部而言,假设我们的原始输入为x,而希望输出的理想映射为ƒ(x)。图示左图虚线框中的部分需要直接拟合出该映射ƒ(x),而右图虚线框中的部分则需要拟合出残差映射ƒ(x) - x。残差映射在现实中往往更容易学习和优化。如果右图虚线框内上方的加权运算(如仿射)的权重和偏置参数设成0,那么ƒ(x)即为恒等映射,这样即使残差学习为0,输出也是恒等映射,至少网络性能不会下降,从而解决网络退化问题。实际中,当理想映射ƒ(x)极接近于恒等映射时,残差映射也易于捕捉恒等映射的细微波动。右图是ResNet的基础架构——残差块(residual block)。在残差块中,输入可通过跨层数据线路更快地向前传播。
优缺点:
- 解决退化问题
- 现象:传统深层网络在增加层数时,性能可能下降(退化问题)。
- 解决:ResNet通过残差学习,允许网络通过恒等映射保持性能,即使增加层数也不会导致性能下降。
- 缓解梯度消失
- 机制:跳跃连接(Shortcut Connection)允许梯度直接传递到前层,避免了梯度在反向传播中的消失。
- 效果:使得深层网络更易于训练,收敛速度更快。
- 计算效率高
- Bottleneck结构:在ResNet-50及更深的网络中,使用了1×1卷积进行降维和升维,减少了计算量。
- 效果:使得网络在加深层数的同时,计算开销不会显著增加。
缺点:
- 模型复杂度增加
- 问题:随着网络层数的增加,模型参数数量和计算量也会增加。
- 影响:需要更多的计算资源和存储空间,尤其在移动设备或嵌入式系统上部署时可能面临挑战。
- 过拟合风险
- 现象:深层网络具有更强的表达能力,容易过拟合训练数据。
- 解决:需要使用正则化技术(如Dropout、权重衰减)或数据增强来缓解。
- 残差块设计的局限性
- 简单性:残差块仅通过相加操作融合输入和输出,可能限制了特征表达的多样性。
- 改进方向:后续的DenseNet、ResNeXt等网络通过更复杂的连接方式(如密集连接、组卷积)进一步提升了性能。
5.GooleNet
GoogLeNet(也称为Inception v1)是谷歌于2014年提出的一种深度卷积神经网络架构,在当年的ImageNet图像识别挑战赛中以显著优势夺冠。其核心思想是通过Inception模块实现多尺度特征提取,工作原理基于稀疏连接结构与计算效率优化,旨在解决传统深度网络面临的参数冗余与计算资源浪费问题。
解决的问题
-
参数冗余与计算资源浪费
- 传统网络通过增加深度提升性能,但导致参数数量激增,易引发过拟合。
- GoogLeNet通过Inception模块和全局平均池化,在保持性能的同时大幅减少参数。
-
梯度消失与训练稳定性
- 深度网络训练中,梯度易在反向传播时消失,导致模型难以收敛。
- 辅助分类器通过提供中间梯度信号,增强训练稳定性。
-
多尺度特征提取能力不足
- 传统卷积核固定大小,难以适应不同尺度的特征。
- Inception模块通过并行多尺度卷积核,增强对不同尺度特征的捕捉能力。
核心思想
-
Inception模块
- 采用并行多尺度卷积核(1×1、3×3、5×5)和池化层,在单一层内同时提取不同尺度的特征。
- 通过1×1卷积实现降维,减少计算量并增强非线性表达能力。
- 输出特征通过拼接(concatenation)融合,形成更丰富的特征表示。
-
稀疏连接结构
- 受神经科学“赫布原理”(Hebbian Principle)启发,将相关性强的特征汇聚到同一路径,减少冗余计算。
- 通过密集矩阵计算优化稀疏矩阵的存储与计算效率。
全局平均池化:
比如若输入特征图为 7×7×512(VGG16最后一个卷积层输出),输出类别为1000
全局平均池化就是将一个特征图全局池化得到一个值(特征),因此 7×7×512变为512特征
,则参数变为512*1000+1000 大约51万
而原来VGG使用全连接层,参数为7×7×512*1000+1000大概2500万
参数计算公式:参数数量=输入特征数×输出特征数+输出特征数(偏置项)
参数减小了50倍,同时Inception模块使用1*1降维也就减小了参数量
网络结构:
GoogLeNet 的创新:通过并行多尺度卷积核实现了高效的多尺度特征提取,为深层网络设计提供了新思路
当然这样设计会增加网络的复杂性,需要同时计算多个卷积分支,增加计算开销和实现难度
虽然这样可以提高精度,但是计算开销增加了,因此不是什么网络都要这样做,应该具体问题具体分析,看关注哪方面,比如resnet是2015年提出,但是没有使用gooleNet的并行多尺度卷积核,因为他关注的是解决网络退化问题,而不是特征提取的多样性
- 实验验证:ResNet 通过残差连接实现了更深网络(如 ResNet-152)的高性能,而无需依赖多尺度卷积核。
更多推荐
所有评论(0)