一些术语:

backbone这个单词原意指的是人的脊梁骨,后来引申为支柱,核心的意思。在神经网络中,尤其是CV领域,一般先对图像进行特征提取(常见的有vggnet,resnet,谷歌的inception),这一部分是整个CV任务的根基,因为后续的下游任务都是基于提取出来的图像特征去做文章(比如分类,生成等等)。所以将这一部分网络结构称为backbone十分形象,仿佛是一个人站起来的支柱。

1.backbone:翻译为主干网络的意思,既然说是主干网络,就代表其是网络的一部分,那么是哪部分呢?翻译的很好,主干部分,哈哈哈哈,文字游戏了哈。这个主干网络大多时候指的是提取特征的网络,其作用就是提取图片中的信息,共后面的网络使用。这些网络经常使用的是resnet VGG等,而不是我们自己设计的网络,因为这些网络已经证明了在分类等问题上的特征提取能力是很强的。在用这些网络作为backbone的时候,都是直接加载官方已经训练好的模型参数,后面接着我们自己的网络。让网络的这两个部分同时进行训练,因为加载的backbone模型已经具有提取特征的能力了,在我们的训练过程中,会对他进行微调,使得其更适合于我们自己的任务。
2.head:head是获取网络输出内容的网络,利用之前提取的特征,head利用这些特征,做出预测。
3.neck:是放在backbone和head之间的,是为了更好的利用backbone提取的特征4.bottleneck:瓶颈的意思,通常指的是网网络输入的数据维度和输出的维度不同,输出的维度比输入的小了许多,就像脖子一样,变细了。经常设置的参数 bottle_num=256,指的是网络输出的数据的维度是256 ,可是输入进来的可能是1024维度的。
5.GAP:在设计的网络中经常能够看到gap这个层,我之前不知道是干啥的,后了解了,就是Global Average Pool全局平均池化,就是将某个通道的特征取平均值,经常使用AdaptativeAvgpoold(1),在pytorch中,这个代表自适应性全局平均池化,说人话就是将某个通道的特征取平均值self.gap = nn.AdaptiveAvgPool2d(1)
6.Embedding: 深度学习方法都是利用使用线性和非线性转换对复杂的数据进行自动特征抽取,并将特征表示为“向量”(vector),这一过程一般也称为“嵌入”(embedding)
7.用于预训练的任务被称为前置/代理任务(pretext task),用于微调的任务被称为下游任务(downstream task)
8.temperature parameters
在论文中经常能看到这个温度参数的身影,那么他都有什么用处呢?比如经常看到下面这样的式子:里面的beta就是temperature parameter,他在运算的时候起到什么作用呢?是这样的,他可以起到平滑softmax输出结果的作用,举例子如下:

import torch
x = torch.tensor([1.0,2.0,3.0])
y = torch.softmax(x,0)
print(y)
x1 = x / 2  # beta 为2
y = torch.softmax(x1,0)
print(y)
x2 = x/0.5  # beta 为0.5
y = torch.softmax(x2,0)
print(y)

输出结果如下:

tensor([0.0900, 0.2447, 0.6652])
tensor([0.1863, 0.3072, 0.5065])
tensor([0.0159, 0.1173, 0.8668])

当beta>1的时候,可以将输出结果变得平滑,当beta<1的时候,可以让输出结果变得差异更大一下,更尖锐一些。如果beta比较大,则分类的crossentropy损失会很大,可以在不同的迭代次数里,使用不同的beta数值,有点类似于学习率的效果。
9.热身Warm up。Warm up指的是用一个小的学习率先训练几个epoch,这是因为网络的参数是随机初始化的,一开始就采用较大的学习率容易数值不稳定。
10 end to end 在论文中经常能遇到end to end这样的描述,那么到底什么是端到端呢?其实就是给了一个输入,我们就给出一个输出,不管其中的过程多么复杂,但只要给了一个输入,机会对应一个输出。比如分类问题,你输入了一张图片,肯呢个网络有特征提取,全链接分类,概率计算什么的,但是跳出算法问题,单从结果来看,就是给了一张输入,输出了一个预测结果。End-To-End的方案,即输入一张图,输出最终想要的结果,算法细节和学习过程全部丢给了神经网络。
11 domain adaptation 和domain generalization
域适应和域泛化域适应中,常见的设置是源域D_S完全已知,目标域D_T有或无标签。域适应方法试着将源域知识迁移到目标域。第二种场景可以视为domain generalization域泛化。这种更常见因为将模型应用到完全未知的领域,正因为没有见过,所以没有任何模型更新和微调。这种泛化问题就是一种开集问题,由于所需预测类别较多,所以比较头疼

