深度学习:DenseNet思想总结

简介: 深度学习:DenseNet思想总结

深度学习:DenseNet思想总结

前言

论文中提出的架构为了确保网络层之间的最大信息流,将所有层直接彼此连接。为了保持前馈特性,每个层从前面的所有层获得额外的输入,并将自己的特征映射传递到后面的所有层。该论文基于这个观察提出了以前馈的方式将每个层与其他层连接的密集卷积网络(DenseNet)。

DenseNet

ResNet

在原始的神经网络中,假设第l层的function 为 $H_l$,那么第l层的output $x_l=H_l(x_{l-1})$,ResNet在网络中加入了identity mapping的机制,于是$x_l = H(x_{l-1})+x_{l-1}$。
ResNet的优势是缓解了梯度消失,让训练更稳定,但是 identity mapping 采用了add 融合的机制,可能会阻碍信息流动。

Dense connection

在这里插入图片描述

为了进一步的优化信息流动,作者提出了不同的连接形式如上图,每一层的输出都会直接传递到的后面所有网络,每一层的输入汇聚了前层所有的输出,这也是densenet的dense的由来,公式如下:
$x_l= H_l([x_0,x_1......x_{l-1}])$
其中跨层连接不在像ResNet采用add融合而是Concat融合,feature map

Composite function

这里作者对H()做了一个解释:这个函数分为三个操作,包括BN层,ReLU激活函数,3 * 3 Conv。

Pooling layers

在这里插入图片描述
由于跨层连接要求feature map的宽高一致,但是down- sampling在网络中也是必不可少的,所以引入了pooling layer(也叫做 transition layer)来对feature map下采样,这个网络层由 BN层 +1 1Conv +2 2 的average pooling layers。

Growth rate

这里我们定义了一个超参数k,他表示dense block中每层的channels数(也是卷积核的数量),假设dense block中input channels 为 k0,那么这个block第 l层的channels为k0+k(l-1)。k越大,代表每一层可以获得多少新的信息,block最后output的channels也就越大,于是我们把 k也叫做 growth rate。

Bottleneck layers

bottleneck 与resent的基本一致,没3 3 的Conv前面引入了 1 1的 Conv,那么我们定一个新的结构:
BN+ReLU+ 1 1Conv + BN +ReLU +Conv3 3叫做DenseNet-B。

Compression

没了进一步压缩模型,我们可以减少feature map的数量在 transition层,如果densenet block的output为 m 个feature map,那么通过transition后,channels变为theta * m,其中 theta为0到1之间的数。作者在实验中theta设置为0.5,把bottleneck+transition 叫做 DenseNet -BC。

Implementation Details

在这里插入图片描述

总结

  1. DenseNet的跨层连接为concat,ResNet为add。
  2. DenseNet提升了梯度的利用率,loss可以获得前面每一层的梯度,网络的层数更多了。
  3. DenseNet致力于特征reuse,提高网络性能。
  4. DenseNet的dense connection有正则化的作用。
目录
相关文章
|
7月前
|
机器学习/深度学习 存储 人工智能
深度学习第1天:深度学习入门-Keras与典型神经网络结构
深度学习第1天:深度学习入门-Keras与典型神经网络结构
|
3月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN): 从理论到实践
本文将深入浅出地介绍卷积神经网络(CNN)的工作原理,并带领读者通过一个简单的图像分类项目,实现从理论到代码的转变。我们将探索CNN如何识别和处理图像数据,并通过实例展示如何训练一个有效的CNN模型。无论你是深度学习领域的新手还是希望扩展你的技术栈,这篇文章都将为你提供宝贵的知识和技能。
76 7
|
2月前
|
机器学习/深度学习 人工智能 监控
深入理解深度学习中的卷积神经网络(CNN):从原理到实践
【10月更文挑战第14天】深入理解深度学习中的卷积神经网络(CNN):从原理到实践
220 1
|
2月前
|
机器学习/深度学习 边缘计算 算法
深度学习之进化神经网络设计
基于深度学习的进化神经网络设计(Evolutionary Neural Networks, ENNs)结合了进化算法(EA)和神经网络(NN)的优点,用于自动化神经网络架构的设计和优化。
54 1
|
2月前
|
机器学习/深度学习 编解码 算法
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
48 0
|
4月前
|
机器学习/深度学习 人工智能 TensorFlow
深度学习中的卷积神经网络(CNN)原理与实践
【8月更文挑战第31天】在人工智能的浪潮中,深度学习技术以其强大的数据处理能力脱颖而出。本文将深入浅出地探讨卷积神经网络(CNN)这一核心组件,解析其在图像识别等领域的应用原理,并通过Python代码示例带领读者步入实践。我们将从CNN的基本概念出发,逐步深入到架构设计,最后通过一个简易项目展示如何将理论应用于实际问题解决。无论你是深度学习的初学者还是希望深化理解的实践者,这篇文章都将为你提供有价值的洞见和指导。
|
4月前
|
机器学习/深度学习 自然语言处理 TensorFlow
深度学习的奥秘:探索神经网络的构建与训练
【8月更文挑战第28天】本文旨在揭开深度学习的神秘面纱,通过浅显易懂的语言和直观的代码示例,引导读者理解并实践神经网络的构建与训练。我们将从基础概念出发,逐步深入到模型的实际应用,让初学者也能轻松掌握深度学习的核心技能。
|
5月前
|
机器学习/深度学习 自然语言处理 算法
深度学习的关键概念和网络结构
度学习是人工智能和机器学习的一个重要分支,它通过模拟人脑神经元的工作方式来处理复杂的模式识别和数据分析任务。深度学习已经在许多领域取得了显著的成果,如图像识别、语音识别和自然语言处理。
77 1
|
4月前
|
机器学习/深度学习 API 数据处理
《零基础实践深度学习》2.4手写数字识别之网络结构
这篇文章介绍了手写数字识别任务中网络结构设计的优化,比较了多层全连接神经网络和卷积神经网络两种模型结构,并展示了使用PaddlePaddle框架实现这些网络结构,训练并观察它们在MNIST数据集上的表现。