深度学习常见名词概念:Sota、Benchmark、Baseline、端到端模型、迁移学习到底指什么

Sota

Sota实际上是State of the arts 的缩写,指的是在某一个领域做的Performance最好的model,一般就是指在一些基准测试(benchmark)的数据集上跑分非常高 表现最好的那些模型。
SOTA model:并不是特指某个具体的模型,而是指在该项研究任务中,目前最好/最先进的模型。
SOTA result:指的是在该项研究任务中,目前最好的模型的结果/性能/表现。

调参Trick

trick 指的是技巧的意思,也就是可以使机器学习或者深度学习等在训练时提升性能的小技巧和方法(如深度学习中的数据增强等)
在英文解释可以感受到它的意思:诡计;恶作剧;窍门;花招;骗局;欺诈

指令微调

(Instruction FineTuning),针对已经存在的预训练模型,给出额外的指令或者标注数据集来提升模型的性能,如P-tuning, prompt-tuning,prefix-tuning。

增量微调

是指在神经网络中增加额外的层,如lora,adapter。

生成式人工智能AICG

AIGC 是使用 Generative AI (GAI,生成式 AI) 的方式,能够模拟人类的方式,在很短的时间内创作大量的内容,可以生成文字、图像、音频、视频、代码等。
最具代表性的就是2023年初很火的两个模型:
ChatGPT:一个语言模型,能够很快的理解并回复人类的问题
DALL-E-2:能够在根据文字创作一幅对应的高质量图像

AGI通用人工智能

[AGI(Artificial general intelligence的缩写,)] 与现有的AI系统相比,AGI拥有更高的智能水平和更广泛的应用范围,最大特点是具有普适性的智能,能够应对各种复杂的情境和任务。AGI不仅能够像人类一样学习和思考,还能够自主地制定行动计划,并具有创造性和创新性。

非端到端模型

非端到端是输入->模型A->输出A=>模型B->输出B->…=>输出。不同于端到端,非端到端看作是一个流水线工作,比如在一个典型的NLP自然语言处理问题中,将分词、词性标注、句法分析、语义分析等多个步骤独立执行,每个步骤是一个独立的任务,其结果的好坏会影响到下一步骤,从而影响整个训练的结果。
目标检测任务中的 :R-CNN 需要单独的训练三个模块,包括 ①CNN特征向量的提取 ②SVM分类 ③边框修正。

端到端模型(PipLine)

从输入端到输出端会得到一个预测结果,将预测结果和真实结果进行比较得到误差,将误差反向传播到网络的各个层之中,调整网络的权重和参数直到模型收敛或者达到预期的效果为止,中间所有的操作都包含在神经网络内部,不再分成多个模块处理。由原始数据输入,到结果输出,从输入端到输出端,中间的#神经网络自成一体(也可以当做黑盒子看待),这就是端到端的模型。

Benchmark、Baseline

Benchmark和baseline都是指最基础的比较对象。你论文的motivation来自于想超越现有的baseline/benchmark,你的实验数据都需要以baseline/benckmark为基准来判断是否有提高。唯一的区别就是baseline讲究一套方法,而benchmark更偏向于一个目前最高的指标,比如precision,recall等等可量化的指标。举个例子,NLP任务中BERT是目前的SOTA,你有idea可以超过BERT。那在论文中的实验部分你的方法需要比较的baseline就是BERT,而需要比较的benchmark就是BERT具体的各项指标。

Backbone骨干网络

Backbone 骨干网络的意思,其是网络的一部分,大多时候指的是提取特征的网络,其作用就是提取图片中的信息,供后面的网络使用。这些网络经常使用的是resnet VGG等。
因为这些网络已经证明了在分类等问题上的特征提取能力是很强的。在用这些网络作为backbone的时候,都是直接加载官方已经训练好的模型参数,后面接着我们自己的网络。让网络的这两个部分同时进行训练,因为加载的backbone模型已经具有提取特征的能力了,在我们的训练过程中,会对他进行微调,使得其更适合于我们自己的任务。

Mask

mask.(掩码、掩膜)是深度学习中的操作。其相当于在原始张量上盖上一层掩膜,从而屏蔽或选择一些特定元素,用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。

