首页 > 其他分享 >经典卷积神经网络LeNet&AlexNet&VGG

经典卷积神经网络LeNet&AlexNet&VGG

时间:2023-12-19 17:44:06浏览次数:35  
标签:卷积 VGG 网络 神经网络 LeNet AlexNet

LeNet

LeNet-5是一种经典的卷积神经网络结构,于1998年投入实际使用中。该网络最早应用于手写体字符识别应用中。普遍认为,卷积神经网络的出现开始于LeCun等提出的LeNet网络,可以说LeCun等是CNN的缔造者,而LeNet则是LeCun等创造的CNN经典之作网络结构图由下图所示:

 

LeNet网络总共有六层网络(不包含输入输出层),其中卷积层C3输入:S2中6个特征图组合。

其中输出特征图尺寸大小为:N=(W-F+2P)/S +1 

其中:N为输出尺寸大小,W为输入尺寸大小,F为卷积核尺寸,P为填充值大小,S为步长。

Output层也是全连接层,共有10个节点,分别代表数字0到9。如果第i个节点的值为0,则表示网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。

 

ImageNet Classification with Deep Convolutional Neural Networks卷积神经网络经典回顾之AlexNet

AlexNet是由Alex Krizhevsky等人在2012年ImageNet图像分类竞赛中提出的一种经典的卷积神经网络。当时,AlexNet在 ImageNet 大规模视觉识别竞赛中取得了优异的成绩,把深度学习模型在比赛中的正确率提升到一个前所未有的高度。 文章中的模型参加的竞赛是ImageNet LSVRC-2010,该ImageNet数据集有1.2 million幅高分辨率图像,总共有1000个类别。测试集分为top-1和top-5,并且分别拿到了37.5%和17%的错误率。这样的结果在当时已经超过了之前的工艺水平。AlexNet网络结构在整体上类似于LeNet,都是先卷积然后在全连接。但在细节上有很大不同。AlexNet更为复杂因此,它的出现对深度学习发展具有里程碑式的意义。AlexNet是在LeNet的基础上加深了网络的结构,学习更丰富更高维的图像特征。

AlexNet输入为RGB三通道的224 × 224 × 3大小的图像(也可填充为227 × 227 × 3 )。AlexNet 共包含5 个卷积层(包含3个池化)和 3 个全连接层。其中,每个卷积层都包含卷积核、ReLU激活函数和局部响应归一化(LRN)模块。第1、2、5个卷积层后面都跟着一个最大池化层,后三个层为全连接层。最终输出层为softmax,将网络输出转化为概率值,用于预测图像的类别。

 

 

1、ReLU Nonlinearity(Rectified Linear Unit)

如图是使用ReLUs和tanh作为激活函数的典型四层网络的在数据集CIFAR-10s实验中,错误率收敛到0.25时的收敛曲线,可以很明显的看到收敛速度的差距。虚线为tanh,实线是ReLUs。AlexNet 首次使用了修正线性单元(ReLU)这一非线性激活函数。相比于传统的 sigmoid 和 tanh 函数,ReLU 能够在保持计算速度的同时,有效地解决了梯度消失问题,从而使得训练更加高效。

2、Local Response Normalization(局部响应归一化)

局部响应归一化(LRN):LRN是在卷积层和池化层之间添加的一种归一化操作。在卷积层中,每个卷积核都对应一个特征图(feature map),LRN就是对这些特征图进行归一化。具体来说,对于每个特征图上的每个位置,计算该位置周围的像素的平方和,然后将当前位置的像素值除以这个和。计算过程可以用以下公式表示:

LRN本质是抑制邻近神经元的响应,从而增强了神经元的较大响应。这种技术在一定程度上能够避免过拟合,并提高网络的泛化能力。

3、Overlapping Pooling(覆盖的池化操作)

一般的池化层因为没有重叠,所以pool_size 和 stride一般是相等的,例如8 × 8 的一个图像,如果池化层的尺寸是2×2,那么经过池化后的操作得到的图像是 4 × 4大小,这种设置叫做不覆盖的池化操作,如果 stride < pool_size, 那么就会产生覆盖的池化操作,这样可以得到更准确的结果。在top-1,和top-5中使用覆盖的池化操作分别将错误率降低了0.4%和0.3%。论文中说,在训练模型过程中,覆盖的池化层更不容易过拟合。

4、防止过拟合的方法

(1)Data Augmentation(数据扩张,就是对原始数据做一些变化) 数据扩充是防止过拟合的最简单的方法,只需要对原始的数据进行合适的变换,就会得到更多有差异的数据集,防止过拟合。 AlexNet中对数据做了以下操作: 1、随机裁剪,对256×256的图片进行随机裁剪到227×227,然后进行水平翻转。测试的时候,对左上、右上、左下、右下、中间分别做了5次裁剪,然后翻转,共10个裁剪,之后对结果求平均。 2、对RGB空间做PCA(主成分分析),然后对主成分做一个(0, 0.1)的高斯扰动,也就是对颜色、光照作变换,结果使错误率又下降了1%。

(2)Dropout

Dropout背后有很多有意思的东西,但是在这里我们不需要了解太深,只需要知道Dropout是在全连接层中去掉了一些神经节点,达到防止过拟合的目的,我们可以看上面的图在第六层和第七层都设置了Dropout。

 

 

VGG (VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION)

