Lenet、AlexNet、VGG学习

文章目录

  • 前言
  • 一、LeNet-5
  • 二、AlexNet
    • 过拟合现象
    • ZF-Net
  • 三、VGG
    • 感受野
    • 验证VGG结论


前言

机器学习基本知识——四种经典CNN学习
参考内容来自b站up主:https://space.bilibili.com/18161609


一、LeNet-5

LeNet这个网络虽然很小,但是它包含了深度学习的基本模块:卷积层,池化层,全连接层。是其他深度学习模型的基础。
它是一个7层的神经网络,包含 3 个卷积层,2 个池化层,1 个全连接层。其中所有卷积层的所有卷积核都为 5x5,步长 strid=1,池化方法都为全局 pooling,激活函数为 Sigmoid。
如今各大深度学习框架中所使用的LeNet都是简化改进过的LeNet-5,和原始的LeNet有些许不同,把激活函数改为了现在很常用的ReLu。
Lenet、AlexNet、VGG学习_第1张图片

二、AlexNet

AlexNet模型的名字来源于论⽂第一作者的姓名 Alex Krizhevsky。AlexNet 使⽤了 8 层卷积神经⽹络,并以很⼤的优势赢得了 ImageNet 2012 图像识别挑战赛冠军。
Lenet、AlexNet、VGG学习_第2张图片

该模型的特点:
(1)首次使用GPU进行网络加速训练
(2)使用随机丢弃技术(dropout)选择性地忽略训练中的单个神经元,避免模型的过拟合(也使用数据增强防止过拟合)
(3)使用LRN局部响应归一化
(4)使用ReLU激活函数,而不是传统的Sigmoid激活函数

过拟合现象

根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合函数完美预测数据训练集,但是对新数据测试集预测结果差。过度拟合了训练数据,但没有考虑泛化能力。
Lenet、AlexNet、VGG学习_第3张图片
使用Dropout就可以减少网络的过拟合作用,在网络正向传播过程中随机失活一部分神经元。
Lenet、AlexNet、VGG学习_第4张图片

ZF-Net

ZF-Net是2013ImageNet分类任务的冠军,其网络结构没什么改进,只是调了调参,性能较Alex提升了不少。ZF-Net只是将AlexNet第一层卷积核由11变成7,步长由4变为2,第3,4,5卷积层转变为384,384,256。

三、VGG

VGGNet 是由牛津大学视觉几何小组(Visual Geometry Group, VGG)提出的一种深层卷积网络结构,他们以 7.32% 的错误率赢得了 2014 年 ILSVRC 分类任务的亚军(冠军由 GoogLeNet 以 6.65% 的错误率夺得)和 25.32% 的错误率夺得定位任务(Localization)的第一名(GoogLeNet 错误率为 26.44%)。VGG可以看成是加深版本的AlexNet。
论文中的创新点提到:通过堆叠多个小卷积核来替代大尺度卷积核,可以减少训练参数,同时能保证相同的感受野。可以通过堆叠两个3×3的卷积核替代5x5的卷积核,堆叠三个3×3的卷积核替代7x7的卷积核。
Lenet、AlexNet、VGG学习_第5张图片
Lenet、AlexNet、VGG学习_第6张图片
VGG网络有多个版本,一般常用的是VGG-16模型,其网络结构如上图所示。
在这里插入图片描述

经3×3卷积的特征矩阵的尺寸是不改变的(Conv的stride为1,padding为1)

感受野

在卷积神经网络中,决定某一层输出结果中的一个元素所对应输入层的区域大小,被称作感受野。通俗解释是输出特征层上的一个单元对应输入特征层上区域的大小。
Lenet、AlexNet、VGG学习_第7张图片
以上图为例,输入层是一个9×9×1的矩阵,输出层layer3中的一个单元对应着输入层layer2的区域为2×2,对应输入层layer1的区域为5×5。
感受野的计算公式为:
F ( i ) = ( F ( i + 1 ) − 1 ) × Stride  + Ksize F(i)=(F(i+1)-1) \times \text {Stride }+\text {Ksize} F(i)=(F(i+1)1)×Stride +Ksize

  • F(i)为第 i 层感受野
  • Stride为第 i 层的步距
  • Ksize为卷积核或池化核尺寸

以上图为例

  • Feature Map:F = 1
  • Pool1 : F = (1-1)×2+2 = 2
  • Conv1 : F = (2-1)×2+3 = 5

验证VGG结论

1、堆叠两个3×3的卷积核替代5x5的卷积核,堆叠三个3×3的卷积核替代7x7的卷积核。替代前后感受野是否相同

  • Feature map: F F F = 1
  • Conv3x3(3): F = ( 1 − 1 ) × 1 + 3 = 3 \quad F=(1-1) \times 1+3=3 F=(11)×1+3=3
  • Conv3x3(2): F = ( 3 − 1 ) × 1 + 3 = 5 \quad F=(3-1) \times 1+3=5 F=(31)×1+3=5(5×5卷积核感受野)
  • Conv3x3(1): F = ( 5 − 1 ) × 1 + 3 = 7 \quad F=(5-1) \times 1+3=7 F=(51)×1+3=7(7×7卷积核感受野)

2、堆叠3×3卷积核后训练参数是否真的减少了
CNN参数个数 = 卷积核尺寸×卷积核深度 × 卷积核组数 = 卷积核尺寸 × 输入特征矩阵深度 × 输出特征矩阵深度
现假设 输入特征矩阵深度 = 输出特征矩阵深度 = C

  • 使用7×7卷积核所需参数个数: 7 × 7 × C × C = 49 C 2 7 \times 7 \times C \times C=49 C^{2} 7×7×C×C=49C2
  • 堆叠三个3×3的卷积核所需参数个数: 3 × 3 × C × C + 3 × 3 × C × C + 3 × 3 × C × C = 27 C 2 3 \times 3 \times C \times C+3 \times 3 \times C \times C+3 \times 3 \times C \times C=27 C^{2} 3×3×C×C+3×3×C×C+3×3×C×C=27C2

你可能感兴趣的:(机器学习)