当前位置: 首页 > news >正文

坪山网站建设多少钱dede网站模板客

坪山网站建设多少钱,dede网站模板客,电视台网站模版,组建一个网站开发团队需要多少钱第一节.基础骨干网络 物体分类是计算机视觉#xff08;computer vision#xff0c;CV#xff09;中最经典的、也是目前研究得最为透彻的一 个领域#xff0c;该领域的开创者也是深度学习领域的“名人”级别的人物#xff0c;例如 Geoffrey Hinton、Yoshua Bengio 等。物…第一节.基础骨干网络 物体分类是计算机视觉computer visionCV中最经典的、也是目前研究得最为透彻的一 个领域该领域的开创者也是深度学习领域的“名人”级别的人物例如 Geoffrey Hinton、Yoshua Bengio 等。物体分类常用的数据集有手写数字识别数据集 MNIST、物体识别数据集 CIFAR-10 10 类和类别更多的 CIFAR-100100 类以及超大数据集 ImageNet。ImageNet 是由李飞飞教 授主导的 ILSVRCImageNet Large Scale Visual Recognition Challenge中使用的数据集每年的 ILSVRC此处指 ILSVRC 的物体分类任务中产生的网络也指引了分类网络的发展方向。 2012 年第三届 ILSVRC 的冠军作品 Hinton 团队的 AlexNet将 2011 年的 top-5 错误率从 25.8% 降低到 16.4%。他们的最大贡献在于验证了卷积操作在大数据集上的有效性从此物体分类 进入了深度学习时代。 2013 年ILSVRC 已被深度学习算法“霸榜”冠军作品 ZFNet 使用了更深的深度并且其论 文给出了卷积神经网络CNN的有效性的初步解释。 2014 年是深度学习领域分类算法“井喷式”发展的一年在物体检测方向也是如此。这一届 ILSVRC 物体分类任务的冠军作品是 Google 团队提出的 GoogLeNettop-5 错误率7.3%亚军作 品则是牛津大学的 VGGtop-5 错误率8.0%但是在物体检测任务中 VGG 击败了 GoogLeNet。 VGG 利用的搭建 CNN 的思想现在来看依旧具有指导性例如按照降采样的分布对网络进行分块 使用小卷积核每次降采样之后特征图feature map的数量加倍等等。另外 VGG 使用了当初 贾扬清提出的 Caffe 作为深度学习框架并开源了其模型凭借比 GoogLeNet 更快的特性VGG 很 快占有了大量的市场尤其是在物体检测领域。VGG 也凭借增加深度来提升精度的思想将 CNN 推 上了“最高峰”。GoogLeNet 则从特征多样性的角度研究了 CNN 结构GoogLeNet 的特征多样性是 基于一种并行的、使用了多个不同尺寸的卷积核的 Inception 单元来实现的。GoogLeNet 的最大贡 献在于指出 CNN 精度的增加不仅仅可以依靠深度实现增加网络的复杂性也是一种有效的策略。 2015 年的 ILSVRC 的冠军作品是何恺明等人提出的残差网络top-5 错误率3.57%。他们指 出 CNN 的精度并不会随着深度的增加而增加导致此问题的原因是网络的退化问题。残差网络 的核心思想是通过向网络中添加直接映射跳跃连接的方式解决退化问题进而使构建更深的 CNN 成为可能。残差网络的简单易用的特征使其成为目前使用最为广泛的网络结构之一。 2016 年 ILSVRC 的前几名作品都是通过模型集成实现的CNN 的结构创新陷入了短暂的停滞。 当年的冠军作品是商汤公司和香港中文大学联合推出的 CUImage它是 6 个模型的集成并无创 新性此处不赘述。2017 年是 ILSVRC 的最后一届这一届的冠军是 Momenta 团队他们提出了 基于注意力机制的 SENettop-5 错误率2.21%其通过自注意力self-attention机制为每个特 征图计算出一个权重。另外一个非常重要的网络是黄高团队于 CVPR 2017 提出DenseNet.。 由于 Transformer 在自然语言处理 natural language processing NLP 任务上取得的突破性进 展将 Transformer 应用到分类网络成为近年来非常火热的研究方向比较有代表性的包括 iGPT 、 ViT、 Swin Transformer 以及混合使用 CNN 和 Transformer 的 CSWin Transformer 。 1.1起源LeNet-5 和 AlexNet 1.1.1 从 LeNet-5 开始 使用 CNN 解决图像分类问题可以往前追溯到 1998 年 LeCun 发表的论文 1 其中提出了用于解 决手写数字识别问题的 LeNet 。 LeNet 又名 LeNet-5 是因为在 LeNet 中使用的均是 5 × 5 的卷积核。 LeNet-5 的网络结构如图 1.1 所示。        LeNet-5 中使用的结构直接影响了其后的几乎所有 CNN 卷积层 降采样层 全连接层至今仍 然是最主流的结构。卷积操作使网络可以响应和卷积核形状类似的特征而降采样操作则使网络拥 有了一定程度的不变性。下面我们简单分析一下 LeNet-5 的网络结构。         输入 32 × 32 的手写数字数据集中共 10 类的黑白图片。          C1 C1 层使用了 6 个卷积核每个卷积核的大小均是 5 × 5 pad 0 stride 1 有效卷积与 有效卷积对应的是 same 卷积激活函数使用的是 tanh双曲正切表达式为式1.1 tanh 激 活函数的值域是 ( − 1,1) 。所以在第一次卷积之后特征图的大小变为 28 × 28 (32 − 5 1)/1 28 该层共有 28 × 28 × 1 × 6 4 704 个神经元。加上偏置该层共有 (5 × 5 1) × 6 156 个参数。 S2 S2 层是 CNN 常使用的降采样层。在 LeNet-5 中降采样的过程是将窗口内的 3 个输入相 加乘一个可训练参数再加上一个偏置。经过 S2 层特征图的大小缩小变成 14 × 14 。该层共有 14 × 14 × 6 1 176 个神经元参数数量是 (1 1) × 6 12 。 C3 C3 层跟 S2 层并不是密集连接的具体连接方式是 C3 层的前 6 个特征图以 S2 层中 3 个相邻的特征图子集为输入接下来 6 个特征图以 S2 层中 4 个相邻特征图子集为输入然后的 3 个特征图以不相邻的 4 个特征图子集为输入最后一个特征图以 S2 层中所有特征图为输入如 图 1.2 所示。这两个层采用的稀疏连接的方式已被抛弃目前普遍使用的是密集连接或轻量级网 络中使用的深度可分离卷积、分组卷积。 图 1.2 LeNet-5 中 C3 层和 S2 层的连接方式 C3 层包括 16 个大小为 5 × 5、通道数为 6 的 same 卷积pad 0stride 1激活函数同样为 tanh。一次卷积后特征图的大小是 10 × 10(14 − 5 1)/1 10神经元数量为 10 × 10 × 16 1 600可训练参数数量为 (3 × 25 1) × 6 (4 × 25 1) × 6 (4 × 25 1) × 3 (6 × 25 1) × 1 1 516。 S4与 S2 层的计算方法类似该层使特征图的大小变成 5 × 5共有 5 × 5 × 16 400 个神经元 可训练参数数量是 (1 1) × 16 32。 C5节点数为 120 的全连接层激活函数是 tanh参数数量是 (400 1) × 120 48 120。 F6节点数为 84 的全连接层激活函数是 tanh参数数量是 (120 1) × 84 10 164。 输出10个分类的输出层使用的是softmax激活函数如式1.2所示参数数量是(84 1) × 10 850。softmax 用于分类有如下优点 使用 Keras 搭建 LeNet-5 网络的核心代码如下其是基于 LeNet-5 网络在 MNIST 手写数字识 别数据集上的实现。完整的 LeNet-5 在 MNIST 上的训练过程见随书资料。 注意这里使用的都是密集连接没有复现 C3 层和 S2 层之间的稀疏连接。 import tensorflow as tf from tensorflow.keras import layers, models from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.callbacks import EarlyStopping, ModelCheckpointdef build_lenet5(input_shape(28, 28, 1), num_classes10):构建优化的LeNet-5模型Args:input_shape: 输入图像尺寸num_classes: 分类类别数Returns:Keras模型实例model models.Sequential()# 第一层卷积model.add(layers.Conv2D(6, kernel_size(5,5), paddingvalid,activationrelu, input_shapeinput_shape))model.add(layers.MaxPooling2D(pool_size(2,2), strides2))# 第二层卷积model.add(layers.Conv2D(16, kernel_size(5,5), paddingvalid,activationrelu))model.add(layers.MaxPooling2D(pool_size(2,2), strides2))# 全连接层model.add(layers.Flatten())model.add(layers.Dense(120, activationrelu))model.add(layers.Dense(84, activationrelu))model.add(layers.Dense(num_classes, activationsoftmax))return model# 数据预处理配置 train_datagen ImageDataGenerator(rescale1./255,validation_split0.2 )# 加载MNIST数据集 (x_train, y_train), (x_test, y_test) tf.keras.datasets.mnist.load_data() x_train x_train.reshape(-1, 28, 28, 1).astype(float32) x_test x_test.reshape(-1, 28, 28, 1).astype(float32)# 创建数据生成器 train_generator train_datagen.flow(x_train, y_train, batch_size128) validation_generator train_datagen.flow_from_directory(path_to_validation_data, # 需要根据实际情况修改target_size(28,28),color_modegrayscale,batch_size128 )# 构建模型 model build_lenet5()# 编译模型 model.compile(optimizertf.keras.optimizers.Adam(learning_rate1e-3),losssparse_categorical_crossentropy,metrics[accuracy])# 设置早停和模型检查点 early_stop EarlyStopping(monitorval_loss, patience5) checkpoint ModelCheckpoint(best_model.h5, save_best_onlyTrue)# 训练模型 history model.fit(train_generator,steps_per_epochlen(x_train)//128,epochs50,validation_datavalidation_generator,callbacks[early_stop, checkpoint] )# 评估模型 test_loss, test_acc model.evaluate(x_test, y_test) print(f\nTest accuracy: {test_acc:.4f}) 如图 1.3 所示经过 10 个 epoch 后 LeNet-5 基本收敛。 图 1.3 LeNet-5 在 MNIST 数据集上的收敛情况 1.1.2 觉醒AlexNet LeNet-5 之后 CNN 沉寂了约 14 年。直到 2012 年 AlexNet 在 ILSVRC 中一举夺魁直接把 在 ImageNet 数据集上的精度提升了约 10 个百分点它将 CNN 的深度和宽度都提升到了传统算法无法企及的新高度。从此深度学习开始在 CV 的各个领域“披荆斩棘”至今深度学习仍是人工 智能最热门的话题。 AlexNet 作为教科书式的网络值得每个学习深度学习的人深入研究。 AlexNet 的名字取自该模型的第一作者 Alex Krizhevsky 。 AlexNet 在 ImageNet 中的 120 万张 图片的 1 000 类分类任务上的 top-1 错误率是 37.5% top-5 错误率则是 15.3% 直接比第二名的 26.2% 低了约 10 个百分点。 AlexNet 如此成功的原因是其使网络的宽度和深度达到了前所未有的 高度而该模型也使网络的可学习参数达到了 58 322 314 个。为了学习这些参数 AlexNet 并行使 用了两块 GTX 580 大幅提升了训练速度。 笔记            AlexNet 当初使用分组卷积是因为硬件资源有限 不得不将模型分到两块 GPU 上 运行。相关研究者并没有给出分组卷积的概念 而且没有对分组卷积的性能进行深入探 讨。 ResNeXt 的相关研究者则明确给出了分组卷积的定义 并证明和验证了分组卷积有 接近普通卷积的精度。 当想要使用机器学习解决非常复杂的问题时我们必须使用容量足够大的模型。在深度学习 中增加网络的宽度和深度会提升网络的容量但是提升容量的同时也会带来两个问题 计算资源的消耗 模型容易过拟合。 计算资源是当时限制深度学习发展的瓶颈 2011 年 Ciresan 等人提出了使用 GPU 部署 CNN 的 技术框架 1 由此深度学习得到了可以解决其计算瓶颈问题的硬件支持。 下面来详细分析一下 AlexNet 。 AlexNet 的网络结构如图 1.4 所示。 图 1.4 AlexNet 的网络结构 AlexNet 基于 Keras 的实现代码如下。 # 构建 AlexNet 网络 model Sequential () model . add ( Conv2D ( input_shape ( 227 , 227 , 3 ), strides 4 , filters 96 , kernel_size ( 11 , 11 ), padding valid , activation relu )) model . add ( BatchNormalization ()) model . add ( MaxPool2D ( pool_size ( 3 , 3 ), strides 2 )) model . add ( Conv2D ( filters 256 , kernel_size ( 5 , 5 ), padding same , activation relu )) model . add ( BatchNormalization ()) model . add ( MaxPool2D ( pool_size ( 3 , 3 ), strides 2 )) model . add ( Conv2D ( filters 384 , kernel_size ( 3 , 3 ), padding same , activation relu )) model . add ( BatchNormalization ()) model . add ( Conv2D ( filters 384 , kernel_size ( 3 , 3 ), padding same , activation relu )) model . add ( BatchNormalization ()) model . add ( Conv2D ( filters 256 , kernel_size ( 3 , 3 ), padding same , activation relu )) model . add ( BatchNormalization ()) model . add ( MaxPool2D ( pool_size ( 2 , 2 ), strides 2 )) model . add ( Flatten ()) model . add ( Dense ( 4096 , activation tanh )) model . add ( Dropout ( 0.5 )) model . add ( Dense ( 4096 , activation tanh )) model . add ( Dropout ( 0.5 )) model . add ( Dense ( 10 , activation softmax )) model . summary () 根据 Keras 提供的 summary() 函数可以得到图 1.5 所示的 AlexNet 的参数数量的统计结果 1 计算方法参照 LeNet-5 不赘述。 1多 GPU 训练 首先对比图 1.1 和图 1.4 我们发现 AlexNet 将网络分成了两个部分。由于当时显卡的显存大小 有限因此作者使用了两块 GPU 并行训练模型例如第二个卷积图 1.4 中通道数为 128 的卷积只使用一个 GPU 自身显存中的特征图而第三个卷积需要使用另外一个 GPU 显存中的特征图。不过 得益于 TensorFlow 等开源框架对多机多卡的支持和显卡显存的提升 AlexNet 部署在单块 GPU 上已 毫无压力所以这一部分就不赘述。 2ReLU 在 LeNet-5 中使用了 tanh 作为激活函数 tanh 的函数曲线如图 1.6 所示。 tanh 是一个以原点为中心点、值域为 ( − 1,1) 的激活函数。在反向传播过程中局部梯度会与整个损失函数关于该 局部输出的梯度相乘。当 tanh( x ) 中的 x 的绝对值比较大的时候该局部的梯度会非常接近于 0 在深度学习中该现象叫作“饱和”。同样另一个常用的 sigmoid 激活函数也存在饱和的现象。 sigmoid 的函数如式 1.3 所示函数曲线如图 1.7 所示。 Model: sequential _________________________________________________________________ Layer (type)                 Output Shape              Param #    conv2d (Conv2D)              (None, 224, 224, 32)      896        _________________________________________________________________ max_pooling2d (MaxPooling2D) (None, 112, 112, 32)      0          _________________________________________________________________ conv2d_1 (Conv2D)            (None, 112, 112, 64)      18496      _________________________________________________________________ max_pooling2d_1 (MaxPooling2 (None, 56, 56, 64)        0          _________________________________________________________________ conv2d_2 (Conv2D)            (None, 56, 56, 128)       73856      _________________________________________________________________ max_pooling2d_2 (MaxPooling2 (None, 28, 28, 128)       0          _________________________________________________________________ conv2d_3 (Conv2D)            (None, 28, 28, 256)       295168     _________________________________________________________________ max_pooling2d_3 (MaxPooling2 (None, 14, 14, 256)       0          _________________________________________________________________ flatten (Flatten)            (None, 50176)             0          _________________________________________________________________ dense (Dense)                (None, 4096)              205524992  _________________________________________________________________ dropout (Dropout)            (None, 4096)              0          _________________________________________________________________ dense_1 (Dense)              (None, 4096)              16781312   _________________________________________________________________ dropout_1 (Dropout)          (None, 4096)              0          _________________________________________________________________ dense_2 (Dense)              (None, 1000)              4097000    Total params: 226,791,720 Trainable params: 226,791,720 Non-trainable params: 0 _________________________________________________________________   表1.5  通过 Keras 的 summary() 函数得到的 AlexNet 参数数量 #!/usr/bin/env python #-*- coding: utf-8 -*-import tensorflow as tf from tensorflow.keras import layers, modelsdef build_alexnet(input_shape(224, 224, 3), num_classes1000):构建AlexNet模型model models.Sequential()# 第1层卷积 池化model.add(layers.Conv2D(32, kernel_size(3, 3), paddingsame, activationrelu,input_shapeinput_shape))model.add(layers.MaxPooling2D(pool_size(2, 2), strides2))# 第2层卷积 池化model.add(layers.Conv2D(64, kernel_size(3, 3), paddingsame, activationrelu))model.add(layers.MaxPooling2D(pool_size(2, 2), strides2))# 第3层卷积 池化model.add(layers.Conv2D(128, kernel_size(3, 3), paddingsame, activationrelu))model.add(layers.MaxPooling2D(pool_size(2, 2), strides2))# 第4层卷积 池化model.add(layers.Conv2D(256, kernel_size(3, 3), paddingsame, activationrelu))model.add(layers.MaxPooling2D(pool_size(2, 2), strides2))# 全连接层model.add(layers.Flatten())model.add(layers.Dense(4096, activationrelu))model.add(layers.Dropout(0.5))model.add(layers.Dense(4096, activationrelu))model.add(layers.Dropout(0.5))model.add(layers.Dense(num_classes, activationsoftmax))return model# 构建模型并打印参数统计 alexnet build_alexnet(input_shape(224, 224, 3)) alexnet.summary() 图 1.6 tanh 的函数曲线 图 1.7 sigmoid 的函数曲线 饱和现象带来了一个深度学习中非常严重的问题那便是 梯度消失 。梯度消失是由反向传播中 链式法则的乘法特性导致的反映在深度学习的训练过程中便是越接近损失函数的参数梯度越大 从而使得这一部分参数成为主要学习的参数而远离损失函数的参数的梯度则非常接近 0 导致几 乎没有梯度传到这一部分参数从而使得这一部分参数很难学习到。 为了解决这个问题 AlexNet 引入了 ReLU 激活函数如式 1.4 所示。 ReLU 的函数曲线如图 1.8 所示。 在 ReLU 中无论 x 的取值有多大 f ( x ) 的导数都是 1 也就不存在导数小于 1 导致的 梯度消失 的现象了。图 1.9 所示的是我们在 MNIST 数据集上根据 LeNet-5 使用 tanh 和 ReLU 两个激活函数得到的不同模型的收敛情况旨在对比两个不同的激活函数的模型效果。 图 1.8 ReLU 的函数曲线 图 1.9 LeNet-5 使用不同激活函数的收敛情况 此外由于 ReLU 将小于 0 的部分全部置 0 因此 ReLU 的另外一个特点就是具有稀疏性不 仅可以优化网络的性能 还可以缓解过拟合现象。 虽然使用 ReLU 的节点不会有饱和问题但是会“死掉”即大部分甚至所有的值为负值从 而导致该层的梯度都为 0 。“死神经元”是由进入网络的负值引起的例如在大规模的梯度更新之 后可能出现减小学习率能缓解该现象。 3LRN 局部响应归一化 local response normalization LRN 模拟的是动物神经中的横向抑制效应是 一个已经被淘汰的算法。在 VGG 1 的相关论文中已经指出 LRN 并没有什么效果。在现在的网络中 LRN 已经被其他归一化方法所替代例如在上面代码中使用的批归一 batchnormalization BN 2 。 LRN 是使用同一位置临近的特征图来归一化当前特征图的值的一种方法其表达式如式 1.5 所示 其中 N 表示特征图的数量 a 是输入特征图 b 是输出特征图 ( x, y ) 是特征图上的坐标 n 5 k 2 α 0.5 β 0.75 这些值均由验证集得出。 另外 AlexNet 把 LRN 放在池化层之前这在计算上是非常不经济的一种更好的做法是把 LRN 放在池化层之后。 4. 覆盖池化Overlap Pooling 定义​ 当池化窗口的步长stride小于池化核尺寸时相邻池化核会在输入特征图上产生重叠区域这种池化方式称为覆盖池化Overlap Pooling。 原理与优势​ ​缓解过拟合通过允许特征图不同区域的重复采样增加模型对局部特征位置的鲁棒性​信息保留相比非重叠池化能减少特征信息的丢失如图1.10所示​计算效率与全连接层相比仍保持较低的计算复杂度 文献依据​ AlexNet[1]提出该技术可有效提升模型泛化能力实验表明其对模型性能的提升具有显著作用。 5. Dropout正则化 技术原理​ 在训练阶段随机将神经网络层的部分神经元权重置零通常设置比例为30%-50%测试阶段保留所有神经元。其核心思想是通过强制网络学习冗余特征增强模型的抗干扰能力。 在AlexNet中的应用​ ​实施位置全连接层的第1和第2层之间即D1和D2层​超参数配置 python model.add(layers.Dropout(0.5)) # 50%神经元随机屏蔽 有效性分析​ ​训练代价增加约15%-20%的训练时间因每次迭代需计算不同子网络 ​泛化提升 正则化方法训练集损失测试集准确率无0.01550.9826Dropout0.0735​0.9841​ ​生物学解释模拟人脑神经元的随机失活机制增强特征选择的鲁棒性 实施要点​ 应用在全连接层而非卷积层需要配合训练/测试模式切换Keras自动处理推荐与Early Stopping结合使用 图表引用说明​ 图1.10展示了添加Dropout后的损失曲线变化趋势具体数值可参见附录A的MNIST实验结果表格。 图 1.10  有 Dropout 与没有 Dropout 对比 1.2更深VGG 1. VGG网络概述 2014年牛津大学Visual Geometry Group提出的VGG网络[1]通过系统性探索CNN深度与性能关系在ImageNet ILSVRC竞赛中取得突破性成果物体分类第二名物体检测第一名。其核心创新在于采用小尺寸卷积核构建深层网络并通过模块化设计实现参数数量的渐进式增长。 2. 网络架构设计原则 2.1 模块化分层结构 ​池化层设计采用2×2最大池化层网络按池化层自然划分为多个特征块​块内特性 每个块包含连续的相同尺寸卷积层均为3×3特征图通道数逐块倍增64→128→256→512→512 ​尺寸控制机制每增加一个块特征图尺寸缩小一半通过池化层实现确保参数规模可控 2.2 参数扩展策略 参数维度扩展规则典型配置深度块数可变推荐≥16层VGG-165块宽度特征图通道数按指数增长2^N64,128,256,512卷积层数块内卷积层数可调不影响特征图尺寸常规配置3-4层/块 3. 核心技术创新 3.1 小卷积核优势 理论依据通过多层3×3卷积替代单层大卷积核如7×7在保持相同感受野rfsize (out-1)*s k的同时获得 ​深度增强三层级3×3卷积提供更复杂的特征表达​参数效率3×3卷积参数量为7×7卷积的121​不考虑填充​计算加速小卷积核更适合GPU并行计算 3.2 特征金字塔结构 ​层级特征提取通过逐层池化构建多尺度特征金字塔​决策融合全连接层整合多层级特征提升分类精度 4. 典型网络变体 网络型号总层数块数特征图尺寸演变全连接层维度VGG-1111层4块224×224 →7×74096×4096×1000VGG-1616层5块224×224 →7×74096×4096×1000VGG-1919层6块224×224 →7×74096×4096×1000 5. 实践价值分析 5.1 迁移学习能力 输入自适应通过调整池化次数适配不同分辨率数据如MNIST:28×28特征复用预训练模型参数可快速迁移到目标检测、语义分割等任务 5.2 商业应用影响 开源生态官方提供Caffe/TensorFlow等框架实现GitHub星标超50k行业部署被广泛应用于安防监控、医疗影像分析等领域 6. 性能对比ILSVRC 2014 方法准确率排名参数量(M)GoogLeNet274.8%1st22MVGG-1671.5%2nd138MAlexNet57.1%11th8.5M 7. 技术启示 ​深度优先设计证明增加网络深度比单纯扩大宽度更能提升特征表征能力​模块化工程通过标准化块结构降低网络设计复杂度​小核优势奠定了后续ResNet等网络采用小卷积核的基础 图 1.11 VGG 家族 假设特征图的数量都是 C 3 层 3 × 3 卷积核的参数数量是 3 × (3 × 31) × C 2 30 C 2 1 层 7 × 7 卷积核的参数数量是 1 × (7 × 71) × C 2 50 C 2 3 层 3 × 3 卷积核具有更少的参数。 由于神经元数量和层数的增多训练速度会变得更慢。 图 1.12 反映了 VGG 家族的各个模型的性能。 图 1.12 VGG 家族的各个模型的性能对比 图 1.13 展示了把 LeNet-5 的单层 5 × 5 卷积换成两层 3 × 3 卷积在 MNIST 上的收敛表现。论文中 的实验表明两层 3 × 3 卷积的网络确实比单层 5 × 5 卷积的网络表现好但是训练速度慢了二分之一。 另外作者在前两层的全连接处使用丢失率为 0.5 的 Dropout 然而并没有在图 1.11 中反映 出来。 2 VGG-A vs VGG-A-LRN VGG-A-LRN 比 VGG-A 多了一个 AlexNet 介绍的 LRN 层但是实验数据表明加入了 LRN 的 VGG-A-LRN 的错误率反而更高了而且 LRN 的加入会更加占用内存增加训练时间。 图 1.13  单层 5 × 5 卷积的 LeNet 与两层 3 × 3 卷积的 LeNet 对比 3. VGG系列网络变体对比分析 3.1 深度-性能关系研究 通过对VGG-A11层、VGG-B13层、VGG-D16层、VGG-E19层的实验对比观察到以下规律 模型总层数训练误差率测试误差率训练时间相对VGG-AVGG-A11-7.12%1×VGG-B13-6.81%1.2×VGG-D16-6.47%2.5×VGG-E19-6.35%4.8× 关键现象 深度增加初期错误率显著下降VGG-A→VGG-D误差率降低0.65%深度超过临界点VGG-D之后出现收益递减最深层模型VGG-E训练时间呈指数级增长 退化问题 当网络深度达到19层时出现以下异常现象 训练误差波动加剧标准差较VGG-D增加18%某些测试集上错误率反超较浅层模型如CIFAR-10数据集 3.2 结构改进方案对比 3.2.1 VGG-B与VGG-C 改进要点 在VGG-B全连接层前添加3个1×1卷积层实现通道维度从512→512→512→512的扩展 性能提升 模型测试误差率参数增量训练时间VGG-B6.81%-1.2×VGG-C6.59%1.2M1.3× 技术优势 1×1卷积在不改变感受野的条件下 增强特征空间维度实现跨通道特征加权提升非线性表达能力 3.2.2 VGG-C与VGG-D 改进方案 将VGG-C的1×1卷积替换为3×3卷积层 效果对比 模型测试误差率参数增量训练速度VGG-C6.59%1.2M1.3×VGG-D6.47%2.4M1.5× 改进结论 3×3卷积在参数效率参数增量/错误率下降上优于1×1卷积更适合捕捉局部特征相关性 3.3 模型选择准则 基于实验数据建立网络选择决策树 mermaid graph TD A[目标数据集] --|ImageNet全尺寸| B(VGG-D) A --|中小尺寸图像| C(VGG-B/C) B --|精度优先| D(VGG-E) B --|训练效率优先| E(VGG-D) C --|实时性要求| F(VGG-B) C --|特征表达需求| G(VGG-C) 4. 训练方法优化 4.1 尺度归一化策略 单尺度训练 固定短边长度S∈{256,384}等比例缩放后裁剪224×224区域 多尺度训练 S∈[256,512]随机采样引入图像尺度多样性提升鲁棒性 效果对比 方法推理速度训练误差率Single-scale1×6.67%Multi-scale0.8×6.21% 5. 实际应用建议 ​工业部署推荐 VGG-D16层在精度/计算效率间取得最佳平衡移动端场景建议使用VGG-B13层压缩版本 ​研究场景建议 对比实验优先选用VGG-B/VGG-C作为基准模型极端深度场景可尝试VGG-E配合残差连接 6. 技术演进启示 ​深度瓶颈VGG系列揭示了简单堆叠卷积层的局限性​连接革命为后续ResNet等残差网络奠定基础​核尺寸选择证明3×3卷积在参数效率和表征能力间的最优性 5.关注文章后续更新
http://www.dnsts.com.cn/news/107270.html

