深度学习: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有正则化的作用。
目录
相关文章
|
人工智能 物联网
AI 绘画Stable Diffusion 研究(十七)SD lora 详解(上)
AI 绘画Stable Diffusion 研究(十七)SD lora 详解(上)
2435 0
|
数据采集 机器学习/深度学习 PyTorch
PyTorch 与计算机视觉:实现端到端的图像识别系统
【8月更文第29天】计算机视觉是人工智能领域的重要分支之一,其应用广泛,从自动驾驶汽车到医学影像分析等。本文将介绍如何使用 PyTorch 构建和训练一个端到端的图像分类器,并涵盖数据预处理、模型训练、评估以及模型部署等多个方面。
334 1
|
消息中间件 NoSQL 关系型数据库
一文彻底搞定Redis与MySQL的数据同步
【10月更文挑战第21天】本文介绍了 Redis 与 MySQL 数据同步的原因及实现方式。同步的主要目的是为了优化性能和保持数据一致性。实现方式包括基于数据库触发器、应用层双写和使用消息队列。每种方式都有其优缺点,需根据具体场景选择合适的方法。此外,文章还强调了数据同步时需要注意的数据一致性、性能优化和异常处理等问题。
2519 0
|
机器学习/深度学习 人工智能 算法
【专家系统】系统地掌握专家系统的基本概念、技术原理、实现方法以及应用实践。
专家系统是一种人工智能程序,它利用专家知识和推理能力来解决特定领域中的复杂问题,系统地掌握专家系统的基本概念、技术原理、实现方法以及应用实践。
1272 1
|
JavaScript Serverless 网络架构
Next.js与SSR:构建高性能服务器渲染应用
创建Next.js项目使用`create-next-app`,每个页面自动支持SSR。动态路由如`pages/posts/[id]`,在`getStaticPaths`和`getServerSideProps`中获取数据。利用静态优化和预渲染提升性能,动态导入减少初始加载时间。使用`next/image`优化图片,自定义服务器增加控制,集成第三方库如Redux。优化SEO,利用i18n支持多语言,使用Serverless模式和Web Workers。项目支持TypeScript,创建`_error.js`处理错误,部署到Vercel并使用工具进行性能监控和优化。
411 4
|
机器学习/深度学习 搜索推荐 Python
L2范数(L2 norm)
L2范数(L2 norm),也称为欧几里德范数(Euclidean norm)或2-范数,是向量元素的平方和的平方根。它在数学和机器学习中经常被用作一种正则化项、距离度量或误差度量。
10396 76
|
Unix Linux Nacos
分布式系列教程(45) -安装Nacos(Docker或安装包)
分布式系列教程(45) -安装Nacos(Docker或安装包)
258 1
|
Java API 数据库
Squirrel(松鼠)状态机的介绍及使用
Squirrel(松鼠)状态机的介绍及使用
3680 1
Squirrel(松鼠)状态机的介绍及使用
|
Ubuntu 自动驾驶 机器人
ROS优缺点
ROS优缺点
352 0