• 深度学习经典网络 -- Inception系列(稀疏结构)


    深度学习经典网络总结


    前言

    AlexNet和VGG等经典网络都是通过增加网络深度来提升性能,而Inception系列网络另辟蹊径,通过增加宽度获取稀疏的网络结构,并通过引入1×1卷积控制计算量,平衡性能与效率。Inception系列网络的第一代为GoogLeNet,后续的版本均基于第一代进行改进,包括BN、3×3卷积替代5×5卷积、卷积核分解和引入残差连接等。

    1. GoogLeNet

    论文:Going deeper with convolutions

    1.1 Motivation

    • 移动端和嵌入式计算对算法的效率有要求–>考虑设计一个计算量小的模型;
    • 提升网络性能最直接的方法是增大其规模,但是单纯地增加网络深度和宽度会带来两个问题:更容易过拟合,大幅增加计算量 —>设计稀疏结构

    1.2 亮点

    • 设计原则:
      Hebbian理论:两个神经元或者神经元系统,如果总是同时被激发,就会形成联合,其中一个神经元的激发会促进另一个的激发。
      这里引用一下赫布理论中的一个观点:“就像管弦乐队的一个不合拍的演奏者一样,如果神经元上的一个突触不能和其他的突触同步激发,就会被当作蹩脚的角色剔除。但是那些同步激发的突触 - 其强度足以使神经元发放动作电位 - 就会被强化。这样一来,大脑根据神经冲动流的方向,发展神经回路,逐步精化和完善,建立起大脑神经元间的网络联系。” 这么一看,其实人类的成长过程就是通过不断学习来完善大脑神经元中的联系,那是不是学习和思考得越多所开发的神经元就越多呢?(神经学科太迷人了!)
      在人工神经网络中,当某个数据集的概率分布能够由一个非常大、非常稀疏的深度神经网络所表达时,通过分析最后一层激活情况的相关统计量,并聚类输出高度相关的神经元,逐层构建最优网络拓扑,这种思想恰好与赫布理论相照应!
      直觉上的多尺度:网络同一层使用不同尺寸的卷积能够获取不同尺度的特征。
      在这里插入图片描述

    • 借鉴了NIN中提出的1×1卷积全局平均池化:大量使用1×1卷积降低通道维度,减少计算量,同时增加网络深度;使用全局平均池化代替多个全连接层,结构稀疏,计算量也大幅降低。
      在这里插入图片描述

    • 辅助分类器:由于当时没有残差连接,22层网络的梯度回传比较困难,考虑到AlexNet这样的浅层网络也具有强大的分类能力,那么深层网络的中间层输出也应该具有很强的区分性,因此作者在第11层和第17层分别添加一个辅助分类器来帮助梯度回传,并具有一定的正则化效果。

    2. BN-Inception

    论文:Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

    3. Inception v2 & v3

    论文:Rethinking the Inception Architecture for Computer Vision
    设计v2和v3的主要动机还是提高计算效率和减小计算量,相比v1,有以下改进:

    • 卷积分解
      在这里插入图片描述

    • 标签平滑
      分类问题一般采用交叉熵损失函数,其形式为:
      在这里插入图片描述
      其中: p ( k ) p(k) p(k)为样本属于类别 k k k的概率, q ( k ) q(k) q(k)为gt的分布。
      假设预测的概率为: 0.1,0.2,0.7
      真实标签的one-hot编码为: 0, 0, 1
      l C E = − ( l o g ( 0.7 ) ∗ 1 ) l_{CE}=-(log(0.7)*1) lCE=(log(0.7)1),可以看到参与loss计算的只有 q ( k ) = 1 q(k)=1 q(k)=1时对应的预测概率,这样的计算方式会导致两个问题:
      ①可能会导致过拟合:如果模型学习的目的时为每个训练样本的gt标签分配全概率,那么它就不能保证泛化;
      ②从直觉上来看,模型对其预测变得过于自信。

      加入标签平滑的gt分布如下:
      在这里插入图片描述
      ϵ = 0.1 \epsilon=0.1 ϵ=0.1时,原先经过one-hot编码的标签分布由 0, 0, 1变为0.05, 0.05,0.9,此时 l C E = − ( l o g ( 0.1 ) ∗ 0.05 + l o g ( 0.2 ) ∗ 0.05 + l o g ( 0.7 ) ∗ 0.9 ) l_{CE}=-(log(0.1)*0.05+log(0.2)*0.05+log(0.7)*0.9) lCE=(log(0.1)0.05+log(0.2)0.05+log(0.7)0.9),降低了模型对标签的自信度(由1变为了0.9),增强泛化能力。

    • 加入BN(参照BN-Inception)

    • 使用RMSProp优化器

    Inception-v2&v3网络结构(Inception-v3是在v2的基础上增加了RMSProp、标签平滑、7×7卷积分解、辅助分类器的全连接层使用BN):
    在这里插入图片描述
    在这里插入图片描述

    4. Inception v4 & Inception ResNet

    论文:Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

    5. Xception

    论文:Xception: Deep Learning with Depthwise Separable Convolutions

  • 相关阅读:
    k8s containerd集群配置安装完整踩坑教程
    【云服务器选型指南:五大关键】
    【JavaScript 19】Array对象
    【Maui正式版】创建可跨平台的Maui程序,以及有关依赖注入、MVVM双向绑定的实现和演示...
    Win10下安装CARLA
    软考中级有用吗?
    搭建本地MQTT服务器
    UiPath:一家由生成式AI驱动的流程自动化软件公司
    python基础简介
    NIO原理浅析(三)
  • 原文地址:https://blog.csdn.net/zxdd2018/article/details/126081868