前言
深度学习常用术语解释,持续更新~
Backbone
主干网络,或称骨干网络,通常是网络的一部分,大多时候指的是提取特征的网络,其作用就是提取图片中的信息,供后面的网络使用。这些网络经常使用的是ResNet、VGG等,而不是我们自己设计的网络,因为这些网络已经证明了在分类等问题上的特征提取能力是很强的。在用这些网络作为Backbone的时候,都是直接加载官方已经训练好的模型参数,后面接着我们自己的网络。让网络的这两个部分同时进行训练,因为加载的Backbone模型已经具有提取特征的能力了,在我们的训练过程中,会对它进行微调,使得其更适合于我们自己的任务。
Head
Head即整个网络的头部,是获取网络输出内容的网络,利用之前(Backbone)提取的特征,做出预测。
Neck
是指放在Backbone和Head之间的层,是为了更好的利用Backbone提取的特征。
Pretext task
用于预训练的任务,可以翻译为前置任务或代理任务。
Downstream task
下游任务,用于微调的任务。
Warm up
用一个小的学习率先训练几个epoch,这是因为网络的参数是随机初始化的,一开始就采用较大的学习率容易数值不稳定。
End to End
端到端,给一个输入,获得一个输出,中间的处理过程处于黑箱中,相当于打包成应用了。
Standardization
标准化,指将数据按比例缩放,使其落入一个小区间中,缩放后均值为$0$,方差为$1$。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
例如在数据预处理时为了将所有特征放在一个共同的尺度上,会通过将特征重新缩放到零均值和单位方差来标准化数据。这既能方便优化,又能避免惩罚分配给某一特征的系数超过其他特征(一视同仁)。
在训练过程中,对输入进行规范化可以加速深度网络权重参数的收敛速度。
Normalization
这个词真的需要好好理解一下,其实首先应该想到翻译为“规范化”,它包括归一化、标准化甚至正则化,作为一个统称。比如Batch Normalization其实做的是Standardization的事,所以翻译成批量规范化或者批量标准化。
其次这个词又可以指归一化,即把数值放缩到$0$到$1$的小区间中。归一化可以消除量纲对最终结果的影响,使不同变量具有可比性。
关于这个词的解读是要具体问题具体分析了,甚至有时Standardization也被作为统称。
Regularization
正则化,一般形式是在整个平均损失函数的最后增加一个正则项(比如L2范数正则化,也有其他形式的正则化,作用不同)。正则项越大表明惩罚力度越大,等于0表示不做惩罚。
参考文章
[1]https://zhuanlan.zhihu.com/p/348800083
[2]https://zhuanlan.zhihu.com/p/343692147
[3]https://blog.csdn.net/u014381464/article/details/81101551