数字图像处理中,掩模为二维矩阵数组,有时也用多值图像。数字图像处理中,图像掩模主要用于.:
①提取感兴趣区。用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0。
②屏蔽作用。用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处理或统计。
③结构特征提取。用相似性变量或图像匹配方法检测和提取图像中与掩模相似的结构特征。
④特殊形状图像的制作。用选定的图像、图形或物体,对待处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。用于覆盖的特定图像或物体称为掩模或模板。

Padding

padding是一个简写属性,填充。定义元素边框与元素内容之间的空间,即上下左右的内边距。 一个元素的内边距区域指的是其内容与其边框之间的空间
卷积过程padding的理解

串行、并发、并行

串行我中午12:00开始做饭,到一半,导师打来一个电话,我需要等到我做完饭才可以接电话,这说明我不支持并行与并发,我的运作方式属于串行,串行有一个执行单元(只有一个执行任务单元)。

并发我中午12:00开始做饭,到一半,女朋友打来一个电话,我接起电话,停下做饭的动作,跟女朋友打完电话我再继续,这说明我支持并发宏观上看,我同时做了两件事,但事实上我还是一件一件的处理:同时开启了两个任务,但将其中一个暂时处于挂起状态,专注于一件事,宏观上同时做了两件事。但根本没有真正同时进行一个以上的线程。

并行我中午12:00开始做饭,到一半,导师打来一个电话(论文中了),我一边接电话一边切菜,这说明我支持并行与并发。说话和切菜两个或多个动作同时进行,并且用的是两个处理单元CPU。(并行有多个任务执行单元,多个任务可以同时执行)
所谓并行,是指我有同时处理多个任务的能力,事实上的同时:当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行。

微调进程

微调其实讲的是利用原有模型参数(“知识”)初始化现有模型,在此基础上继续train自己的model(“再加工”)。说人话就是把现成的模型略加修改然后再作少量training,主要用于样本数量不足的情形。

线程、进程

一个进程包括多个线程。
不同进程之间数据很难共享。
同一个进程下的不同线程数据很容易共享。
进程比线程消耗更多计算机资源。
进程之间互不影响,但是一个进程挂掉,他所在的整个进程都会挂掉。
进程可以拓展到多机,适合多核与分布式。
进程使用的内存地址可以限定使用量。

监督学习

是使用足够多的带有label的数据集来训练模型,数据集中的每个样本都带有人工标注的label。通俗理解就是,模型在学习的过程中,“老师”指导模型应该向哪个方向学习或调整。

非监督学习

是指训练模型用的数据没有人工标注的标签信息,直接开始。通俗理解就是在“没有老师指导”的情况下,靠“学生”自己通过不断地探索,对知识进行归纳和总结,尝试发现数据中的内在规律或特征,来对训练数据打标签。

半监督学习泛化(Generalization)

是在只能获取少量的带label的数据,但是可以获取大量的的数据的情况下训练模型,让学习器不依赖于外界交互,自动地利用未标记样本来提升学习性能,半监督学习是监督学习和非监督学习的相结合的一种学习方法。

迁移学习

迁移学习通俗来讲,就是运用已有的知识来学习新的知识,把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中。
核心是找到已有知识和新知识之间的相似性,用成语来说就是举一反三。由于直接对目标域从头开始学习成本太高,我们故而转向运用已有的相关知识来辅助尽快地学习新知识。
比如,已经会下中国象棋,基于已有的象棋知识上,来学习国际象棋;已经会编写Java程序,就可以基于已有的对编程的思想来学习C#;已经学会英语,就可以类比着来学习法语;等等。

元学习(Meta-learning)

既是Meta Learning-learning to learn,元学习的思想是学习学习过程,从头开始训练模型。显然,这让模型与人类一样学会利用过去的经验快速学习新任务,而不是是接过数据集,从0开始训练。
元学习希望使得模型获取一种学会学习调参的能力,使其可以在获取已有知识的基础上快速学习新的任务。机器学习是先人为调参,之后直接训练特定任务下深度模型。元学习则是先通过其它的任务训练出一个较好的超参数,然后再对特定任务进行训练。