相关文章:

  • 免费企业官网怎么做seo是做什么工作内容
  • 青岛易龙网站建设云南网页
  • 企业网站怎么搜索优化做微商自己建网站合适吗
  • 网站建设总结经验jsp网站开发教学视频
  • 绍兴网站制作系统湖南常德邮编
  • 代做ansys网站自己开网店
  • 北京中小型网站建设北京最大做网站的公司
  • 民宿网站建设方案钟祥网站开发
  • 可以做彩字的网站网站外链有死链
  • 服装网站建设需要什么内容免费推广网站怎么做
  • 南阳网站建设赛科出于安全保障需要
  • 中卫网站推广外包服务高端网站建设公司有必要做吗
  • 网站建设目的与意义电子商务网站建设实训报告文章
  • 线上注册公司是在哪个网站互联网营销是做什么
  • 网站访问量大打不开做一家公司网站要注意哪些
  • 网站外链建设到底该怎么做石狮网站建设制作
  • wordpress模板 站长ui设计优秀案例
  • 网站设置保存登录密码怎么取消服务器搭建网站用什么系统
  • 甘肃省住房和建设厅官方网站选择大连网站建设
  • 做租凭网站是经营性吗长治网站制作教程
  • 门户网站后台管理系统开发三味风车动漫无修
  • 东莞 骏域网站建设平面设计师务所
  • 慈溪网站制作哪家最便宜长沙做官方网站
  • 阜宁网站建设公司wordpress添加视频插件
  • 成都餐饮小程序开发百度seo关键词工具
  • 网站备案法律什么是品牌vi设计
  • 团购网站发展关于单位建设网站的申请
  • 网站开发 php 书籍 推荐自己做一网站
  • 网站怎么做认证深圳网建公司
  • 高端定制网站开发网站模板设计销售管理系统设计