爱加猫
首页/资讯中心/资讯详情/

卷积神经网络模型

LeNet

16578759461.jpg_20220715170556
模型结构:卷积层块, 全链接层块

卷积层块:2个卷积层 + 最大池化层 的结构组成。 由于LeNet是较早的CNN, 在每个卷积层 + 池化层后多会跟一个sigmod层 来修正输出结果。 而现在用的较多的是Relu。
全连接层块:输入为二维向量。 单卷积层块的输出传入全连接层的时候会对小批量对每个样本进行扁平化(flatten)
LeNet 会随着网络的加深,宽度逐渐降低,通道逐渐增多。

AlexNet

16578760381.jpg_20220715170832
模型结构:5层卷积 + 2层全连接隐藏层 + 1层全连接输出层

卷积层: 前2个用的分别是11x11和5x5的卷积核,其余的都是3x3的卷积核。 第一, 第二, 第五个卷积层后都使用了3x3,步幅为2 的最大池化层。
全连接层:2个输出个数为4096的全连接层携带着将近1GB的模型参数。
激活函数:AlexNet使用了Relu激活函数。相比于sigmod,Relu有着更简单的计算并且在不同初始化的情况下更容易训练。例如在一些特殊初始化下, sigmod在正区间的输出极度接近0, 这会导致模型很难继续更新,而Relu在正区间的值恒为1。
过拟合:AlexNet使用了丢弃法来控制模型复杂度和防止过拟合。并且它用了大量的图象增广, 包括翻转, 裁剪, 改变颜色等,来进一步防止过拟合。

VGG

16578761831.jpg_20220715171010

模型结构:VGG块 + 全连接层块

VGG块:卷积层 + 池化层, 卷积层都是用相通的填充为1,3x3的卷积核接上一个步幅为2 , 窗口为2x2的最大池化层
全连接层块:与LeNet相似
VGG是个十分对称的网络,每层都成倍的增加或者减少。相比AlexNet它提供了一种简单固定的卷积模型和深度模型的构建思路。

NiN

16578762461.jpg_20220715171054

模型结构 : NiN块

NiN块:AlexNet是用多个卷积层 + 全连接层输出的结构,NiN提出了另一种思路, 它通过将小块卷积层+“全连接”层串联组成网络。由于全连接层是二维而卷积层通常来说是四维的, 所以NiN块使用1x1的卷积层代替全连接层(期中空间维度(高宽)上的每一个元素相当于样本,通道相当于特征)。每个卷积层与AlexNet类似,都是11x11, 5x5, 3x3.并且每个NiN块后接一个步幅为2,窗口大小为3x3的最大池化层。
相比AlexNet,NiN去掉了最后3个全连接层,使用输出通道等于标签类别的NiN块, 然后使用全局平局池化层对每个通道中所有元素求平均并直接用于分类。 这个好处是可以显著减小模型参数尺寸, 但会造成训练时间的增加。

GoogLeNet

16578762971.jpg_20220715171147

Inception块:GoogLeNet的基础块,它借鉴NiN的网络串联网络的思路。 在每个Inception块中包含4条并行线路。前3条分别使用1x1, 3x3, 5x5的卷积层来抽取不通空间尺度下的特征信息, 期中第二三条线中先使用了1x1的卷积层来减少输入通道数,以降低模型复杂度。 最后一条使用3x3的最大池化层接1x1的卷积层来改变通道数。4条线都适用合适的填充来保证输入和输出的高宽一致。
16578763241.jpg_20220715171213

ResNet

残差块:一般来说对于激活函数的输入是神经网络一层层的计算的输出结果,但是由于网络的不断加深容易出现梯度不稳定(梯度爆炸,梯度消失)。随着网络的逐渐加深,误差并不会越来越小残差块的目的就是为了解决梯度不稳定。 它通过一种跳跃的连接方式让输出结果需要参考输入结果。
16578763691.jpg_20220715171257
残差块原理:a [ l + 2 ] = g ( z [ l + 2 ] + a [ l ] ) = g ( w [ l + 2 ] a [ l + 1 ] + b [ l + 2 ] a [ l ] ) a^{[l+2]}=g(z^{[l+2]}+a^{[l]})=g(w^{[l+2]}a^{[l+1]} + b^{[l+2]}a^{[l]})a
[l+2]
=g(z
[l+2]
+a
[l]
)=g(w
[l+2]
a
[l+1]
+b
[l+2]
a
[l]
) 我们现在不考虑 b [ l + 2 ] b^{[l+2]}b
[l+2]
, 当发生梯度消失的时候, w [ l + 2 ] = 0 w^{[l+2]}=0w
[l+2]
=0, 此时a [ l + 2 ] = g ( a [ l ] ) a^{[l+2]}=g(a^{[l]})a
[l+2]
=g(a
[l]
), 相当于把第一层的输出直接经过Relu输出。并不会因为梯度消失产生负面的影响。

DenseNet

16578764181.jpg_20220715171348
模型结构:稠密层 + 过渡层

稠密层:DenseNet和ResNet十分相似,区别在于DenseNet不像ResNet将前一个模块的输出直接加到模块的输出上而是直接在通道上进行叠加
过渡层:为了防止通道数一直叠加导致模型复杂度过大,过渡层通过使用1x1的卷积层减小通道数,并使用步幅为2的平均池化层减半高宽进一步降低复杂度。
————————————————
版权声明:本文为CSDN博主「Kevin小鲨鱼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Kevin_Carpricron/article/details/124070006

最新算法

  • 摔倒识别
    摔倒识别
  • 条烟识别
    条烟识别
  • 盒烟识别
    盒烟识别
  • 聚众识别
    聚众识别
  • 打架斗殴识别
    打架斗殴识别

最新场景

  • 智慧烟草
    智慧烟草
  • 智慧园区
    智慧园区
  • 智慧社区
    智慧社区
  • 智慧金融
    智慧金融
  • 智慧化工
    智慧化工

最新芯片

  • 英伟达(NVIDIA)
    英伟达(NVIDIA)
  • 瑞芯微(Rock Chips)
    瑞芯微(Rock Chips)
  • 海思(HISILICON)
    海思(HISILICON)
  • 华为昇腾(Ascend)
    华为昇腾(Ascend)
  • 寒武纪(Cambricon)
    寒武纪(Cambricon)

最新硬件

  • AI智能摄像头
    AI智能摄像头
  • AI边缘设备终端
    AI边缘设备终端
  • AI服务器
    AI服务器

最新软件

  • AI算法云端管理平台
    AI算法云端管理平台
  • AI算法端侧管理平台
    AI算法端侧管理平台