牛津大学的视觉几何组(Visual Geometry Group)设计了 VGGNet(也称为 VGG),一种经典的卷积神经网络 (CNN) 架构。主要工作是证明了增加网络的深度能够在一定程度上影响网络最终的性能。VGG有两种结构,分别是VGG16和VGG19,两者只是网络深度不一样。 VGG16相比AlexNet的一个改进是采用连续的几个3x3的卷积核代替AlexNet中的较大卷积核(11x11,7x7,5x5)。对于给定的感受野(与输出有关的输入图片的局部大小),采用堆积的小卷积核是优于采用大的卷积核,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且参数更少。

 

VGG 具有 16 层(VGG-16)和 19 层(VGG-19)的卷积神经网络。VGG-16 由 13 个卷积层和 3 个全连接层组成(层数是计算全连接层的卷积层个数)。 VGG16相比之前网络的改进是3个3*3卷积核来代替7x7卷积核,2个3*3卷积核来代替5*5卷积核,这样做的主要目的是在保证具有相同感知野的条件下,减少参数,提升了网络的深度。

 

假设输入输出通道都为C(也就是C个卷积核):

3个3*3卷积核参数数量: 3(3*3*C*C)= 27C^2  感受野 3*3 再乘一个通道数C,再乘卷积层数C

1个7*7卷积核参数数量: 7*7*C*C = 49C^2

 

VGG优点 :

VGGNet的结构非常简洁,整个网络都使用了同样大小的卷积核尺寸(3x3)和最大池化尺寸(2x2)。 几个小滤波器(3x3)卷积层的组合比一个大滤波器(5x5或7x7)卷积层好: 验证了通过不断加深网络结构可以提升性能。

VGG缺点:

VGG耗费更多计算资源,并且使用了更多的参数,导致更多的内存占用(140M)。其中绝大多数的参数都是来自于第一个全连接层。 PS:有的文章称:发现这些全连接层即使被去除,对于性能也没有什么影响,这样就显著降低了参数数量。

 

标签:卷积,VGG,网络,神经网络,LeNet,AlexNet
From: https://www.cnblogs.com/lwx0313/p/17914114.html

相关文章

  • 基于AlexNet深度学习网络的智能垃圾分类系统matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述       基于AlexNet深度学习网络的智能垃圾分类系统是一种利用深度学习技术,对垃圾图像进行分类的系统。下面将详细介绍这种系统的原理和数学公式。 3.1、基于AlexNet深度学习网络的......
  • 基于googlenet网络的动物种类识别算法matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述       动物种类识别算法基于深度学习技术,尤其是卷积神经网络(CNN),如GoogleNet。这种算法的主要原理是通过学习和识别图像中的特征来预测动物的种类。        GoogleNet,也被......
  • 解决 keras 首次装载预训练模型VGG16 时下载失败问题
    解决:Exception:URLfetchfailureonhttps://storage.googleapis.com/tensorflow/keras-applications/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5:None--[Errno104]Connectionresetbypeer解决方案:1、先将数据集单独下载下来:models/vgg16_weights_tf_d......
  • m基于Yolov2和GoogleNet深度学习网络的疲劳驾驶检测系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:  疲劳状态:    2.算法涉及理论知识概要      疲劳驾驶检测系统是一种基于深度学习网络的系统,它结合了Yolov2和GoogleNet模型,用于检测驾驶员的疲劳状态和人脸。疲劳驾驶检测系统主要包括两个部分:人脸检测和疲劳......
  • 机器学习——使用块的网络VGG
    VGG块虽然AlexNet证明深层神经网络卓有成效,但它没有提供一个通用的模板(例如VGG块)来指导后续的研究人员设计新的网络。在下面的几个章节中,我们将介绍一些常用于设计深层神经网络的启发式概念。经典卷积神经网络的基本组成部分是下面的这个序列:带填充以保持分辨率的卷积层;......
  • 机器学习——深度卷积神经网络AlexNet
    AlexNet相对于LeNet的主要优势包括:1.更深的网络结构AlexNet有8层结构,而LeNet只有5层。网络更加深入有利于学习更抽象的高级特征。2.使用ReLU激活函数AlexNet使用ReLU激活函数,避免梯度消失问题,使得深层网络的训练更加容易。3.引入Dropout操作AlexNet在全连接层使用Dro......
  • 基于Googlenet深度学习网络的矿物质种类识别matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述       VGG在2014年由牛津大学著名研究组vGG(VisualGeometryGroup)提出,斩获该年lmageNet竞赛中LocalizationTask(定位任务)第一名和ClassificationTask(分类任务)第二名。Clas......
  • 基于Googlenet深度学习网络的信号调制类型识别matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本MATLAB2022a 3.算法理论概述      信号调制类型识别是在无线通信和无线电频谱监测中的一个重要任务。不同信号调制类型具有不同的频谱特征,深度学习方法在信号调制类型识别中取得了显著的成果。 3.1深度学习与......
  • 论文:Going Deeper with Convolutions-GoogleNet
    论文名:GoingDeeperwithConvolutions深入了解卷积了解GoogleNet研究问题:研究方法:主要结论:模型:问题:行文结构梳理:......
  • 论文:Very deep convolutional networks for large-scale image recognition-VGG
    论文名:Verydeepconvolutionalnetworksforlarge-scaleimagerecognition"用于大规模图像识别的深度卷积网络"了解VGG模型研究问题:研究方法:主要结论:模型:问题:行文结构梳理:......