参考文章:深度学习网络中backbone是什么意思? - 知乎

深度学习网络backbone?head、neck、bottleneck、GAP、Embedding、pretext task、downstream task、temperature parameter相关推荐

  1. 轻量级深度学习网络——MobileNet MobileNet v2

    这篇文章主要讲的是深度学习网络篇中轻量化网络之一的MobileNet和MobileNet v2.在深度学习中轻量化网络有很多方法, 比如说卷积核分解.使用bottleneck结构.用低精度浮点数保存模 ...

  2. 深度学习网络设计原则

    深度学习网络设计原则 输出特征图的大小逐渐减小 在网络较深层应该利用更多的feature map Bottleneck layer的设计 同时增加网络的深度和宽度   翻译及理解自论文Rethinki ...

  3. 搭建深度学习网络识别图片--猫狗大战

    猫狗大战(项目代码:https://github.com/JasonZhou89/kaggle--Dogs-vs.-Cats-Redux-Kernels-Edition) 一. 问题的定义 1.1 项 ...

  4. 何恺明团队新作!深度学习网络架构新视角:通过相关图表达理解神经网络

    标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助于对现有网络架构进行更深层次的分析与 ...

  5. 如何利用扬声器构建深度学习网络?

    简 介: 来自于康纳尔大学的这篇研究论文给出了 一个利用物理系统实现深层网络学习和推理的框架.本文对于文章举例的三个系统不属于线性时不变系统进行分析.除了其中SHG系统比较复杂之外,其它两个系统(三极 ...

  6. 【模型解读】深度学习网络之Siamese Network网络

    文章首发于微信公众号<有三AI> [模型解读]深度学习网络只能有一个输入吗 继续我们之前的专栏<模型解读>,今天说多输入网络,很久没写了因为实在是有更重要的事情. 平常我们所见 ...

  7. 【论文解读】深度学习网络架构新视角:通过相关图表达理解神经网络(何恺明团队新作)...

    文章来源于极市平台,作者Happy 标题&作者团队 导语:恺明大神出品,必属精品.Facebook的研究员从一个新奇的角度对神经网络的表示与设计进行探索,提出了一种新颖的相关图表示方式.它有助 ...

  8. OpenCV语义细分深度学习网络的实例(附完整代码)

    OpenCV语义细分深度学习网络的实例 OpenCV语义细分深度学习网络的实例 OpenCV语义细分深度学习网络的实例 #include <fstream> #include <ss ...

  9. OpenCV运行对象检测深度学习网络的实例(附完整代码)

    OpenCV运行对象检测深度学习网络的实例 OpenCV运行对象检测深度学习网络的实例 OpenCV运行对象检测深度学习网络的实例 #include <fstream> #include ...

最新文章

  1. 课后习题代码持续更新。。。。。。。。。。。。。
  2. Java知识点总结——装箱与拆箱
  3. 解决ASP网页乱码的问题
  4. 阑夕-王坚:说服马云之后,还要说服人类
  5. 【Shell脚本】颜色显示
  6. 软件工程进度条-第十二周
  7. 如何实现移动端轮播图的左滑右滑效果
  8. java和C++之单例类双重检查加锁
  9. pjsua帮助手册(中文)
  10. CentOS 5.4 制作 Python 2.6 RPM 包的方法
  11. Python项目实践:霍兰德人格分析雷达图
  12. 将tomcat添加到系统服务
  13. Eclipse用法和技巧十九:eclipse修改workspace
  14. MyBatis 持久化框架快速使用入门(Xml配置版)
  15. python3菜鸟教程100例-Python3
  16. IDC与云计算有什么区别
  17. java九宫格代码_Java实现九宫格的简单实例
  18. Windows 2016 服务器安全配置和加固
  19. AD831混频器模块
  20. 分享 | 基于图像分类网络ResNet50_vd实现桃子分类

热门文章

  1. Tengine ngx_http_sysguard_module 过载保护模块使用
  2. JS小功能(操作Table--动态添加删除表格及数据)实现代码
  3. Kendo UI开发教程(23): 单页面应用(一)概述
  4. 黄聪:C#代码生成工具:文本模板初体验 Hello,World!
  5. 【PP生产订单】入门介绍(十)
  6. 【转】物料与客户主数据的税分类
  7. 解读SAP Hybris为何获国内B2B用户青睐?
  8. 4、Power Query-智能汇总工作簿下的指定或所有工作表数据
  9. JAVA调用BAPI创建销售订单
  10. NBA部署SAP HANA内存数据库