卷积神经网络相关模型

卷积神经网络相关模型

    • 1. CNN架构
    • 2. CNN架构模型
      • 2.1LeNet模型
      • 2.2Alexnet模型
      • 2.3VGG16模型
        • 2.3.1 使用多层小卷积核代替一层大的卷积核优点
        • 2.3.2 使用1*1卷积核优点

  • 卷积神经网络基本概念相关知识连接
    卷积神经网络基本概念相关知识连接

1. CNN架构

卷积神经网络相关模型_第1张图片

  • 模型分为2部分【卷积层,全连接层】
    • 卷积层相当于提取图像的主要特征
    • 全连接层是对提取的主要特征作为模型的分类或回归
  • CNN架构堆列一系列卷积层
  • 会有多次的卷积到池化操作
  • 在卷积之后,池化之前,会有非线性变换操作【非线性变换一般为Relu】
  • 卷积层完成后,进入全连接层
  • 在全连接之前,需要把数据reshape为二维数据,才能进入全连接层
  • 只有卷积层与全连接才需要计算参数,非线性变换层,池化层不需要计算参数

2. CNN架构模型

2.1LeNet模型

卷积神经网络相关模型_第2张图片

  • LeNet5【5代表有五层需要计算参数】

  • 模型操作步骤

    1 非线性变换 2 3 非线性变换 4 5 6 7
    操作 5*5卷积 sigmoid层 池化(平均池化) 5*5卷积 sigmoid层 池化(平均池化) 全连接层 全连接层 全连接层
  • 全连接层使用非线性tanh激活函数

  • 一共7层,【1,3,5,6,7】层需要计算参数

  • 模型特点

    • 重复使用卷积层
    • 卷积层使用非线性激活函数sigmoid
    • 全连接层使用非线性激活函数tanh
    • 池化层使用平均池化
    • 全部使用5*5大小的卷积核
    • 总需计算的参数小于1百万

2.2Alexnet模型

卷积神经网络相关模型_第3张图片

  • Alexnet8【8代表有8层需要计算参数】

  • 模型操作步骤

    1 非线性变换 2 3 非线性变换 4 5 6 7 非线性变换 8 9 10 11
    操作 11*11卷积 ReLu层 池化(最大池化) 5*5卷积 ReLu层 池化(最大池化) 3*3卷积 3*3卷积 3*3卷积 ReLu层 池化(最大池化) 全连接层 全连接层 全连接层
  • 全连接层使用非线性ReLu激活函数

  • 一共11层,【1,3,5,6,7,9,10,11】层需要计算参数

  • 模型特点

    • 重复使用卷积层
    • 全部使用非线性激活函数ReLu【卷积层与全连接层】
    • 使用11*11,5*5,3*3不同规格的卷积核
    • 池化层使用最大池化
    • 总需计算的参数大约为60百万
    • 训练模型使用了dropout,并且做了数据增强(image augmentation)【防止模型过拟合】
    • 使用双GPU并行训练
      -每个GPU各有一半的神经元, 各自进行卷积,在图1处和全连接层可进行数据相互连接

2.3VGG16模型

卷积神经网络相关模型_第4张图片

  • VGG16【16代表有16层需要计算参数】

  • 模型操作步骤

    1 2 非线性变换 3 4 5 非线性变换 6 7 8 9 非线性变换
    操作 3*3卷积 3*3卷积 ReLu层 池化(最大池化) 3*3卷积 3*3卷积 ReLu层 池化(最大池化) 3*3卷积 3*3卷积 1*1卷积 ReLu层
    10 11 12 13 非线性变换 14 15 16 17 非线性变换 18 19 20 21
    操作 池化(最大池化) 3*3卷积 3*3卷积 1*1卷积 ReLu层 池化(最大池化) 3*3卷积 3*3卷积 1*1卷积 ReLu层 池化(最大池化) 全连接层 全连接层 全连接层
  • 连续使用3*3卷积时,第二次之后使用了padding=same填充,使特征图大小不变

  • 全连接层使用非线性ReLu激活函数

  • 一共21层,【1,2,4,5,7,8,9,11,12,13,15,16,17,19,20,21】层需要计算参数

  • 模型特点

    • 全部使用非线性激活函数ReLu【卷积层与全连接层】
    • 连续使用小的卷积核
    • 池化层使用最大池化
    • 使用了1*1卷积核

2.3.1 使用多层小卷积核代替一层大的卷积核优点

  • 减少参数计算
    • 例如:使用3层3*3的卷积核代替一层7*7卷积核
      • 使用3层3*3的卷积核与一层7*7卷积核输出的特征图的大小是一致的
      • 设输入特征图个数为C,输出特征图个数也为C
        • 当进行3次3*3的卷积时,参数个数( n u m b e r 3 number3 number3)为
          n u m b e r = 3 ∗ ( 3 ∗ 3 ∗ C ∗ C ) = 27 C 2 \begin{aligned} number&=3*(3*3*C*C) \\&=27C^2 \end{aligned} number=333CC)=27C2
        • 当进行1次7*7的卷积时,参数个数( n u m b e r 7 number7 number7)为
          n u m b e r = 7 ∗ 7 ∗ C ∗ C = 49 C 2 \begin{aligned} number&=7*7*C*C \\&=49C^2 \end{aligned} number=77CC=49C2
    • n u m b e r 3 < n u m b e r 7 number3number3<number7,选择小卷积核的卷积组合能够对输入数据表达出更有力的特征,同时使用参数也更少,提高模型的泛化能力
  • 提高泛化能力
    • 在每次卷积之后,都会进行非线性转换,多次卷积,就会增加非线性次数,提高泛化能力
    • 例如:使用3层3*3的卷积核比一层7*7卷积核多一次非线性转换

2.3.2 使用1*1卷积核优点

  • 优点
    • 升维与降维
      • 1*1卷积层不会改变卷积核的大小,只会改变通道数,调整通道数,控制模型复杂度【升维,降维】
        • 通道数比卷积前小,是对数据降维,降低模型复杂度
        • 通道数比卷积前大,是对数据升维,增加模型复杂度
    • 增加非线性变换
    • 可以替代全连接层【通道数就是神经元的个数】
    • 当作池化层
      • 使用1*1卷积核,当输入输出的特征图个数一致时,设置步长(stride),也可以代替池化层【相当于改变特征图的大小】

你可能感兴趣的:(深度学习,深度学习,AlexNet,vgg16,LetNet,CNN架构)