当前位置: 首页 > news >正文

网站静态和伪静态意思dede网站幻灯片

网站静态和伪静态意思,dede网站幻灯片,网站扁平化设计,知名企业vi设计Bert论文 1、解决的问题2、预训练微调2.1预训练微调概念2.2深度双向2.3基于特征和微调#xff08;预训练下游策略#xff09; 3、模型架构4、输入/输出1.输入#xff1a;2.输出#xff1a;3.Learned Embeddings(学习嵌入)1. **Token Embedding**2. **Position Embedding**3… Bert论文 1、解决的问题2、预训练微调2.1预训练微调概念2.2深度双向2.3基于特征和微调预训练下游策略 3、模型架构4、输入/输出1.输入2.输出3.Learned Embeddings(学习嵌入)1. **Token Embedding**2. **Position Embedding**3. **Segment Embedding**Embeddings 的结合 5、[CLS] 作用6、下游任务本文7、消融实验8、符号说明9、表格说明10、代码 论文名称BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding链接 知识点说明1、输入/输出分句clssep、输入的embeddings学习嵌入2、区分句子两种方式SEP、segment3、[CLS]作用预训练NSP,微调下游任务分类4、Mask比例15%、时间80%10%10%5、模型结构对应的transformLN、Hd、AH6、下游任务MNLIglue、AQuAD斯坦福、NERCONLL-20037、消融实验LM和NSP、模型大小、训练步数、MLM程度 1、解决的问题 解决的问题预训练语言模型单向性限制 预训练语言表示的策略有基于特征和微调两种 “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”由谷歌的Jacob Devlin等人撰写介绍了BERTBidirectional Encoder Representations from Transformers这种预训练模型其在多个自然语言处理任务上取得了最优成果推动了相关领域发展。 研究背景 语言模型预训练对改善自然语言处理任务有效现有应用预训练语言表示的策略有基于特征和微调两种但当前技术存在局限预训练语言模型单向性限制了架构选择影响了句子级和词元级任务表现。相关工作 无监督基于特征的方法如ELMo从左右语言模型提取上下文敏感特征虽推进了NLP基准测试但模型并非深度双向。无监督微调方法预训练句子或文档编码器并微调用于监督下游任务BERT具有跨任务统一架构的特点。有监督数据迁移学习相关工作展示了从监督任务和大型预训练模型进行迁移学习的有效性。 BERT模型 整体框架包含预训练和微调两个步骤预训练使用无监督任务在无标签数据上训练模型微调则用预训练参数初始化并在下游任务有标签数据上微调所有参数。输入输出表示能处理单句和句对使用WordPiece词元化输入表示通过对词元、片段和位置嵌入求和构建[CLS]对应最终隐藏状态用于分类任务句对用[SEP]分隔并添加学习嵌入区分。预训练任务 掩码语言模型Masked LM随机掩码输入词元的15%通过预测掩码词元训练深度双向表示训练数据生成时对选择预测的词元80%用[MASK]替换10%用随机词替换10%保持不变。下一句预测NSP用于训练理解句子关系的模型50%的情况下B是A的实际下一句IsNext50%是随机句子NotNext。 微调利用Transformer自注意力机制通过替换输入输出适应多种下游任务在不同任务中输入输出有所不同。微调相对预训练计算成本低在单Cloud TPU或GPU上可快速完成。 实验结果 GLUE基准测试在多个任务上显著超越之前系统BERTBASE和BERTLARGE分别取得了较高平均准确率提升在MNLI任务上提升明显且BERTLARGE在数据较少任务上表现更优。SQuAD问答任务在v1.1和v2.0数据集上均取得领先成绩v1.1中通过简单扩展模型在测试集上F1分数大幅提升v2.0通过特殊处理无答案情况也取得显著改进。SWAG常识推理任务在该数据集上BERTLARGE表现出色优于基线系统和OpenAI GPT。 消融实验 预训练任务影响去除NSP任务会损害部分任务性能训练单向表示LTR在各任务上表现较差添加BiLSTM虽能改善SQuAD任务结果但仍不如预训练双向模型且会损害GLUE任务性能。模型大小影响更大模型在微调任务准确率上有严格提升即使在小数据集上也如此这表明在充分预训练下扩展模型大小对小任务也有益。基于特征方法与BERT将BERT应用于NER任务比较微调与基于特征方法发现BERT在两种方法中均有效基于特征方法中提取预训练模型特定层表示作为输入微调方法则在预训练模型上添加分类层并联合微调所有参数。 研究结论通过双向预训练和微调BERT在多种NLP任务上取得成功证明了丰富的无监督预训练对语言理解系统的重要性使同一预训练模型能处理广泛任务。 2、预训练微调 2.1预训练微调概念 预训练Pre - training 在深度学习中模型通常需要大量的数据来学习有效的特征表示。对于许多任务获取大规模的标注数据是非常困难和昂贵的。预训练的目的是利用大规模的无标注数据来学习通用的特征表示这些特征可以被迁移到各种具体的下游任务中。 例如在自然语言处理中文本数据量巨大但是标注如词性标注、命名实体识别等任务的标注成本很高。可以使用大量的无标注文本如维基百科文章、新闻文章等来预训练模型。 微调Fine - tuning 虽然预训练模型学习到了通用的特征表示但对于特定的任务如情感分类、文本翻译等还需要根据任务的特点和标注数据进行进一步的优化。微调就是在预训练模型的基础上利用特定任务的标注数据来调整模型的参数使其更好地适应任务。 预训练微调是一种分阶段的模型训练方法。它先在大规模的通用数据上进行无监督或自监督的预训练学习数据中的一般性特征然后在特定的任务相关数据上进行有监督的微调使模型适应具体的任务需求。这种方法就像是先让一个人进行广泛的基础知识学习预训练然后针对具体的职业任务进行专业技能培训微调。 2.2深度双向 深度双向,与从左到右的语言模型预训练不同MLM 目标使表示能够融合左右上下文这使我们能够预训练深度双向 Transformer。除了掩码语言模型之外我们还使用“下一句预测”任务来联合预训练文本对表示。我们证明了双向预训练对于语言表示的重要性。与雷德福等人不​​同。 (2018) 使用单向语言模型进行预训练BERT 使用屏蔽语言模型来实现预训练的深度双向表示。这也与 Peters 等人形成鲜明对比。 (2018a)它使用独立训练的从左到右和从右到左 LM 的浅层串联。他们的模型是基于特征的而不是深度双向的 。 我们认识到也可以训练单独的 LTR 和 RTL 模型并将每个令牌表示为两个模型的串联就像 ELMo 所做的那样。然而a这是单个双向模型的两倍昂贵这严格来说不如深度双向模型强大因为它可以在每一层使用左右上下文。每一层双向。 ELMo 及其前身Peters et al., 2017, 2018a沿着不同的维度概括了传统的词嵌入研究。他们从从左到右和从右到左的语言模型中提取上下文相关的特征。每个标记的上下文表示是从左到右和从右到左表示的串联。当将上下文词嵌入与现有的特定于任务的架构集成时ELMo 推进了几个主要 NLP 基准的最新技术Peters 等人2018a包括问答Rajpurkar 等人2016、情感分析Socher 等人 ., 2013以及命名实体识别Tjong Kim Sang 和 De Meulder, 2003。梅拉穆德等人。 (2016) 提出通过使用 LSTM 从左右上下文预测单个单词的任务来学习上下文表示。与 ELMo 类似他们的模型是基于特征的而不是深度双向的。费杜斯等人。 (2018) 表明完形填空任务可用于提高文本生成模型的鲁棒性。 区别 深度双向意味着 BERT 模型在处理文本时能够同时利用词元前后的上下文信息。与传统的单向语言模型如从左到右或从右到左的语言模型不同BERT 的双向性使得模型在预测每个词元时可以综合考虑其左侧和右侧的所有词元信息。例如在句子 “my dog is cute” 中当模型处理 “dog” 这个词元时它不仅能获取到 “my”左侧的信息还能获取到 “is cute”右侧的信息从而更全面地理解 “dog” 在句子中的语义角色。这种双向信息融合是通过 Transformer 架构中的多头自注意力机制Multi - Head Self - Attention实现的。多头自注意力机制允许模型在不同的 “头”子空间中同时关注输入序列的不同部分然后将这些关注结果进行组合从而有效地整合前后文信息。 浅层双向模型通常结构相对简单层数较少相较于深度双向模型如 BERT。虽然也能在一定程度上利用前后文信息实现双向性但由于层数限制其对文本的理解和特征提取能力有限。例如一些早期的双向 RNN 模型或简单的基于 Transformer 的浅层模型它们在处理文本时双向信息融合的深度不如深度双向模型。在计算词元表示时虽然考虑前后文但可能无法像深度双向模型那样深入捕捉长距离依赖关系和复杂语义结构。与一些浅层双向模型相比BERT 的多层堆叠结构实现的深度双向表示能够学习到更复杂、更抽象的语言特征。浅层双向模型虽然也能够在一定程度上利用双向信息但由于层数较少其对文本的理解能力和特征提取能力相对有限。 基于特征的模型重点在于从文本中提取各种特征来表示文本信息。这些特征可以包括词汇特征如词频、词性等、句法特征如句子结构、语法关系等、语义特征如语义角色、语义相似度等等。通过对文本进行特征工程将文本转化为特征向量然后利用这些特征向量进行后续的任务处理如分类、回归等。例如在文本分类任务中可以根据文本中某些关键词的出现频率等特征来判断文本的类别。然而这种方式提取的特征相对较为浅层可能无法像深度双向模型那样深入理解文本的语义和语法结构。例如在文本分类任务中可能会统计文本中特定关键词的出现次数作为词汇特征或者分析句子的语法结构来获取句法特征。然后将这些提取的特征组合成特征向量用于后续的模型处理如输入到分类器如 SVM、逻辑回归等中进行分类或预测任务。 2.3基于特征和微调预训练下游策略 预训练的语言表示应用于下游任务有两种现有策略基于特征和微调。基于特征的方法例如 ELMoPeters 等人2018a使用特定于任务的架构其中包括预训练的表示作为附加特征。微调方法例如生成式预训练变压器OpenAI GPTRadford et al., 2018引入了最少的特定于任务的参数并通过简单地微调所有预训练参数来对下游任务进行训练。这两种方法在预训练期间共享相同的目标函数它们使用单​​向语言模型来学习通用语言表示。 本文的改进点 单向的限制本文我们认为当前的技术限制了预训练表示的能力特别是对于微调方法。主要限制是标准语言模型是单向的这限制了预训练期间可以使用的架构的选择。 在本文中我们通过提出 BERT来自 Transformers 的双向编码器表示来改进基于微调的方法。 BERT 通过使用受完形填空任务Taylor1953启发的“掩码语言模型”MLM预训练目标来缓解前面提到的单向性约束。 无监督的基于特征的方法 无监督微调方法 5.3 基于特征的 BERT 方法 预训练的语言表示如BERT、GPT等应用于下游任务时确实有两种主要策略基于特征Feature-based和微调Fine-tuning。这两种策略的具体区别如下 基于特征的策略 这种策略通常不会修改预训练模型的参数而是利用预训练模型作为特征提取器。预练模型部分的参数是固定的只需要对下游任务的简单模型进行训练具体来说在下游任务中我们将输入的文本通过预训练模型进行处理得到隐藏层的输出特征表示然后将这些特征作为输入传递给下游任务的模型如分类器、回归模型等。这种方法的优势在于它不需要对预训练模型进行微调因此可以节省计算资源适合小数据集或计算能力有限的场景。但缺点是这种方法可能无法充分利用下游任务的特定信息因为预训练模型的参数没有被专门调整。 微调策略 微调策略会在下游任务上进一步训练预训练模型调整其参数以适应特定任务。在微调过程中预训练模型会在特定任务上进行优化通常是通过反向传播算法Gradient Descent更新模型的权重。微调策略的优势是能够充分利用预训练模型的知识并且针对下游任务进行优化通常能够获得更好的性能。但是微调需要更多的计算资源和数据尤其是在数据量较少或计算能力有限时可能存在过拟合的问题。 这两种策略的选择通常取决于下游任务的规模、计算资源和时间的要求。如果任务规模较小或计算资源有限基于特征的策略可能是一个不错的选择而在任务复杂、数据较多的情况下微调往往能够取得更好的效果。 3、模型架构 对应关系总结 BERT 参数Transformer 对应部分说明 L L L 层数 N N N 编码器层数编码器块的数量。每层都有两个子层,第一个是多头自注意力机制第二个是简单的、位置式全连接前馈网络。 H H H 隐藏层维度 d model d_{\text{model}} dmodel​隐藏状态维度编码器输入/输出的特征维度 A A A 自注意力头数 H H H多头注意力头数自注意力中平行计算的头的数量 在神经网络包括 Transformer中**隐藏层Hidden Layer**是指位于输入层和输出层之间的中间层。这些层的主要作用是对输入数据进行特征提取和非线性变换为最终的任务如分类、回归或序列生成提供更加抽象的表示。 4、输入/输出 1.输入 图图中BERT 输入表示。输入嵌入是令牌嵌入、分割嵌入和位置嵌入的总和。 “学习嵌入”Learned Embeddings通常指的是通过训练算法自适应地学习到数据的低维表示。Learned学习的指这些嵌入向量不是手动设定的而是在训练过程中由模型通过优化算法学习得到的。模型通过不断调整这些嵌入向量使得它们能够更好地表示数据的结构和关系。 词元嵌入Token Embeddings 每个词元token都有一个对应的词元嵌入。 例如[CLS] 对应的词元嵌入是 E [ C L S ] E_{[CLS]} E[CLS]​my 对应的是 E m y E_{my} Emy​dog 对应的是 E d o g E_{dog} Edog​以此类推。 段嵌入Segment Embeddings 段嵌入用于区分不同的句子。 第一部分句子中的词元都被赋予段嵌入 E A E_A EA​。 第二部分句子中的词元都被赋予段嵌入 E B E_B EB​。 位置嵌入Position Embeddings 位置嵌入用于表示词元在句子中的位置。 从左到右位置从 0 开始编号。 例如[CLS] 对应的位置嵌入是 E 0 E_0 E0​my 对应的是 E 1 E_1 E1​dog 对应的是 E 2 E_2 E2​以此类推。 “句子”“句子”可以是连续文本的任意范围而不是实际的语言句子。 [CLS] 是一个特殊标记用于分类任务表示整个句子的起始。[SEP] 用于分隔不同的句子。 分句[CLS] 是添加在每个输入示例前面的特殊符号[SEP] 是特殊的分隔符标记例如分隔问题/答案。 MLM“masked lan-guage model” (MLM) masked LM” (MLM),为了了训练深度双向表示我们只需随机屏蔽一定比例的输入标记然后预测这些屏蔽标记。 随机屏蔽每个序列中所有 WordPiece 标记的 15%。 [MASK] 预训练和微调之间造成了不匹配因为 [MASK] 标记在微调期间不会出现。为了缓解这种情况我们并不总是用实际的 [MASK] 标记替换“屏蔽”单词。训练数据生成器随机选择 15% 的 token 位置进行预测mask比例。如果选择第 i 个令牌我们将第 i 个令牌替换为 (1) 80% 的时间为 [MASK] 令牌 (2) 10% 的时间为随机令牌 (3) 未更改的第 i 个令牌10%的时间。 区分句子我们以两种方式区分句子。首先我们用一个特殊的标记[SEP]将它们分开。其次我们向每个标记添加学习嵌入segment embedding指示它属于句子 A 还是句子 B。 下一句预测 (NSP)为了训练理解句子关系的模型我们预先训练二值化的下一个句子预测任务该任务可以从任何单语语料库轻松生成。具体来说当为每个预训练示例选择句子 A 和 B 时50% 的时间 B 是 A 之后的实际下一个句子标记为 IsNext50% 的时间它是来自语料库的随机句子标记为 IsNext。作为NotNext。C 用于下一个句子预测NSP。1、预训练C用于NSP分类理解句子关系。2、微调C用于下游任务的分类例如序列标记或问答并且 [CLS] 表示被馈送到输出层以进行分类例如蕴涵或情感分析。 2.输出 在图中E 表示输入嵌入 T i T_{i} Ti​ 表示词元 i i i 的上下文表示[CLS] 是用于分类输出的特殊符号[SEP] 是用于分隔不连续词元序列的特殊符号。将特殊 [CLS] 标记的最终隐藏向量表示为 C ∈ R输入的Toktoken标记的最终隐藏向量为 T ∈ R。 3.Learned Embeddings(学习嵌入) Bert输入中的embedding都是学习嵌入都不是固定。 图图中BERT 输入表示。输入嵌入是令牌嵌入、分割嵌入和位置嵌入的总和。 “学习嵌入”Learned Embeddings通常指的是通过训练算法自适应地学习到数据的低维表示。Learned学习的指这些嵌入向量不是手动设定的而是在训练过程中由模型通过优化算法学习得到的。模型通过不断调整这些嵌入向量使得它们能够更好地表示数据的结构和关系。 1. Token Embedding 算法: 通过查找表Embedding Lookup方法实现。BERT 中的词嵌入使用的是一个固定大小的词汇表Vocabulary每个词或者子词Token对应一个固定长度的向量。这些向量是通过随机初始化后在训练过程中学习得到的。对于词分词后形成的子词单元BERT 使用了 WordPiece Tokenization 方法来生成子词。 2. Position Embedding 算法: BERT 使用可学习的固定长度位置向量来表示序列中每个 Token 的位置。这与 Transformer 中的 Sinusoidal Position Embedding 不同。BERT 中的位置嵌入是可训练的也是在训练过程中被学习的。输入序列中每个位置会分配一个唯一的向量向量维度与 Token 嵌入的维度相同。位置编码有很多选择学习和固定。transformer中作者通过对比选择用正弦的固定的位置编码位置向量不参与训练。 3. Segment Embedding 算法: BERT 使用 Segment Embedding 来区分输入序列中的不同段Segment。每个 Token 根据所属的段例如句子 A 或句子 B分配一个向量这些向量也是通过可学习的方式获得的。如果是单句任务所有 Token 会被分配到同一个段。如果是双句任务例如句子对分类两个句子会被分别分配不同的段标志。Segement Embeddings 层有两种向量表示前一个向量是把 0 赋值给第一个句子的各个 Token后一个向量是把1赋值给各个 Token问答系统等任务要预测下一句因此输入是有关联的句子。而文本分类只有一个句子那么 Segement embeddings 就全部是 0。 Embeddings 的结合 最终的输入嵌入Input Embedding是通过以下公式结合的 Input Embedding Token Embedding Position Embedding Segment Embedding \text{Input Embedding} \text{Token Embedding} \text{Position Embedding} \text{Segment Embedding} Input EmbeddingToken EmbeddingPosition EmbeddingSegment Embedding 每个嵌入分量的维度是相同的最终得到的输入向量会被送入 Transformer 模型进行编码。 词元嵌入Token Embeddings 每个词元token都有一个对应的词元嵌入。 例如[CLS] 对应的词元嵌入是 E [ C L S ] E_{[CLS]} E[CLS]​my 对应的是 E m y E_{my} Emy​dog 对应的是 E d o g E_{dog} Edog​以此类推。 段嵌入Segment Embeddings 段嵌入用于区分不同的句子。 第一部分句子中的词元都被赋予段嵌入 E A E_A EA​。 第二部分句子中的词元都被赋予段嵌入 E B E_B EB​。 位置嵌入Position Embeddings 位置嵌入用于表示词元在句子中的位置。 从左到右位置从 0 开始编号。 例如[CLS] 对应的位置嵌入是 E 0 E_0 E0​my 对应的是 E 1 E_1 E1​dog 对应的是 E 2 E_2 E2​以此类推。 5、[CLS] 作用 #mermaid-svg-ONytnSPwwkwniI1d {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ONytnSPwwkwniI1d .error-icon{fill:#552222;}#mermaid-svg-ONytnSPwwkwniI1d .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ONytnSPwwkwniI1d .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-ONytnSPwwkwniI1d .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ONytnSPwwkwniI1d .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ONytnSPwwkwniI1d .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ONytnSPwwkwniI1d .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ONytnSPwwkwniI1d .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ONytnSPwwkwniI1d .marker.cross{stroke:#333333;}#mermaid-svg-ONytnSPwwkwniI1d svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ONytnSPwwkwniI1d .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ONytnSPwwkwniI1d .cluster-label text{fill:#333;}#mermaid-svg-ONytnSPwwkwniI1d .cluster-label span{color:#333;}#mermaid-svg-ONytnSPwwkwniI1d .label text,#mermaid-svg-ONytnSPwwkwniI1d span{fill:#333;color:#333;}#mermaid-svg-ONytnSPwwkwniI1d .node rect,#mermaid-svg-ONytnSPwwkwniI1d .node circle,#mermaid-svg-ONytnSPwwkwniI1d .node ellipse,#mermaid-svg-ONytnSPwwkwniI1d .node polygon,#mermaid-svg-ONytnSPwwkwniI1d .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ONytnSPwwkwniI1d .node .label{text-align:center;}#mermaid-svg-ONytnSPwwkwniI1d .node.clickable{cursor:pointer;}#mermaid-svg-ONytnSPwwkwniI1d .arrowheadPath{fill:#333333;}#mermaid-svg-ONytnSPwwkwniI1d .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ONytnSPwwkwniI1d .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ONytnSPwwkwniI1d .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-ONytnSPwwkwniI1d .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-ONytnSPwwkwniI1d .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ONytnSPwwkwniI1d .cluster text{fill:#333;}#mermaid-svg-ONytnSPwwkwniI1d .cluster span{color:#333;}#mermaid-svg-ONytnSPwwkwniI1d div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ONytnSPwwkwniI1d :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 预训练 微调 CLS作用 NSP 是一个二分类任务,其目标是预测句子 B 是否为句子 A 的实际下一句 在微调阶段,微调分类任务则针对具体的下游任务需求,如情感分析,自然语言推理等进行分类 NSPNext Sentence Prediction任务和微调分类任务虽然都涉及到特殊符号 [CLS]在文中表示为 C但它们在不同阶段发挥作用不会相互覆盖各自对模型的训练和性能提升有着重要意义。 NSP使用特殊符号 [CLS]c对应的向量来进行下一句预测NSP。在预训练时模型根据输入的句子对A 和 B通过对 [CLS] 向量进行处理预测其属于 IsNext 还是 NotNext 类别。 在BERT模型中NSPNext Sentence Prediction任务和微调分类任务虽然都涉及到特殊符号[CLS]在文中表示为C但它们在不同阶段发挥作用不会相互覆盖各自对模型的训练和性能提升有着重要意义。 NSP任务中的C 任务作用与表示NSP任务是预训练中的一个重要部分其目的是训练模型理解句子之间的关系。在这个任务中C[CLS]对应的向量被专门用于预测句子B是否是句子A的下一句IsNext或NotNext。模型根据输入的句子对A和B通过对C向量进行处理来进行二分类预测。例如在判断句子对“the man went to [MASK] store [SEP] he bought a gallon [MASK] milk [SEP]”IsNext和“the man [MASK] to the store [SEP] penguin [MASK] are flightless birds [SEP]”NotNext时C向量承载着整个句子对的综合信息帮助模型学习句子之间的逻辑连贯性。预训练阶段独立性在预训练阶段NSP任务独立进行训练通过大量的句子对数据使模型学会捕捉句子之间的语义和逻辑关系从而为后续的微调阶段提供了更丰富的语言理解能力基础。这个过程中C向量在NSP任务中的作用是特定且独立的与微调分类任务尚未产生关联。 微调分类任务中的C 任务适应与C的角色在微调阶段BERT模型能够适应多种下游任务包括单句分类如情感分析和句对分类如自然语言推理等任务。对于这些不同的任务输入表示会根据任务需求进行调整但C[CLS]始终扮演着重要角色。在单句分类任务中如判断一个句子的情感倾向积极、消极或中性句子的输入表示为[CLS] E1 E2… EN其中C[CLS]对应的最终隐藏状态被用作整个句子的聚合表示输入到分类层进行分类。在句对分类任务中如判断两个句子之间的关系蕴含、矛盾或中立句子对的输入表示为[CLS] E1 E2… EN [SEP] E1’ E2’… EN’同样C[CLS]的最终隐藏状态作为句子对的整体表示输入分类层。与NSP任务的区别与联系微调分类任务与NSP任务虽然都使用了C向量但它们的任务目标和数据处理方式不同。NSP任务专注于句子关系的预测而微调分类任务则针对具体的下游任务需求如情感分析、自然语言推理等进行分类。然而NSP任务在预训练阶段所学习到的句子关系理解能力有助于微调分类任务更好地处理句对之间的关系为微调分类任务提供了一定的基础支持但两者在不同的训练阶段和任务场景下各司其职不会相互覆盖。 6、下游任务本文 任务数据集MNLI通用语言理解评估 GLUESQuAD斯坦福问答数据集 SQuADNERCoNLL-2003 命名实体识别SWAGSWAG 数据集 MNLI—glue SQUAD—斯坦福 NER—命令实体识别 COMNLL2003 5.3 基于特征的 BERT 方法 7、消融实验 本文消融实验 预训练任务的效果 表 5使用 BERT 架构对预训练任务的消融。 “No NSP”是在没有下一句预测任务的情况下进行训练的。 “LTR No NSP”被训练为从左到右的 LM没有下一句预测就像 OpenAI GPT 一样。 “ BiLSTM”在微调过程中在“LTR No NSP”模型之上添加了一个随机初始化的 BiLSTM。 模型大小的影响 我们探讨模型大小对微调任务准确性的影响。我们训练了许多具有不同层数、隐藏单元和注意力头的 BERT 模型同时使用与前面描述的相同的超参数和训练过程。 C.1 训练步骤数的影响 C.2 不同掩蔽程序的消融 一、定义 消融实验Ablation Study是一种在机器学习、深度学习以及其他复杂系统研究中广泛使用的实验方法。它的主要目的是通过去除系统中的某些组件或者改变某些参数来观察这些改变对系统整体性能的影响。简单来说就像是在一个机器中逐个拆除零件看看每个零件对机器正常运转所起到的作用。 二、作用和意义 理解模型组件的重要性 在复杂的深度学习模型中有许多不同的层、模块或者超参数。通过消融实验可以确定每个组件对模型最终性能如准确率、召回率、F1值等的贡献程度。例如在一个图像分类的卷积神经网络CNN中可能包括卷积层、池化层、全连接层等。通过分别去除这些层并观察模型性能的变化可以了解每个层在特征提取和分类过程中的重要性。 验证设计选择的合理性 当研究人员提出一种新的模型结构或者对现有模型进行改进时消融实验可以用来验证这些设计选择是否有效。比如添加了一个新的注意力机制到自然语言处理模型中通过消融实验去除这个注意力机制对比前后性能就能判断该机制是否真的提升了模型性能。 模型简化和优化 消融实验可以帮助发现模型中可能冗余的部分从而对模型进行简化。简化后的模型在计算资源有限的情况下可能更有优势如减少训练时间、降低内存占用等。同时通过了解各个组件的重要性还可以对重要组件进行重点优化。 三、实验步骤 确定基准模型 首先需要一个完整的、性能良好的模型作为基准。这个模型应该是经过充分训练并且在验证集或者测试集上有可靠的性能评估指标。例如在目标检测任务中一个已经训练好的Faster R - CNN模型其在COCO数据集上有一定的平均精度mAP值。 选择消融对象 可以是模型的某一层、一个模块、一种数据增强方式或者一个超参数。以一个基于Transformer架构的语言模型为例可以选择消融掉多头注意力机制中的一个头或者去除某一种位置编码方式。 进行消融实验 按照选择的消融对象对基准模型进行修改后重新训练。在训练过程中要保证其他条件如数据集、训练参数、优化算法等尽可能与基准模型一致。比如如果消融掉了模型中的一个卷积层那么剩下的层的参数初始化、学习率等训练设置都应该和原来一样。 性能评估和对比 对消融后的模型在相同的测试集上进行性能评估将评估结果与基准模型进行对比。可以使用各种评估指标如在分类任务中使用准确率、在回归任务中使用均方误差MSE等。通过对比可以直观地看到消融对象对模型性能的影响。例如消融掉某一层后模型的准确率下降了5%这就表明该层对模型性能有一定的贡献。 四、应用案例 计算机视觉领域 在图像分割任务中假设一个全卷积网络FCN模型在医学图像分割上取得了不错的效果。为了研究跳跃连接Skip - connection的作用进行消融实验。在基准模型中有跳跃连接它可以将浅层的特征信息直接传递到深层帮助更好地恢复图像细节。当消融掉跳跃连接后重新训练模型并在医学图像测试集上评估。发现模型的分割精度从原来的85%下降到了70%这表明跳跃连接在这个图像分割模型中对于提高分割精度起到了关键作用。 自然语言处理领域 对于一个情感分析的循环神经网络RNN模型研究词向量预训练的影响。基准模型使用了预训练的词向量如Word2Vec来初始化模型中的词嵌入层。在消融实验中不使用预训练词向量而是随机初始化词嵌入层。经过训练和测试后发现模型的准确率从80%下降到了60%这说明预训练词向量对于该情感分析模型的性能提升有很大的帮助。 8、符号说明 LMLanguage Model语言模型 MLM“masked lan-guage model” (MLM) masked LM” (MLM) LTRLeft-to-Right从左到右 RTLright-to-left从右到左 dev开发集Development Set也称为验证集Validation Set test测试集 9、表格说明 表一 glue多个数据集上分别测试的得分F1相关性精确度 F1 scores are reported for QQP and MRPC, Spearman correlations are reported for STS-B, and accuracy scores are reported for the other tasks 表格二到四 DEV验证集和Test测试集上指标 F1指标和EMExact Match 表五–七 F1和accuracy指标 表八 不同消融实验下的精确度accuracy SQuAD 中dev和test dev开发集 开发集主要用于模型的开发和调整过程。在训练问答模型时开发集可以帮助研究人员和开发者选择合适的模型架构、超参数如学习率、隐藏层大小等。例如通过在开发集上比较不同超参数设置下模型的性能如准确率、F1 值等指标来确定最优的超参数组合。 test测试集 测试集用于对最终训练好的模型进行性能评估。它提供了一个独立于训练集和开发集的评估环境能够较为客观地反映模型在未见过的数据上的性能。在学术研究和实际应用中模型在测试集上的性能指标是衡量模型好坏的重要标准。例如在比较不同的问答模型时主要看它们在相同测试集上的准确率、召回率等指标的高低。 开发集Development Set也称为验证集Validation Set主要用于在模型训练过程中调整超参数、选择模型架构以及进行模型的早期停止Early Stopping等操作。它是介于训练集和测试集之间的数据集用于评估模型在训练过程中的性能表现防止模型在训练集上过拟合。 验证集Validation Set从功能上来说和开发集是一样的概念在很多场景下这两个术语可以互换使用。不过严格来说“验证” 更强调对模型当前状态的评估以验证模型是否朝着正确的方向训练。 与训练集和测试集的区别 训练集Training Set 训练集是用于训练模型的数据集模型通过学习训练集中的样本特征和标签之间的关系来调整自身的参数。例如在一个图像分类任务中训练集包含了大量带有正确类别标签的图像模型通过这些图像学习如何区分不同的类别。训练集的数据量通常是最大的目的是让模型充分学习到数据中的模式。 开发 / 验证集和测试集 开发 / 验证集和测试集都不参与模型的训练过程。测试集主要用于在模型训练完成后对模型的最终性能进行评估以模拟模型在实际应用中的表现。而开发 / 验证集是在模型训练过程中用于监控模型的性能对模型进行优化调整。例如在训练一个神经网络语言模型时每经过一个训练周期Epoch就可以在开发 / 验证集上评估模型的损失Loss或准确率等指标根据这些指标来调整学习率、决定是否增加或减少网络的层数等。 10、代码 Official Code https://github.com/google-research/bert Community Code 530 code implementations (in PyTorch, TensorFlow, JAX and MXNet)
http://www.dnsts.com.cn/news/59147.html

