深度/机器学习基础知识要点:CNN、ResNet、DenseNet

CNN(卷积神经网络)

  • 示意图:
    深度/机器学习基础知识要点:CNN、ResNet、DenseNet_第1张图片

  • 网络架构
    一个卷积神经网络由若干卷积层、Pooling层、全连接层组成。

    常用架构模式为:
    INPUT -> [[CONV]*N -> POOL?]*M -> [FC]*K

  • CONV层输出值的计算

    • 步长为1时的公式
      在这里插入图片描述
      其中, A A A 是卷积层输出的feature map,D 是深度

    • 动态计算过程

      深度/机器学习基础知识要点:CNN、ResNet、DenseNet_第2张图片

  • Pooling层输出值的计算
    Pooling层主要的作用是下采样,通过去掉Feature Map中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是Max Pooling。Max Pooling实际上就是在n*n的样本中取最大值,作为采样后的样本值。
    常用的还有Mean Pooling——取各样本的平均值。

    • Max Pooling计算过程:
      深度/机器学习基础知识要点:CNN、ResNet、DenseNet_第3张图片

ResNet

ResNet全名Residual Network残差网络。

  • 问题
    因为简单地增加网络层数会导致梯度消失和梯度爆炸,因此,人们提出了正则化初始化和中间的正则化层(Batch Normalization),但是 又引发了另外一个问题——退化问题,即随着网络层数地增加,训练集上的准确率却饱和甚至下降。

  • shortcut connection
    ResNet 的核心思想是引入一个所谓的「恒等快捷连接」(identity shortcut connection),直接跳过一个或多个层,如下图所示: 深度/机器学习基础知识要点:CNN、ResNet、DenseNet_第4张图片

  • ResNet 架构
    深度/机器学习基础知识要点:CNN、ResNet、DenseNet_第5张图片

DenseNet

Dense Convolutional Network

  • DenseNet的优点

    1.减轻了梯度消失

    2.加强了feature的传递

    3.加强了feature的重用

    4.一定程度上减少了参数数列

  • Dense Block

    核心思想是Dense Block,在每一个Dense Block中,任何两层之间都有直接的连接,也就是说,网络每一层的输入都是前面所有层输出的并集,而该层所学习的特征图也会被直接传给其后面所有层作为输入。通过密集连接,缓解梯度消失问题,加强特征传播,鼓励特征复用,极大的减少了参数量。
    在这里插入图片描述 两个Dense Block之间使用Batch+1x1Conv+2x2AvgPool作为transition layer的方式来匹配特征图的尺寸。 这样就充分利用了学习的特征图,而不会使用零填充来增加不必要的外在噪声,或者使用1x1Conv+stride=2来采样已学习到的特征(stride=2会丢失部分学习的特征)。

  • DenseNet的主体框架pytorch在ImageNet数据集上的实现
    在这里插入图片描述

    在每个Dense Block内部采用了密集连接,而在相邻的Dense Block之间采用的时Conv+Pool的方式

你可能感兴趣的:(深度学习,人工智能)