AlexNet学习笔记

网络结构

论文原图

AlexNet主要结构:五层卷积 + 三层全连接(不计池化层)

细化结构如下图:

 图片来源Fan2g

 从AlexNet结构中学习到:

  • 特征提取:主要是由卷积、激活函数(这里用了ReLU)和池化这三个过程堆叠而成
  • 分类:主要是由全连接、激活函数(这里用了ReLU)和 Dropout 堆叠而成
  • 一般在卷积操作或全连接操作后均需使用激活函数(这里用了ReLU)来增加非线性,之后的池化操作或 Dropout 操作非必须
  • LRN层为局部响应归一化,用于数据的标准化,其跟激活函数是有区别的,LRN一般是在激活、池化后进行的一种处理方法。LRN归一化技术首次在AlexNet模型中提出这个概念。通过实验确实证明它可以提高模型的泛化能力,但是提升的很少,以至于后面不再使用。

 从卷积操作中学习到:

  • 卷积核的输入通道数(in depth)由输入矩阵的通道数所决定。
  • 输出矩阵的通道数(out depth)由卷积核的数量所决定,卷积核数是大佬经验所得,可自行设置。
  • 卷积核的size大小一般设置为奇数×奇数

        ① 卷积核大小为奇数,可以精确对准像素点中心;

        ② 当进行valid convolution或使用full convolution时,选用奇数还是偶数的差别并不是很

             大。但是,若使用的是same convolution时就不一样了,假定步长为1,当在一个宽

             度为m的输入维度(张量)上使用宽度为k的卷积核时,same convolution就需要补k-1

             个0。如果k为奇数的话,补的这k-1个0可以在两侧对称分布,如果是偶数则不然。

  • 卷积核中的参数只有初始化,其数值随着训练中反向传播的进行不断更新,最终保存训练效果最好的参数。

 从激活函数学习到:

  • 使用激活函数主要是为了增加非线性 
  • AlexNet全部使用了ReLU代替sigmoid或tanh:

        ① ReLU具有单侧抑制性,即在输入是负值的情况下,它会输出0,那么神经元就不会被

             激活。这意味着同一时间只有部分神经元会被激活,从而使得网络很稀疏,进而对计

             算来说是非常有效率的。

        ② Sigmoid的导数只有在0附近的时候有比较好的激活性,在正负饱和区的梯度都接近

             于0,所以这会造成梯度弥散,而ReLU函数在大于0的部分梯度为常数,所以不会产

             生梯度弥散现象

从池化操作学习到:

  • 主要用于降维,通过池化操作,可以将特征图的空间维度缩小,减少模型中需要训练的参数数量,从而降低计算复杂度。
  • AlexNet 中使用层叠池化,即 poolsize > stride,这种操作非常像卷积操作,可以使相邻像素间产生信息交互和保留必要的联系。(作者在论文中证明,此操作可以有效防止过拟合的发生)。

从全连接操作学习到:

  • 全连接层通常位于网络的最后一部分,用于将前一层(通常是卷积层或池化层)的输出映射到最终的输出类别或预测结果。
  • 全连接操作需要把输入拉成一个列向量,例如:输入的feature map为3×2×2,需拉成12×1的列向量,再乘一个权重矩阵,得到输出。【网络构建完毕后,全连接层的权重矩阵就是固定的,则输入图像尺寸也必须固定,才能匹配】

从 Dropout 操作学习到:

  • Dropout 指随机失活神经元
  • 在模型训练阶段的前向传播过程中,让某些神经元的激活值以一定的概率停止工作
  • 作用:Dropout 使得神经网络的节点随机失活,这样在训练时不会使得某一节点权重过大,达到压缩权重的效果,类似L2正则化,能避免过拟合。

图片来源三方斜阳

从 softmax 学习到:

  • 归一化指数函数,一种常用的分类函数(用于多分类,二分类常用sigmoid )
  • softmax(z_{i})=\frac{e^{z_{i}}}{\sum_{j=1}^{n}e^{z_{j}}}
  • 将输出的分类结果映射到(0-1)之间

AlexNet 参数量:(论文中写的输入为224×224,但实际为227×227)

Layer NameFilterTensor SizeWeightsBiasesParameters
Input Image-227×227×3000
Conv-111×11×96,s=4,p=055×55×963×11×11×96=34,8489634,944
MaxPool-13×3,s=2,p=027×27×96000
Conv-25×5×256,s=1,p=227×27×25696×5×5×256=614,400256614,656
MaxPool-23×3,s=2,p=013×13×256000
Conv-33×3×384,s=1,p=113×13×384256×3×3×384=884,736384885,120
Conv-43×3×384,s=1,p=113×13×384384×3×3×384=1,327,1043841,327,488
Conv-53×3×256,s=1,p=113×13×256384×3×3×256=884,736256884,992
MaxPool-33×3,s=2,p=06×6×256000
FC-1-1×4096256×6×6×4096=37,748,736409637,752,832
FC-2-1×40964096×4096=16,777,216409616,781,312
FC-3-1×10004096×1000=409600010004,097,000
Output-1×1000000
Total----62,378,344

 注:全连接层的参数量占了总参数量的90%以上,对全连接层进行改进将有效减少参数量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值