一、concatenation operation
向量之间的拼接
二、Dot Product
向量点积
三、element-wise product
element-wise product实际上是两个同样维度的向量/矩阵每一个元素分别相乘
四、DL中,何时用concatenate/elementwise乘法/elementwise加法呢?
深度学习中,信息相互融合的时候,什么时候用concatenate,什么时候用elementwise乘法呢,什么时候又用elementwise加法呢?
答:
点乘其实是gate的形式 可能会损失性能。concatenate则是简单拼接,要网络自己学习变换。
实际过程中可能只能试。
五、Baseline
- 基线模型可以是最常见或最简单的模型,或者是已经被证明在特定问题上有效的模型。
- 基线方法是指在特定问题上已经被证明有效的方法
指的是对照组,基准线。比如研究一个新模型,你是在前人的模型基础上新增加了一些组件,别人也基本都是在这个模型上进行修改,那这个Baseline model——基准模型。
六、Backbone
即骨干网络,也就是主干网络,就代表其是网络的一部分。这个主干网络大多时候指的是提取特征的网络,其作用就是提取图片中的信息,生成特征图feature map,供后面的网络使用。这些网络经常使用的是ResNet、VGG、MobileNet等,而不是我们自己设计的网络,因为这些网络已经证明了在分类等问题上的特征提取能力是很强的。在用这些网络作为backbone的时候,都是直接加载官方已经训练好的模型参数,后面接着我们自己的网络。让网络的这两个部分同时进行训练,因为加载的backbone模型已经具有提取特征的能力了,在我们的训练过程中,会对他进行微调,使得其更适合于我们自己的任务。
- 在神经网络中,尤其是CV领域,一般先对图像进行特征提取,生成特征图feature map,这一部分是整个CV任务的根基,因为后续的下游任务都是基于提取出来的图像特征去做文章(比如分类、生成等)。
- backbone用于前端提取图片信息,供后面的网络使用。因为这些backbone的特征提取能力是很强,并且可以加载官方在大型数据集(Pascal、Imagenet)上训练好的模型参数,然后接自己的网络,进行微调就可以。
七、Head
head是获取网络输出内容的网络,利用之前提取的特征,head利用这些特征,做出预测。
Head是网络结构的顶部部分,它通常包括全连接层、softmax层等线性分类器层,用于将特征向量进行分类或回归等任务。Head的设计通常根据具体的任务需求来进行,例如,如果需要完成二分类任务,那么Head可能只需要一个sigmoid层即可;如果需要进行分类,那么Head则需要多个softmax层等。
八、Neck
neck是放在backbone和head之间的,是为了更好的利用backbone提取的特征,可以理解为对backbone生成的特征图做进一步处理,使得head能够更好的做下游任务。
Neck位于Backbone和Head之间,通常用于将两者之间的特征相互融合。Neck通常是由分类与回归之类的模块组成,它也可以是卷积层、池化层等。Neck有时也被称为特征金字塔处理(Feature Pyramid Network)。
九、Bottleneck
bottleneck是瓶颈的意思,通常指的是网网络输入的数据维度和输出的维度不同,输出的维度比输入的小了许多,就像脖子一样,变细了。经常设置的参数 bottle_num=256,指的是网络输出的数据的维度是256 ,可是输入进来的可能是1024维度的。
十、Embedding
深度学习方法都是利用使用线性和非线性转换对复杂的数据进行自动特征抽取,并将特征表示为“向量”(vector),这一过程一般也称为“嵌入”(embedding)