1. backbone
主干(骨干)网络,一般是指提取特征的网络,其作用就是提取图片中的信息,供后面的网络使用。此外,被称作backbone的网络通常都是已在大型数据集(例如ImageNet、COCO等)上完成了预训练,拥有预训练参数的卷积神经网络。
经常使用的主干网络有ResNet、VGG等,而不是我们自己设计的网络,因为这些网络已经被充分证明在分类等问题上具有很强的特征提取能力。在使用这些网络作为backbone的时候,都是直接加载官方已经训练好的模型参数,后面接着我们自己的网络。通常会同时训练网络的这两个部分,这是因为加载的backbone模型已经具有提取特征的能力了,而在我们的训练过程中,只需要对其进行微调,使得其更适合于我们自己的任务。
2. head
一般是指具有获取网络输出内容能力的网络(也称作检测头),通过利用之前提取的特征,预测目标的种类和位置。
3. neck
一般是指介于backbone和head之间用于收集不同阶段中特征图的网络层,作用是为了更好的利用backbone提取的特征。
Note: 基于深度学习的目标检测模型的一般结构是:输入->主干->脖子->头->输出。主干网络提取特征,脖子提取一些更复杂的特征,然后头部计算预测输出。
4. Benchmark
- 是一种标准、规则,不一定是最好的,但一定是最有代表性的,已经被广泛研究且被广泛认可的,对它性能的表现形式、测量方法都非常熟悉,因此可以作为标准方法来衡量其他方法的好坏。
- 所用数据称之为benchmark data;所用方法称之为benchmark method。
- 通常将所提方法在benchmark data上与benchmark method的结果进行对比,从而衡量所提方法是否足够好。
- benchmark一般是和同行中认可度比较高的算法比较,如果比牛算法还好,那你可以考虑发好一点的会议/期刊。
5.Baseline
- baseline有一个自带的含义就是“性能起点”。这里还需要指出其另一个应用语境,就是在算法优化过程中,一般version1.0是作为baseline的,即这是你的算法能达到的一个基本性能,在算法继续优化和调参数的过程中,你的目标是比这个性能更好,因此需要在这个baseline的基础上往上跳。
- 一个算法被称为baseline,基本上表示比这个算法性能还差的基本上不能接受的,除非方法上有革命性的创新点,而且还有巨大的改进空间和超越benchmark的潜力,只是因为是发展初期而性能有限。
- baseline这个名词在很多的竞赛中很常见,一般都是在此基础上进行‘“魔改”,以它为标准,来判断改进的好坏。
- baseline一般是自己算法优化和调参过程中自己和自己比较中的基础起点,目标是越来越好,当性能超过benchmark时,可以发表了。当然有些时候文章中的baseline指代其他论文提出的方法,所以阅读论文的时候要结合语境,灵活理解。
6. SOTA
- SOTA(state-of-the-art)算法性能在当前属于最佳性能。
- 如果新算法以SOTA作为benchmark,比SOTA效果好,这当然是最好的了。
- 但如果比不过SOTA,能比其他benchmark要好,且方法有一定创新,也是可以发表的。
- 当性能甚至超过SOTA时,就考虑投顶会顶刊。
7.CheckPoints
对于耗时处理,应用检查点机制是一种故障容错技术。它是一种在系统出错情况下快照系统状态的方法。如果有问题,不会全部丢失。检查点可以直接使用,或者作为新程序的起点,在他中断的地方加载数据。当训练深度学习模型,检查点能捕获模型权重。这些权重用于做预测,或者用于继续训练的基础。
8.隐藏层
一层隐藏层是一层特征层次。隐藏层的意义就是把输入数据的特征,抽象到另一个维度空间,来展现其更抽象化的特征,这些特征能更好的进行线性划分。
作用:更好地线性划分不同类型的数据。
9.感受野
感受野是指在卷积过程中卷积核关注的区域,故浅层卷积核关注的是细节特征,例如颜色、角点、直线曲线等;高层的卷积核关注的是全局特征,例如汽车、飞机、老虎等。
10.编码-解码
在深度学习中,自动编码器是一种无监督的神经网络模型,它可以学习到输入数据的隐含特征,这称为编码(coding),同时用学习到的新特征可以重构出原始输入数据,称之为解码(decoding)。