CNN、RNN、LSTM

(Convolutional Neutral Network CNN) 卷积神经网络主要用于图像和视频等视觉任务。
[(Recurrent Neural Network,RNN)] 循环神经网络,主要用于处理序列数据,如文本和语音
(Long Short Term Memory,LSTM)长短期记忆网络,是循环神经网络的最知名和成功的扩展

强化学习(RL)

(Reinforcement Learning)通过从外部获得激励来校正学习方向从而获得一种自适应的学习能力。

生成式对抗神经网络(GAN-Generative Adversarial Networks )

GAN 包含有两个模型,一个是生成模型(generative model),一个是判别模型(discriminative model)。判别模型的任务是 判断给定的实例看起来是自然真实的数据还是伪造的(真实实例来源于数据集,伪造实例来源于生成模型。

我们可以把生成器想象成一个造假者,试图制造假币,而鉴别器就像警察,试图让合法的钱进入并抓住假币。为了在这场博弈中取得成功,造假者必须学会如何做出与真钱无法区分的钱,意思就是生成器网络必须学会创建与训练数据相同分布的样本。而判别器就是要区分输入的数据真伪。通过两者的不断学习,改进,最后达到生成器生成的数据,判别器无法区分开来是否是真实数据。

基于人工反馈的强化学习(RLHF)

(Reinforcement Learning from Human Feedback)构建人类反馈数据集,训练一个激励模型,模仿人类偏好对结果打分,这是GPT-3后时代大语言模型越来越像人类对话核心技术。

泛化

模型的泛化能力通俗易懂的说就是模型在测试集(其中的数据模型以前没有见过)中的表现,也就是模型举一反三的能力,但是这些数据必须满足与iid(独立同分布)并在同一个分布中。
例子就是:一张图片模型之前没有见过,但是这张图片与TrainDataSet在同一分布,并满足iid,模型可以很好的预测这张图,这就是模型的泛化,在测试集中,模型预测新数据的准确率越高,就可以说是模型的泛化能力越好。

正则化(Regularization)

正则化即为对学习算法的修改,旨在减少泛化误差而不是训练误差。正则化的策略包括:
约束和惩罚被设计为编码特定类型的先验知识。
偏好简单模型。
其他形式的正则化,如:集成的方法,即结合多个假说解释训练数据。

吞吐量

是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量。也有其他词汇:网络吞吐量 系统吞吐量 港口吞吐量 物流吞吐量。类似单位时间内的一个数量。

大模型

一般指1亿以上参数的模型,但是这个标准一直在升级,目前万亿参数以上的模型也有了。大语言模型(Large Language Model,LLM)是针对语言的大模型。

175B、60B、540B

这些一般指参数的个数,B是Billion/十亿的意思,175B是1750亿参数,这是GPT3的参数规模。

涌现

研究发现,模型规模达到一定阈值以上后,会在多步算术、大学考试、单词释义等场景的准确性显著提升,称为涌现。

思维链

(Chain-of-Thought,CoT)。通过让大语言模型(LLM)将一个问题拆解为多个步骤,一步一步分析,逐步得出正确答案。需指出,针对复杂问题,LLM直接给出错误答案的概率比较高。思维链可以看成是一种指令微调。


import torch
import torchvision
from torch.utils import data
from torchvision import transforms
from d2l import torch as d2l
from torch import nn
%matplotlib inline
d2l.use_svg_display()

import torch
import torch.nn as nn

targets = torch.tensor([1, 2, 0])  # 某个时间步batch中各样本的labels
preds = torch.tensor([[1.4, 0.5, 1.1], [0.7, 0.4, 0.2], [2.4, 0.2, 1.4]])   # 某个时间步的batch*preds

criterion1 = nn.CrossEntropyLoss()   # 不屏蔽padding
criterion2 = nn.CrossEntropyLoss(ignore_index=0)   # 不屏蔽padding

loss1 = criterion1(preds, targets)
# 返回  tensor(1.1362)

loss2 = criterion2(preds, targets)
# 返回  tensor(1.5088) , 例子中该损失只考虑了2个样本


猜你喜欢

转载自blog.csdn.net/yanhaohui/article/details/130382102