相关文章:

  • 省建设厅网站安全生产标准化天津seo建站
  • 网页设计与网站建设在线作业设计单位在厦门什么网站
  • 网站内容建设注意事项网站建设推广咨询平台
  • 全美东莞网站建设网站 建设 计划
  • 南京专业网站制作多少钱wordpress智能
  • 重庆网站seo多少钱互联网营销案例
  • 郑州手机网站推广外包让别人看到自己做的网站
  • 如何建网站运营网站品牌创意型网站建设
  • 射阳网站开发天宁寺网站建设
  • 中国建设银行官网站e路护航下载网站建设好不好
  • 如何做地方网站制作ppt的网站
  • 企业网站建设网站模板wordpress+一页一屏
  • 宁波网站建设seowordpress有后台吗
  • 口碑好的高密网站建设清新织梦淘宝客模板淘客网站程序源码
  • 建站怎么建阿里云wordpress一键安装包
  • iis怎么创建网站做360网站首页软件
  • 鼓楼机关建设网站一级造价工程师注册管理系统
  • 怎么做免费网站教程服装企业网站建设现状
  • 修改wordpress用户名廊坊百度提升优化
  • 免费建造网站系统精准营销模型
  • 鹿泉网站制作公司胖子马wordpress模板 q8免费版
  • 郑州小程序河北seo推广平台
  • 企业网站备案需要法人拍照吗开锁都在什么网站做
  • 优质的南昌网站建设网络搭建比赛
  • 免费建域名网站网站开发说明
  • 携程旅游网站官网大学教学应用网站开发现状
  • 网站过程建设网页设计报告前言
  • phpcms v9 网站建设设计制作网络科技模板网站建设分金手指排名二六
  • 孝南区城乡建设局网站施工企业质量管理体系认证几年
  • xml网站地图制作vi设计的目的